Windows 10 與 NTFS 分割區復原

日前處理公司一部筆電,是出現了「Missing operating system」的訊息,無法順利進入到 Windows 10。使用 Windows 10 安裝媒體啟動後,於命令提示字元用 diskpart 工具查看,則會看到 C: 的檔案系統顯示為 RAW。接著若執行 chkdsk /f c: 做掃描及修復,開頭便會出現以下訊息:

第一個 NTFS 開機磁區無法讀取或已損毀。

改為讀取第二個 NTFS 開機磁區。

 

雖然 chkdsk 仍會完成掃描及修正動作,掃描完成後,測試切換到 C:,列出檔案及資料夾也都能夠顯示出來。然而重開機後狀況依舊,仍是「Missing operating system」。再用 diskpart 看一次,又變回 RAW;chkdsk 再做一次,同樣顯示「第一個 NTFS 開機磁區無法讀取或已損毀」云云。而 chkdsk 無論是 /f 還是 /r,儘管執行完畢後,C: 會能夠開啟,但重開機後就會再打回原形。

 

這種修完問題仍反覆出現的情形,讓 DR 當下推測應該是有硬體性的故障。於是從另一部同款筆電,取出完全相同型號的硬碟,都是 Toshiba 的 750GB 硬碟,用 ddrescue 完整複製過去。複製完畢後,用新複製出來的硬碟開機,然後再跑一次 chkdsk。結果卻出現了完全一模一樣的狀況──修完當下可用,但重開機後問題依舊。

 

由於兩顆硬碟型號是一樣的,所以 DR 還有再用序號去辨別,確認沒有把這兩顆搞混。

 

查看諸如 Linux dmesg 及 S.M.A.R.T. 等資訊,確認硬體層面應該是沒問題,仍是軟體性的故障,只是這個軟體性故障用 chkdsk 似乎修不好。重灌勢必能夠解決,但不是太理想的作法。於是 DR 評估了一下,認為不能用 ddrescue 完全按原樣複製過去,這樣會繼承檔案系統中無法修復的地方。而是要用像 Clonezilla 這樣的工具試試看,它背後會使用 ntfsclone 來進行資料複製。

 

DR 有好段時間沒用過 Clonezilla 了,發現在 DR 的二號機(主機板是 GA-990FXA-UD3)上啟動時,會出現諸如「unable to enumerate USB device」這樣的錯誤,無法繼續執行下去。不過上網查了一下,可以在啟動時加上內核參數 iommu=soft,或者是於主機板設定裡啟用 IOMMU 來避免此錯誤。

 

使用 Clonezilla 重新複製一次磁碟後,這種反覆出現 NTFS 開機磁區無法讀取的問題就不再發生了。後續就是在新複製的硬碟上重建 Windows BCD,使其回復到可以順利開機的狀態。相關文件可參考:

 

分類: