2024年5月17日发(作者:电脑键盘图片示意图)
Windows7 引导修复
一、Windows7引导概述
(一)术语说明
Bootmgr(Windows Boot Manager):Windows启动管理器
BCD(Boot Configuration Data):启动配置数据存储
(二)双分区Windows7与单分区Windows7
1、双分区Windows7:Win7安装后默认占用两个主分区,一个C盘(windows文件夹所在的
盘,硬盘的第一个分区,不是活动的)和一个隐藏分区(引导文件所在的盘,硬盘的第二个分
区,真正的活动分区)。
2、单分区Windows7:可以将Win7默认安装出的两个分区合二为一,合并方法是:①将两
个分区的文件合并到C盘(即硬盘第一个分区);②将C盘设为活动分区;③执行"bootsect /nt60
c:"给C盘写入兼容bootmgr的引导代码;④用Windows7的安装光盘启动计算机,进入光盘
后选择“修复计算机”,光盘中的“系统恢复选项”就开始工作了,稍等提示完成,重启OK。
(三)Windows7的引导过程
1、BIOS按设置的存储介质次序轮询到硬盘后,首先寻找硬盘的MBR(主引导记录)和DPT(分
区表),然后根据MBR和DPT中的信息寻找系统分区。
2、硬盘MBR中有两个重要信息(引导代码):一个是“目标分区”,一个是“系统类型”。带
/MBR参数的bootsect能向MBR中同时写入“活动标记”和“系统类型”。
3、DPT就像是一副地图,MBR中的“目标分区”就像是目的地地名,一般的分区工具都
将这个地名写成“活动分区”,但有些软件会对地名进行特殊改写,比如一键还原精灵就将
地名改写为自己的“备份/恢复分区”,而这个“备份/恢复分区”并不是活动的。
4、活动分区的PBR(分区引导记录,也叫OBR或DBR)中也有一个重要信息(引导代码),即
“引导文件名称”。对于WinXP,“引导文件名称”是“ntldr”。对于Win7,“引导文件名称”
是“bootmgr”。BIOS根据MBR和DPT找到活动分区后,就按PBR中的“引导文件名称”
在该分区根目录下寻找ntldr(bootmgr)文件,如果找到就将控制权交给ntldr(bootmgr),如果
找不到就提示ntldr(bootmgr)丢失,终止引导。带不同参数的bootsect能向PBR中写入不同
的“引导文件名称”。
5、ntldr(bootmgr)接管控制权后,就在根目录下寻找并加载启动环境文件(字体文件等)和启
动配置文件,然后按启动配置文件中的指令继续下一步引导。对于WinXP,启动配置文件
是活动分区根目录下的,内容单一,它指令ntldr直接加载系统内核。对于
Win7,启动配置文件是活动分区根目录下的bootBCD,BCD内容复杂,它会指令bootmgr
对系统配置进行多项验证,首先验证硬盘MBR中是否有兼容bootmgr的“系统类型”信息,
验证一致就接着引导,验证不一致就给出提示,终止引导。
6、Win7启动失败后,通常会有五种提示:①找不着设备——活动分区PBR空白,引导进
程根本没加载到bootmgr——格式化活动分区造成的;②找不着操作系统——MBR中没有
兼容bootmgr的“系统类型”信息——FDISK /MBR造成的;③开机自动启动“Windows启
动修复”——其他都没问题,但分区表局部紊乱——GHOST不对等恢复造成的。④Windows
启动管理器弹出0xc000000f错误——其他都没问题,但分区表局部紊乱——GHOST不对等
恢复+误删/Recovery目录造成的;⑤Windows启动管理器弹出0xc000000e错误——bootmgr
找不到BCD中dvice选项指定的分区——起因详见“四、手工解决0xc000000e错误”。
7、关于GHOST:①GHOST的对象包括整个PBR、文件系统和用户数据。②GHOST不对
等恢复不会改变目标分区的大小,但会造成分区表局部紊乱。
二、Windows7引导代码的维护
(一)Windows7引导代码维护概述
引导代码的维护的目的是更新硬盘的MBR(主引导记录)和分区的PBR(分区引导记录)以在
识别bootmgr和识别ntldr之间切换。更新MBR和PBR最方便、最通用、最专业的工具是
Bootsect。是一个单文件程序(附含在Windows vista/7安装光盘的boot目录下),
支持Windows命令行运行(包括WinPE命令行)。推荐用光盘启动WinPE执行,
硬盘操作系统下执行有时会因无法锁定目标卷造成PBR更新失败。另外要注意
的是,Vista的没有/mbr参数,因而它只能更新PBR,而不能更新MBR。
(二)Bootsect命令参数
{/help | /nt52 | /nt60} {SYS | ALL |
参数
/help
显示使用说明。
将与 NTLDR 兼容的主启动代码应用到 SYS、ALL 或
/nt52
在 SYS、ALL 或
XP。
将与 Bootmgr 兼容的主启动代码应用到 SYS、ALL 或
在 SYS、ALL 或
Vista®。
SYS
更新用于启动 Windows 的系统分区上的主启动代码。
更新所有分区上的主启动代码。ALL 选项不必更新每个卷的启动代码。
ALL
相反,该选项将更新可用作 Windows 启动卷(不包括没有与基础磁盘分
区连接的动态卷)的卷上的启动代码。存在此限制是因为启动代码必须
位于磁盘分区的起始处。
更新与此驱动器号关联的卷上的主启动代码。在以下两种情况下,不会
更新引导代码:
描述
/nt60
发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1715885990a2686881.html
评论列表(0条)