磁盤還原後MBR及DBR修復

最近在做磁盤的備份、還原測試,使用WindowsAPI中的DeviceIoControl來備份、還原磁盤的Layout,然後依次、按對應順序拷貝源磁盤的各個分區中的數據,但在將目標磁盤作爲啓動磁盤啓動時,屏幕出現黑屏以及光標閃爍的想象,查看資料說是因爲MBR被破壞的問題。使用WinHex查看目標磁盤的MBR,啓動代碼良好,查看啓動分區的DBR,發現BPB參數中磁道扇區數、磁頭數和源硬盤不同,於是修改這兩個參數,使得和源硬盤相同,修改後磁盤能夠啓動,系統啓動正常。
但是在WindowsXP下測試程序時發現,就算修改了啓動分區的BPB參數也無法啓動目標磁盤。仔細分析目標磁盤的MBR發現,分區表中啓動分區的CHS參數有問題,根據開始扇區計算出來的CHS參數與分區中的不同,重新計算CHS參數並填入磁盤的MBR,磁盤能夠啓動。
經過多次試驗,得出以下結論:
1:系統在引導時會去檢查MBR中的CHS參數以及啓動分區的BPB參數是否正確,但也不一定總是這樣,經過測試XP、Vista、2003、2008、Windows7、Windows8,發現只有XP、2003系統在啓動時要求這樣嚴格;
2:使用WindowsAPI DeviceIoControl設置磁盤Layout後,磁盤MBR分區中的CHS參數不一定正確,但不影響分區的使用,但如果啓動分區的CHS參數不正確,則可能系統無法啓動,需要手動修改。
3:分區DBR中的BPB參數是分區格式化時自動生成的,磁盤還原後無需修改,之前之所以修改後系統能夠啓動,根本原因是磁盤MBR中的CHS參數有誤,導致需要使用錯誤的BPB參數(磁道扇區數、磁頭數)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章