明輝手游網(wǎng):m.79things.com

本站App下載  |  

首頁 > 電腦資訊 > 電腦知識(shí)

Windows 7引導(dǎo)故障修好(BCD及MBR)

作者:佚名   來源:本站   時(shí)間:2018-05-18  點(diǎn)擊:118次

電腦加電后,首先是啟動(dòng)BIOS程序,BIOS自檢完畢后,找到硬盤上的主引導(dǎo)記錄MBR,MBR讀取DPT(分區(qū)表),從中找出活動(dòng)的主分區(qū),然后讀取活動(dòng)主分區(qū)的PBR(分區(qū)引導(dǎo)記錄,也叫dbr,究竟該叫什么,網(wǎng)絡(luò)上爭論未休,我們姑且叫它pbr吧),PBR再搜尋分區(qū)內(nèi)的啟動(dòng)管理器文件 BOOTMGR,在BOOTMGR被找到后,控制權(quán)就交給了BOOTMGR。BOOTMGR讀取bootbcd文件(BCD=Boot Configuration Data ,也就是“啟動(dòng)配置數(shù)據(jù)”,簡單地說,windwows7下的bcd文件就相當(dāng)于xp下的boot.ini文件),如果存在著多個(gè)并且選擇的等待時(shí)間不為0的話,這時(shí)就會(huì)在顯示器上顯示的選擇界面。在我們選擇啟動(dòng)WINDOWS7后,BOOTMGR就會(huì)去啟動(dòng)盤尋找 WINDOWSsystem32winload.exe,然后通過winload.exe加載windows7內(nèi)核,從而啟動(dòng)整個(gè)windows7系統(tǒng)。

  可以把這個(gè)過程簡單地概括為:BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->內(nèi)核加載 -->整個(gè)windows7系統(tǒng)

  本文就來說一說MBR-->DPT-->pbr--> Bootmgr-->bcd這一段可能出現(xiàn)的故障的解決。

  mbr出現(xiàn)問題,主要是mbr代碼被改寫,因?yàn)楸桓膶懙拇a不同,所以出錯(cuò)信息也各不相同。比如我們裝了windows7與ubuntu雙系統(tǒng),ubuntu改寫了mbr,在我們把ubuntu所在的分區(qū)格式化后,既進(jìn)不了windows7,也進(jìn)不了ubuntu,開機(jī)的時(shí)候會(huì)出現(xiàn)如圖的錯(cuò)誤提示:

  解決的辦法就是重寫mbr。對于重寫mbr,我們所熟知的是在dos下用fdisk /mbr命令進(jìn)行重寫。fdisk /mbr所重寫的mbr與xp是兼容的,但是,與windows7已經(jīng)不那么兼容了。實(shí)踐表明:用fdisk /mbr命令重寫windows7的mbr后,需要重建bcd,否則不能正常啟動(dòng)windows7。有網(wǎng)友指出,這里面的原因是fdisk /mbr命令改寫了mbr中的硬盤簽名。一般的分區(qū)工具都是可以重寫mbr的,比如diskgenius,它所重寫的mbr與windows7是兼容的。也可以用bootrec /fixmbr命令重寫。要運(yùn)行 Bootrec.exe 工具,必須啟動(dòng) Windows RE。為此,請按照下列步驟操作:

  插入windows 7安裝光盤,從光盤啟動(dòng)電腦,在光盤啟動(dòng)完成后,按下shift f10鍵,調(diào)出cmd命令提示符。在cmd命令提示符中輸入:bootrec /fixmbr 回車。這樣也就重寫了mbr。

  分區(qū)表存在問題,對于這個(gè)問題,限于篇幅,不做詳細(xì)探討。

  系統(tǒng)盤不是活動(dòng)的主分區(qū),這種情形只要用分區(qū)工具(比如diskgenius)把系統(tǒng)盤設(shè)為活動(dòng)的主分區(qū)即可。

  pbr出現(xiàn)問題,主要是pbr代碼被改寫,因?yàn)楸桓膶懙拇a不同,所以出錯(cuò)信息也不相同。比如WINDOWS7系統(tǒng)的活動(dòng)分區(qū),卻被寫入了適合于XP的pbr,簡單的解決辦法就是用bootrec /fixboot命令重寫pbr:

  插入windows7安裝光盤,從光盤啟動(dòng),在光盤啟動(dòng)完成后,按下shift f10鍵,調(diào)出cmd命令提示符。在命令提示符中輸入:bootrec /fixboot 回車。這樣也就重建了活動(dòng)分區(qū)的pbr。

  這里面還有一個(gè)常用的命令也要提一下,這就是bootsect:

  插入windows7安裝光盤,從光盤啟動(dòng),在光盤啟動(dòng)完成后,按下shift f10鍵,調(diào)出cmd命令提示符。在cmd命令提示符中輸入:bootsect /nt60 sys /mbr

  回車。這個(gè)命令會(huì)改寫活動(dòng)分區(qū)的pbr,并同時(shí)會(huì)改寫mbr,使得mbr和pbr適合于windows7和vista。

  bootsect.exe程序位于windows7安裝光盤的boot目錄下,可以把這個(gè)文件提取出來,在xp下的命令行可以運(yùn)行這個(gè)程序,也可以在 winpe下的命令行運(yùn)行這個(gè)程序,因而這個(gè)程序在使用時(shí)很方便。而bootrec.exe命令的使用就沒這么方便了。所以BOOTSECT命令被應(yīng)用得更為廣泛一些。

  另外有一個(gè)要點(diǎn)需要指出,vista的安裝光盤里面的boot文件夾也存在著這個(gè)小工具,但vista的bootsect命令沒有/mbr參數(shù),因而它只能改寫pbr,而不能改寫mbr,這是必須要注意的。實(shí)踐表明:把一個(gè)硬盤的mbr清零,然后運(yùn)行windows7的bootsect命令,確實(shí)可以發(fā)現(xiàn) mbr被恢復(fù)正常。這也就表明了windows7的bootsect命令的確能夠重寫mbr。

  另外,bootsect命令也可以重寫xp的mbr和pbr,而這也是bootrec命令所做不到的。xp的恢復(fù)控制臺(tái)用fixmbr命令改寫mbr,用 fixboot命令改寫pbr。

  如果是引導(dǎo)文件的問題,一般可以用bcdboot命令重新寫入引導(dǎo)文件:

  插入windows7安裝光盤,從光盤啟動(dòng),在光盤啟動(dòng)完成后,按下shift f10鍵,調(diào)出cmd命令提示符。在命令提示符中輸入:

  bcdboot x:windows /s x:

  注意,這前一個(gè)x:是windows7的windows文件夾所在的盤,一般是c:,如果你的不是c盤,請改為對應(yīng)的盤符。這后一個(gè)x:是活動(dòng)主分區(qū)的盤符所在,一般也是c盤。所以這個(gè)命令一般的寫法是:bcdboot c:windows /s c:

  但需要注意,在windows re環(huán)境下所看到的盤符與你在windows7下所看到的盤符未必一樣。所以需要首先用dir /a命令確認(rèn)各盤是否正確。

  比如:

  cd /d c:

  dir /a

  這兩個(gè)命令的作用是,首先進(jìn)入c:盤的根目錄,然后顯示c盤根目錄下的所有文件和文件夾,根據(jù)所顯示的文件或者文件夾,可以判斷這個(gè)盤具體是你在 windows7下所看到的哪一個(gè)盤。

  windows7的引導(dǎo)文件主要是bootmgr和boot文件夾里面的文件,而boot文件夾里面的文件主要是bcd文件。bcdboot命令會(huì)在指定的分區(qū)內(nèi)重新寫入全部windows7的引導(dǎo)文件。

  如果只是bcd文件有問題,則可以用bootrec命令重建bcd:

  插入windows7安裝光盤,從光盤啟動(dòng),在光盤啟動(dòng)完成后,按下shift f10鍵,調(diào)出cmd命令提示符。在命令提示符中輸入:

  bootrec /RebuildBcd

  這個(gè)命令如果搜到?jīng)]有寫入bcd的windows7或者vista的,會(huì)提示你是否寫入,按提示輸入Y也就會(huì)寫入了的。

  或者用bcdedit命令手動(dòng)改寫bcd,但操作要復(fù)雜得多。

推薦游戲

換一換