Watch at Ease看見世界,讀懂生活。

Technology · 實用指南

Linux 顯示「Input/output error」?執行 fsck 前先證明故障層

停止寫入,把確切路徑對應到掛載點與後端,保存第一條核心或服務錯誤,只修復已證明的層並核對原始位元組。

原創技術示意圖:把 Linux 故障路徑對應到掛載點、檔案系統、傳輸與儲存層。
原創技術示意圖:EIO 只描述失敗操作,修復前必須先對應路徑。 Watch at Ease

「Input/output error」只是 EIO,不是根因。它可能來自本機裝置或線纜、檔案系統中繼資料、網路傳輸、失效的 FUSE/9p 工作階段,或實作使用者空間檔案系統的程式。

先停止受影響路徑的新寫入,記錄確切操作與時間,把路徑對應到掛載點及後端,保存第一條底層錯誤與仍可讀資料,再選一個分支並用已知位元組驗證原路徑。

1. 凍結事故並保護唯一可讀副本

記錄完整命令、路徑、時間、狀態與第一行 stderr;停止所有碰觸該掛載點的寫入和自動清理。

仍有資料可讀時,先複製不可替代部分到獨立儲存,記錄跳過檔案與雜湊。

2. 把路徑對應到真實掛載點與後端

記錄路徑解析、掛載命名空間、檔案系統類型、來源與選項,區分本機、陣列、遠端、FUSE、容器與 WSL 9p。

逐層對應掛載來源、映射器或陣列,再到物理或遠端端點。

3. 保存第一條底層錯誤

重新啟動前按時間讀取核心和服務日誌,保存第一條錯誤及設備、block、inode、伺服器或工作階段身分。

遠端或使用者空間檔案系統要保存兩端日誌;若新唯讀掛載可讀,保留工作階段邊界證據。

4. 只修復已證明的責任層

本機裝置先檢查線纜、電源、控制器及健康;陣列、映射器與遠端共享使用各自流程。

只執行符合真實檔案系統的檢查器,最好在卸載狀態;不要把 e2fsck 用於其他檔案系統。

5. 驗證原路徑與資料契約

經相同命名空間與服務路徑重播操作,讀取已知檔案、比較雜湊並確認錯誤計數穩定。

保存首錯、責任層、保全、修復及驗收證據;再次出現 I/O 錯誤就回到保全。

原創技術示意圖:顯示 Linux EIO 的保全、分類、修復與位元組驗證。
原創技術示意圖:修復前先保全可讀資料與首錯證據,再核對已知位元組。 Watch at Ease