重建windows 7引导记录Word文档格式.docx
《重建windows 7引导记录Word文档格式.docx》由会员分享,可在线阅读,更多相关《重建windows 7引导记录Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
pbr-->
Bootmgr-->
bcd-->
Winload.exe-->
内核加载-->
整个windows7系统;
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命令重写。
要运行Bootrec.exe工具,必须启动WindowsRE。
为此,请按照下列步骤操作:
插入windows7安装光盘,从光盘启动电脑,在光盘启动完成后,
按下shift+f10键,调出cmd命令提示符。
在cmd命令提示符中输入:
bootrec/fixmbr,回车;
这样也就重写了mbr。
‘分区表’存在问题;
系统盘‘不是活动’的主分区,
这种情形,只要用分区工具(比如diskgenius)把系统盘设为活动的主分区即可。
pbr出现问题,主要是pbr代码被改写,因为被改写的代码不同,所以出错信息也不相同。
如WINDOWS7系统的活动分区,却被写入了适合于XP的pbr,这样开机的时候就会出现如图的提示:
解决办法就是用bootrec/fixboot命令重写pbr:
插入windows7安装光盘,从光盘启动,在光盘启动完成后,
在命令提示符中输入:
bootrec/fixboot,回车。
这样也就重建了活动分区的pbr。
常用的命令也要提一下,这就是bootsect:
在cmd命令提示符中输入:
bootsect/nt60sys/mbr,回车。
这个命令会改写活动分区的pbr,并同时会改写mbr,使得mbr和pbr适合于windows7和vista。
对于‘bootsect.exe程序’位于windows7安装光盘的boot目录下,
可以把这个文件提取出来,
在xp下的‘命令行’可以运行这个程序,也可以在winpe下的命令行运行这个程序,
因而这个程序在使用时很方便。
而bootrec.exe命令的使用就没这么方便了。
所以‘BOOTSECT命令’被应用得更为广泛一些。
需要指出,vista的安装光盘里面的boot文件夹也存在着这个小工具,
但vista的bootsect命令没有/mbr参数,因而它只能改写pbr,而不能改写mbr,这是必须要注意的。
把一个硬盘的mbr清零,然后运行windows7的bootsect命令,确实可以发现mbr被恢复正常。
这也就表明了windows7的bootsect命令的确能够重写mbr。
另外,bootsect命令也可以重写xp的mbr和pbr,而这也是bootrec命令所做不到的。
xp的恢复控制台用fixmbr命令改写mbr,用fixboot命令改写pbr。
如果是‘引导文件’的问题,一般可以用bcdboot命令重新写入引导文件:
bcdbootx:
\windows/sx:
注意,这前一个x:
是windows7的windows文件夹所在的盘,一般是c:
,
如果你的不是c盘,请改为对应的盘符。
这后一个x:
是活动主分区的盘符所在,一般也是c盘。
所以这个命令‘一般的写法’是:
bcdbootc:
\windows/sc:
需要注意,在windowsre环境下所看到的盘符与你在windows7下所看到的盘符未必一样。
所以需要首先用dir/a命令确认各盘是否正确。
比如:
cd/dc:
dir/a
这两个命令的作用是,首先进入c:
盘的根目录,然后显示c盘根目录下的所有文件和文件夹,
根据所显示的文件或者文件夹,可以判断这个盘具体是你在windows7下所看到的哪一个盘。
windows7的‘引导文件’主要是bootmgr和boot文件夹里面的文件,
而boot文件夹里面的文件主要是bcd文件。
‘bcdboot命令’会在指定的分区内重新写入全部windows7的引导文件。
如果只是‘bcd文件’有问题,则可以用bootrec命令重建bcd;
bootrec/RebuildBcd
这个命令如果搜到没有写入bcd的windows7或者vista的操作系统,
会提示你是否写入,按提示输入Y也就会写入了的。
或者用bcdedit命令手动改写bcd,但操作要复杂得多。
具体案例分析:
案例一:
怪事,系统盘不是活动的主分区
windows7系统运行正常,只是在磁盘管理中所看到的则是:
系统盘不是活动的主分区。
在安装了一键还原精灵装机版后,在开机的时候按下F11键可以启动一键还原程序。
但我们在格式化系统盘后,在开机的时候仍是可以这样操作的。
而所谓的pbr是‘高级格式化’的时候产生的。
这表明了,一键还原精灵的启动代码不是写入了活动分区的pbr
(如果是的话,在格式化的时候已经被清除了),而是‘写入了MBR’。
通过在MBR中设定首先读取一键还原精灵的隐藏分区,然后才读取活动的主分区。
那么,现在所遇到的这种情形‘是不是’也通过改写mbr而指向特定的分区?
假设mbr没有问题,那么问题就可能出在pbr(也就是所谓的dbr),
win7的pbr中写入的代码应该是去找bootmgr,
但如果这个代码中规定了要找的是另外的一个特殊的文件,
而再通过这个文件去启动另一个分区中的bootmgr,
这样就能实现把另一个不是活动的主分区变为系统盘的目的。
通过上面的分析,得到结论:
问题不是出在mbr,就是出在pbr;
解决的办法就是先试着重建mbr,如果不能解决;
那就可以肯定问题出在pbr,只要重建pbr就能解决问题的。
于是首先重建mbr,问题依旧,然后再重建pbr,问题果然得到解决。
案例二:
开机的时候出现:
BOOTMGRismissing
pressctrl+alt+deltorestart.
翻译成汉语就是:
bootmgr缺失,按Ctrl+Alt+Del重新启动
这是很常见的故障。
既然是bootmgr缺失,我们一般只要用bcdboot命令重建引导文件即可。
这种情形产生的原因:
一般可能有:
bootmgr文件确实没有了,这是最为常见的。
一种则是由磁盘错误导致的,这种情形下,在winpe下运行一下chkdsk/f命令也可能解决。
有朋友使用Diskeeper对MFT碎片进行整理,开机的时候也出现了这个提示。
估计可能是用DISKEEPER进行的MFT磁盘整理后,这或者是diskeeper的一个bug,
因而不建议用diskeeper进行mft碎片整理。
一位网友因为好奇。
把C盘设成了活动的(activepartition)。
是这样设置活动的:
对计算机点右键-管理-硬盘管理。
右键点C盘,设置为活动的。
怎么回事啊?
重启后居然无法启动!
显示bootmgrismissing,Ctrl+Alt+Deletetorestart。
然后还是如此。
这是从网上找到的一个案例,分析可以得出结论。
他所装的windows7应该存在着一个隐藏的“系统保留”分区,
这个‘隐藏的系统保留分区’才是真正的活动主分区,而他的c盘则应该不是活动的。
他把c盘设为活动,这也就意味着取消了“系统保留”分区的活动状态。
但‘引导文件’是在“系统保留”分区,而不是在c盘;
c盘变成了活动的主分区,mbr就会启动c盘的pbr,而c盘的pbr又会去c盘找bootmgr,
但c盘没有bootmgr,所以出错也就是必然的。
解决的办法,其实只要简单地再把系统保留分区设为活动即可。
案例三:
BOOTMGRiscompressed
PressCtrl+Alt+Deltorestart
bootmgr被压缩,按Ctrl+Alt+Del重新启动
是因为对‘系统盘进行了压缩’。
奇怪的是,对于这种情形,我们用bcdboot命令重建引导文件却并不能解决。
但是,我们可以运行命令:
compact/u/a/f/i/sc:
\*
这样可以使得问题得到解决。
compact程序位于windows\system32文件夹下,所以我们要先用CD命令进入windows\system32目录。
这里是假设c:
盘是bootmgr所在的盘,如果不是,要改为对应的盘符。
这个命令会把已经压缩的C盘文件完全解压,真所谓解铃还須系铃人。
注意,只运行命令:
compact/u/a/f/ic:
\bootmgr
并不能解决问题。
有网友发现,运行“Bootrec.exe/fixmbr、Bootrec/fixboot"
然后重启,这样可以解决问题。
测试表明,其实只需要运行Bootrec/fixboot这一个命令即可。
这是另类的解决的办法。
猜想可能是,对驱动压缩后,
PBR中的BPB表并没有随之修改,所以BPB表中所记录的分区信息与实际的分区信息不一致。
运行Bootrec/fixboot命令后重写了bpb,这样就使得二者变为了一致。
用bootsect命令也能实现对这个问题的解决。
案例四:
先装的windows7,后装的linux,在linux系统出问题后,既进不了linux,也进不了windows7,
这里面的原因是mbr和活动分区的pbr被改写。
只要重建mbr和活动分区的pbr,也就可以进入windows7了。
最简单的办法是用bootsect命令解决:
bootsect/nt60sys/mbr
案例五:
先装的windows7,后装的xp,没有了windows7的启动项:
这个需要三步解决问题:
一、用bcdboot命令重建windows7的引导文件。
二、用bootsect命令恢复windows7的mbr和pbr。
三、进入Windows7后,用bcdedit命令添加XP的启动项。