起因
昨天晚上下載了一個 HotPE (一個功能比較全面的 Windows PE 系統)並嘗試啟動了一下,該 PE 系統支援 ext4 檔案系統,可以讀寫 Linux 系統盤中的檔案。今天發現硬碟裡的 Linux 系統無法啟動, Windows 系統裡的 DiskGenius 顯示 Linux 系統盤的 ext4 分割槽損壞。
嘗試排查
- 使用該 PE 試圖將 Linux 系統盤中的重要檔案備份至 ext4 的 U 盤,隨後用 Linux LiveCD 無法掛載該 ext4 備份盤,Windows 系統的 DiskGenius 顯示 Linux 系統盤與 ext4 備份 U 盤的分割槽均損壞;
- 更換另一個 NTFS 的備份 U 盤,重新複製損壞的 ext4 分割槽中的檔案。該 NTFS 備份盤隨後可以被 Windows 及 Linux 系統正常讀取。
- 在整個過程中,雖然 ext4 分割槽顯示為損壞,但在這一 PE 系統下始終可以正常讀寫檔案。由此推斷相關硬碟的硬體和分割槽中的檔案沒有發生不可逆的損壞。
解決方案
啟動 Linux LiveCD,並執行 fsck 命令修復出現問題的 ext4 分割槽:sudo fsck -v /dev/nvme0n1p2
,所有的互動均輸入 y (或輸入 a,表示以後全部互動均輸入 y),最終 ext4 分割槽修復成功並能在 Linux 中正常使用。
結論
HotPE 對 ext4 檔案系統的支援疑似存在 bug,被它掛載過的 ext4 分割槽結構被修改為了非標準的形式,使得其無法在 Linux 系統下正常使用(在該 PE 系統下始終可以讀寫檔案)。被修改過的 ext4 分割槽可以使用 fsck 修復。
以後不要在含有 ext4 分割槽的計算機上啟動 HotPE 系統,儘量只用 Linux LiveCD 而非 Windows PE 操作 ext4 分割槽。