最近在做磁盤的備份、還原測試,使用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參數(磁道扇區數、磁頭數)。
磁盤還原後MBR及DBR修復
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
MBR扇區故障修復
zqhbnubdqn
2019-02-22 22:45:14
LinuxMBR修復,引導修復。
鬧鐘哥
2019-02-22 22:09:24
詳解MBR分區結構以及GPT分區結構
yun5277
2019-02-22 20:36:07
磁盤基礎基礎知識(MBR,GPT分區格式)
ldt160188718
2019-02-22 20:03:01
BIOS---MBR,UEFI---GPT 理解
Sam_Qian
2019-02-22 19:45:56
Linux故障處理(一)系統啓動類故障
侯良金
2019-02-22 17:48:01
Linux系統啓動流程
vincenteve
2019-02-22 16:36:07
Linux系統故障修復-MBR損壞,grub.conf配置文件丟失
zmg_061515
2019-01-05 13:30:38
MBR和GPT
wx598a7dda6a090
2018-10-18 02:34:17
模擬MBR故障以及處理
斯基2012
2018-09-13 02:45:07
Windows 7系統下GPT轉MBR分區格式的方法教程
daihk924
2018-09-12 07:11:30
MBR與GPT互相轉換
daihk924
2018-09-12 07:11:30