关于win7启动项问题

电脑加电后,首先是启动BIOS程序,BIOS自检完毕后,找到硬盘上的主引导记录MBR,MBR读取DPT(分区表),从中找出活动的主分区,然后读取活动主分区的PBR(分区引导记录,也叫dbr,究竟该叫什么,网络上争论未休,我们姑且叫它pbr吧),PBR再搜寻分区内的启动管理器文件 BOOTMGR,在BOOTMGR被找到后,控制权就交给了BOOTMGR。BOOTMGR读取bootbcd文件(BCD=Boot Configuration Data ,也就是“启动配置数据”,简单地说,windwows7下的bcd文件就相当于xp下的boot.ini文件),如果存在着多个操作系统并且选择操作系统的等待时间不为0的话,这时就会在显示器上显示操作系统的选择界面。在我们选择启动WINDOWS7后,BOOTMGR就会去启动盘寻找 WINDOWSsystem32winload.exe,然后通过winload.exe加载windows7内核,从而启动整个windows7系统。

  可以把这个过程简单地概括为:BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->内核加载 -->整个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命令重写。要运行 Bootrec.exe 工具,必须启动 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。

  这里面还有一个常用的命令也要提一下,这就是bootsect:

  插入windows7安装光盘,从光盘启动,在光盘启动完成后,按下shift f10键,调出cmd命令提示符。在cmd命令提示符中输入:bootsect /nt60 sys /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命令重新写入引导文件:

  插入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,但操作要复杂得多。


bcdedit命令修改启动项

在命令行输入bcdedit回车,可查看当前所有启动项
每个启动项都有自己的标识符(ID),如:
{bootmgr} 启动管理器
{ntldr} NT Loader (如XP启动项)
{current} 当前硬盘或分区
或是形如{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}的标识符
 
常用命令:
 
备份启动项:bcdedit /export "D:\BCD Backup\BcdBackFile"
恢复启动项:bcdedit /import "D:\BCD Backup\BcdBackFile"
 
删除启动项:bcdedit /delete {ID} /f
 
设定启动项各属性:bcdedit /set {ID} 属性名 属性值
如:bcdedit /set {current} Description "水榭兰舟7"
 
设定默认项:bcdedit /default {current}
 
设置启动项显示顺序:bcdedit /displayorder {ID1} {ID2}
如:bcdedit.exe /displayorder {ntldr} {current}
将首先显示Windows XP等,然后再显示Windows Vista等

设定等待时间(秒):bcdedit /timeout 3


转载于:https://www.cnblogs.com/Wen-Man/archive/2011/08/29/2373762.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序适用范围: 1、格式化或GHOST活动分区(C盘)重装系统后添加修复其它分区上的Vista/2008/Win7启动菜单 2、在Vista/2008/Win7上新装2000/xp/2003后添加修复原Vista/2008/Win7启动菜单 简化出先vista/2008/win7后装2000/xp/2003多系统最简解决方案:2000/xp/2003光盘引导直接装至其它分区,完成后运行本程序修复即可 3、修复其他因BCD相关引起的故障 a.BCD引起的win7/2008r2的修复计算机(Windows Recovery Environment)菜单丢失 b.BCD引起的win7/2008r2的3D启动画面丢失(变成VISTA滚动条启动画面) c.BCD引起的启动菜单选择界面乱码现象 d.为VISTA/2008添加修复计算机(Windows Recovery Environment)菜单,使用方法:在系统盘符中新建recovery文件夹,再把光盘安装程序中的sources\boot.wim(这个文件是否改名为winre.wim随意)和boot\boot.sdi两个文件复制至recovery文件夹,再运行本程序,即可自动添加。 e.不明原因的启动菜单丢失 090412更新: f.系统BCD非法的强制修复,现象:VISTA/2008/WIN7中-- 运行msconfig后“启动”(BOOT)栏空白 管理员身份运行命令提示符中后运行bcdedit等和BCD相关的操作提示出错 系统属性的“启动和故障恢复”窗口无法配置“默认操作系统”和等待时间 其它软件无法添加BCD管理的新启动菜单 注:这种情况是否要强制修复自行决定。 使用方法: 非安装软件,直接运行,可运行于32位和64位系统或光盘WINPE系统。程序以盘符形式搜索系统,因此得确保你要添加的系统分区别被隐含盘符。 090416:增加支持繁体中文系统 090417(v1.0.0):修正一些处理流程,改版本号V1.0 090616(v1.0.3):细微修改/改打包方式 可以添加修复Vista/2008/Win7启动菜单,在满足条件的情况下也可以添加修复2000/xp/2003启动菜单。例如可以在xp中运行添加其它分区的vista启动菜单,自动生成xp+vista多系统启动菜单,反过来在vista中运行添加xp的启动菜单就需要满足xp的三个必要引导文件(ntldr/ntdetect.com/boot.ini)已存在活动分区且活动分区不被隐藏盘符的情况才会添加(当xp菜单不符合条件而无法添加时,如xp菜单已在原多系统菜单中存在,不会影响已存在的xp启动菜单项)。 程序正确运行后,如果有原始BCD启动配置,将备份在c:\autofix下,以bcdbackup1命名方式,多次运行则数字累加.c:\autofix下的autofix.log是程序运行纪录文件.纪录文件内容仅供参考。 没有启动菜单故障的朋友就不要运行本程序了

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值