Technology · 實用指南
Linux 顯示「Input/output error」?執行 fsck 前先證明故障層
停止寫入,把確切路徑對應到掛載點與後端,保存第一條核心或服務錯誤,只修復已證明的層並核對原始位元組。

「Input/output error」只是 EIO,不是根因。它可能來自本機裝置或線纜、檔案系統中繼資料、網路傳輸、失效的 FUSE/9p 工作階段,或實作使用者空間檔案系統的程式。
先停止受影響路徑的新寫入,記錄確切操作與時間,把路徑對應到掛載點及後端,保存第一條底層錯誤與仍可讀資料,再選一個分支並用已知位元組驗證原路徑。
1. 凍結事故並保護唯一可讀副本
記錄完整命令、路徑、時間、狀態與第一行 stderr;停止所有碰觸該掛載點的寫入和自動清理。
仍有資料可讀時,先複製不可替代部分到獨立儲存,記錄跳過檔案與雜湊。
2. 把路徑對應到真實掛載點與後端
記錄路徑解析、掛載命名空間、檔案系統類型、來源與選項,區分本機、陣列、遠端、FUSE、容器與 WSL 9p。
逐層對應掛載來源、映射器或陣列,再到物理或遠端端點。
3. 保存第一條底層錯誤
重新啟動前按時間讀取核心和服務日誌,保存第一條錯誤及設備、block、inode、伺服器或工作階段身分。
遠端或使用者空間檔案系統要保存兩端日誌;若新唯讀掛載可讀,保留工作階段邊界證據。
4. 只修復已證明的責任層
本機裝置先檢查線纜、電源、控制器及健康;陣列、映射器與遠端共享使用各自流程。
只執行符合真實檔案系統的檢查器,最好在卸載狀態;不要把 e2fsck 用於其他檔案系統。
5. 驗證原路徑與資料契約
經相同命名空間與服務路徑重播操作,讀取已知檔案、比較雜湊並確認錯誤計數穩定。
保存首錯、責任層、保全、修復及驗收證據;再次出現 I/O 錯誤就回到保全。
