2024年1月9日發(作者:中國網絡登錄經紀人登錄)

電腦加電后,首先是啟動BIOS程序,BIOS自檢完畢后,找到硬盤上的主引導記錄MBR,MBR讀取DPT(分區表),從中找出活動的主分區,然后讀取活動主分區的PBR(分區引導記錄,也叫dbr,究竟該叫什么,網絡上爭論未休,我們姑且叫它pbr吧),PBR再搜尋分區內的啟動管理器文件 BOOTMGR,在BOOTMGR被找到后,控制權就交給了BOOTMGR。BOOTMGR讀取bootbcd文件(BCD=Boot Configuration Data ,也就是“啟動配置數據”,簡單地說,windwows7下的bcd文件就相當于xp下的文件),如果存在著多個操作系統并且選擇操作系統的等待時間不為0的話,這時就會在顯示器上顯示操作系統的選擇界面。在我們選擇啟動WINDOWS7后,BOOTMGR就會去啟動盤尋找 ,然后通過加載windows7內核,從而啟動整個windows7系統。
可以把這個過程簡單地概括為:BIOS-->MBR-->DPT-->pbr-->
Bootmgr-->bcd-->-->內核加載 -->整個windows7系統
本文就來說一說MBR-->DPT-->pbr--> Bootmgr-->bcd這一段可能出現的故障的解決。
mbr出現問題,主要是mbr代碼被改寫,因為被改寫的代碼不同,所以出錯信息也各不相同。比如我們裝了windows7與ubuntu雙系統,ubuntu改寫了mbr,在我們把ubuntu所在的分區格式化后,既進不了windows7,也進不了ubuntu,開機的時候會出現如圖的錯誤提示:
解決的辦法就是重寫mbr。對于重寫mbr,我們所熟知的是在dos下用fdisk /mbr命令進行重寫。fdisk /mbr所重寫的mbr與xp是兼容的,但是,與windows7已經不那么兼容了。實踐表明:用fdisk /mbr命令重寫windows7的mbr后,需要重建bcd,否則不能正常啟動windows7。有網友指出,這里面的原因是fdisk /mbr命令改寫了mbr中的硬盤簽名。一般的分區工具都是可以重寫mbr的,比如diskgenius,它所重寫的mbr與windows7是兼容的。也可以用bootrec /fixmbr命令重寫。要運行 工具,必須啟動 Windows
RE。為此,請按照下列步驟操作:
插入windows 7安裝光盤,從光盤啟動電腦,在光盤啟動完成后,按下shift f10鍵,調出cmd命令提示符。在cmd命令提示符中輸入:bootrec /fixmbr 回車。這樣也就重寫了mbr。
分區表存在問題,對于這個問題,限于篇幅,不做詳細探討。
系統盤不是活動的主分區,這種情形只要用分區工具(比如diskgenius)把系統盤設為活動的主分區即可。
pbr出現問題,主要是pbr代碼被改寫,因為被改寫的代碼不同,所以出錯信息也不相同。比如WINDOWS7系統的活動分區,卻被寫入了適合于XP的pbr,簡單的解決辦法就是用bootrec /fixboot命令重寫pbr:
插入windows7安裝光盤,從光盤啟動,在光盤啟動完成后,按下shift f10鍵,調出cmd命令提示符。在命令提示符中輸入:bootrec /fixboot 回車。這樣也就重建了活動分區的pbr。
這里面還有一個常用的命令也要提一下,這就是bootct:
插入windows7安裝光盤,從光盤啟動,在光盤啟動完成后,按下shift f10鍵,調出cmd命令提示符。在cmd命令提示符中輸入:bootct /nt60 sys /mbr
回車。這個命令會改寫活動分區的pbr,并同時會改寫mbr,使得mbr和pbr適合于windows7和vista。
程序位于windows7安裝光盤的boot目錄下,可以把這個文件提取出來,在xp下的命令行可以運行這個程序,也可以在 winpe下的命令行運行這個程序,因而這個程序在使用時很方便。而命令的使用就沒這么方便了。所以BOOTSECT命令被應用得更為廣泛一些。
另外有一個要點需要指出,vista的安裝光盤里面的boot文件夾也存在著這個小工具,但vista的bootct命令沒有/mbr參數,因而它只能改寫pbr,而不能改寫mbr,這是必須要注意的。實踐表明:把一個硬盤的mbr清零,然后運行windows7的bootct命令,確實可以發現 mbr被恢復正常。這也就表明了windows7的bootct命令的確能夠重寫mbr。
另外,bootct命令也可以重寫xp的mbr和pbr,而這也是bootrec命令所做不到的。xp的恢復控制臺用fixmbr命令改寫mbr,用 fixboot命令改寫pbr。
如果是引導文件的問題,一般可以用bcdboot命令重新寫入引導文件:
插入windows7安裝光盤,從光盤啟動,在光盤啟動完成后,按下shift f10鍵,調出cmd命令提示符。在命令提示符中輸入:
bcdboot x:windows /s x:
注意,這前一個x:是windows7的windows文件夾所在的盤,一般是c:,如果你的不是c盤,請改為對應的盤符。這后一個x:是活動主分區的盤符所在,一般也是c盤。所以這個命令一般的寫法是:
bcdboot c:windows /s c:
但需要注意,在windows re環境下所看到的盤符與你在windows7下所看到的盤符未必一樣。所以需要首先用dir /a命令確認各盤是否正確。
比如:
cd /d c:
dir /a
這兩個命令的作用是,首先進入c:盤的根目錄,然后顯示c盤根目錄下的所有文件和文件夾,根據所顯示的文件或者文件夾,可以判斷這個盤具體是你在 windows7下所看到的哪一個盤。
windows7的引導文件主要是bootmgr和boot文件夾里面的文件,而boot文件夾里面的文件主要是bcd文件。bcdboot命令會在指定的分區內重新寫入全部windows7的引導文件。
如果只是bcd文件有問題,則可以用bootrec命令重建bcd:
插入windows7安裝光盤,從光盤啟動,在光盤啟動完成后,按下shift f10鍵,調出cmd命令提示符。在命令提示符中輸入:
bootrec /RebuildBcd
這個命令如果搜到沒有寫入bcd的windows7或者vista的操作系統,會提示你是否寫入,按提示輸入Y也就會寫入了的。
或者用bcdedit命令手動改寫bcd,但操作要復雜得多。
本文發布于:2024-01-09 00:44:12,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/1704732253258965.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:Windows7引導故障修復(BCD和MBR).doc
本文 PDF 下載地址:Windows7引導故障修復(BCD和MBR).pdf
| 留言與評論(共有 0 條評論) |