xp与window7启动过程与故障分析

一、             XP启动

  第一步 、电脑开机时,会首先运行POST 程序,POST 将检测系统的总内存以及其他硬件设备的状况,同时检测BIOS 参数,找到启动盘。
 
注:如果无法找到启动盘或启动盘设置不正确,则会提示“boot failure - insert system diskette.
 
第二步 、然后将启动磁盘第一个物理扇区(0 0 1 扇区, 也就是MBR )加载到内存,然后检查扇区尾部标志是否等于0x55aa. 若不等于则转去尝试其它启动盘。如果没有其他启动介质, 则显示 no rom basic system halted ”,然后死机。
 
注: 没有再硬盘或软盘上找到引导扇区 ,只好企图运行 ROM BASIC ,而现在的兼容机基本上都没有安装 ROM BASIC 程序,故报此错误。
 
第三步 、成功加载硬盘主引导记录并运行,主引导记录会在DPT 中查找活动分区的起始位置(一盘为C 盘)。
 
: 如果此时无法找到活动分区, 或分区表结构错误,则可能会提示,分区表错误。“Invalid partition table
 
第四步 、接着活动分区的引导扇区(DBR )被加载并执行,检查引导扇区尾部是否等于0x55aa, 若不等于则显示 “Missing Operating System”, 然后停止, 或尝试软盘启动。
 
注:DBR 是操作系统可以直接访问的第一个扇区,由格式化产生,DBR 也为一个扇区,512 字节,扇区尾部标志是0x55aa ,如没有这个标志,一般认为不是系统盘,这时会提示 Missing Operating System ”或“error loading operating system ”、“non-system disk or disk error, replace disk and press a key to reboot ”等提示。
BDR 包括一个引导程序(PBR )和一个称为BPB 的本分区参数记录表。其引导程序加载后会在根目录中寻找系统文件NTLDR 文件并将控制权给该文件。如果出错时会提示:ntlcdr is missing
 
第五步、 引导扇区的引导程序加载并初始化NTLDR 文件,将启动控制权交给NTLDR 文件,后期也会进行一系列的工作,如加载硬件配置、设备的驱动程序以及需要加载的服务等。
 
注:启动过程序中NTDETECT.COM 文件将会收集计算机中硬件信息列表,然后将列表返回到NTLDR ,因此启动过程中NTLDR NTDETECT.COM 文件不可缺少。
 
 

 
以下为系统盘下(C 盘)XP 下的引导程序文件:
 
 

二、故障处理:
 
修复MBR
1 DOS 命令:Fdisk/mbr (使用矮人DOS 工具等)
2 、在PE 环境下,使用磁盘分区管理winpm,-- 硬盘-- 更新MBR
3 、在PE 环境下,使用磁盘管理工具,Diskgenius, 选择工具,重写主引导记录。
通过以上方法,能覆盖引导记录的代码区,但不重建或修复分区表。因此只适用于主引导记录出错时的情况。不要担心会出现数据丢失。
 
二、修复分区表
1 、在PE 环境下,使用磁盘管理工具,Diskgenius, 选择工具-- 重建分区,待分区找到后再
选择工具-- 重写主引导记录。即可。
实在不行,就先查找分区,再将数据转移再说,详见我的�隹推渌�文章。
 
三、修复DBR
打开磁盘时,提示磁盘未格式化(另外分区表错误有时也会出现此提示)
修复方法:
1、  使用winhex 软件恢复DBR, 在菜单中选择启用扇区(模板),-- 恢复问题分区的DBR
2、  重新系统。
 
四、NTLDR 损坏或丢失,即在Recovery Console 或其他系统下,把系统的安装光盘中i386 目录下的NTLDR NTDETECT 文件复制到系统分区(通常为C 盘)中即可。
载地址:
http://ishare.iask.sina.com.cn/f/22232568.html?from=like
http://ishare.iask.sina.com.cn/f/14413772.html
测试了一下找一台正常的高版本的XP ,将以上文件复制到故障电脑的C 盘好像也可以,不用从光盘找这么麻烦。
 
五、系统分区没有被激活。
如果用于存放启动文件(包括BOOT.INI NTLDR NTDETECT.COM )的系统分区没有被激活而是激活了其他主分区,那么就会导致系统启动时找不到NTLDR 文件或自动重启。
方法1 、使硬盘管理工具如 (比如diskgenius)把系统盘设为活动的主分区即可
方法2 :运行DOS 命令:FIXBOOT (使用矮人DOS 工具等)
可先尝试方法二。
 
六、磁盘数据区错误:
em disk.disk i/o error: 表示硬盘物理上出错。
运行chkdsk c:/f (此处样例为C 盘,其它磁盘可对应更改)
 
 
三、Window7 的启动
Wndows 7 中跟引导有关系的文件和位置说明:
Mbr DPT :硬盘主引导记录和分区表(分区表中包括四部分用来记载四个主分区的物理位置),位于硬盘的第一个扇区,不属于任何系统分区。与XP 相同。
Bootmgr windows nt6 系列的引导管理器,位于主激活分区内,属于系统隐藏文件
PBR :分区引导代码
/boot/bcd 相当于 xp 时代的 boot.ini
 
第一步 、电脑开机时,会首先运行POST 程序,POST 将检测系统的总内存以及其他硬件设备的状况,同时检测BIOS 参数,找到启动盘。
第二步 、然后将启动磁盘第一个物理扇区(0 0 1 扇区, 也就是MBR )加载到内存。
第三步 、加载硬盘主引导记录并运行,主引导记录会在DPT 中查找活动分区的起始位置。
第四步 、接着活动分区的引导扇区(DBR )被加载并执行。
第五步 DBR 中的引导程序(PBR )加载并运行,PBR 位于激活主分区的第一个扇区。xp PBR 写死的代码是去找NTLDR 。而 VISTA Windows7 PBR 里是找BOOTMGR , 被找到之后管理权就交到了BOOTMGR
第六步、Boot Manager 首先从 BCD 中读取 Boot Manager 菜单的语言版本信息,然后再调用 BOOTMGR 与相应语言的 BOOTMGR.EXE.MUI 组成相应语言的启动菜单。
第七步、 之后才会在显示器选择多操作系统的界面,当你选择了相应的操作系统BOOTMGR. 就去寻找系统分区Windwos\System32 下的 Winload.exe 加载操作系统内核,完成系统启动。
注:如安装了多个操作系统,主分区、活动分区、系统分区的概念要分清,有时候系统区不一定是主分区或活动分区。
硬盘能建四个主分区,但也只能有一个主分区能被设为活动分区,Windows XP 以后的系统引导均是BIOS 0 磁道上查找MBR 主引导记录确定哪一个分区是活动分区,到活动分区上查找所选择引导的Windows 系统文件在哪个分区,所以,把系统装在哪个分区都没有问题。例如:你现在的C 盘有一个VISTA 系统,想把WIN 7 D 盘的话,升级安装程序会在活动分区C 盘根目录下写一些文件,那些文件会指引启动程序找到Win 7 所在分区即D 盘,而不论D 盘是一个主分区还是逻辑分区。
 
四、Window7 启动故障处理
 
 
以下内容为转载(稍作了加工):
原文很具体详见: http://wenku.baidu.com/view/c22806c789eb172ded63b706.html
 
1 MBR 修复
解决的办法就是重写 mbr 。对于重写 mbr ,我们所熟知的是在 dos 下用 fdisk /mbr 命令进行重写。 fdisk /mbr 所重写的 mbr xp 是兼容的,但是,与 windows7 已经不那么兼容了。要运行 Bootrec.exe 工具,必须启动 Windows RE 。为此,请按照下列步骤操作:
插入 windows 7 安装光盘,从光盘启动电脑,在光盘启动完成后,按下 shift+f10 键,调出 cmd 命令提示符。在 cmd 命令提示符中输入: bootrec /fixmbr ,回车。这样也就重写了 mbr
 
2 、系统盘不是活动的主分区,这种情形只要用分区工具(比如 diskgenius) 把系统盘设为活动的主分区即可。
 
3 PBR 出现问题,简单的解决办法就是用 bootrec /fixboot 命令重写 pbr
插入 windows7 装光盘,从光盘启动,在光盘启动完成后,按下 shift+f10 键,调出 cmd 命令提示符。在命令提示符中输入: bootrec /fixboot ,回车。
 
这里面还有一个常用的命令也要提一下,这就是 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 ,这是必须要注意的。
另外, bootsect 命令也可以重写 xp mbr pbr ,而这也是 bootrec 命令所做不到的。 xp 的恢复控制台用 fixmbr 命令改写 mbr, fixboot 命令改写 pbr
 
4 、如果是引导文件的问题,一般可以用 bcdboot 命令重新写入引导文件:
插入 windows7 装光盘,从光盘启动,在光盘启动完成后,按下 shift+f10 键,调出 cmd 命令提示符。在命令提示符中输入:
bcdboot x:\windows /s x:
注意,这前一个 x: windows7 windows 文件夹所在的盘,一般是 c: ,如果你的不是 c 盘,请改为对应的盘符。这后一个 x: 是活动主分区的盘 符所在,一般也是 c 盘。
windows7 的引导文件主要是 bootmgr boot 文件夹里面的文件,而 boot 文件夹里面的文件主要是 bcd 文件。 bcdboot 命令会在指定 的分区内重新写入全部 windows7 的引导文件。
 
5 、如果只是 bcd 文件有问题,则可以用 bootrec 命令重建 bcd:
插入 windows7 装光盘,从光盘启动,在光盘启动完成后,按下 shift+f10 键,调出 cmd 命令提示符。在命令提示符中输入:
bootrec /RebuildBcd  
 
6 、开机的时候出现:
BOOTMGR is missing
press ctrl+alt+del to restart.
 
这是很常见的故障。既然是 bootmgr 缺失,我们一般只要用 bcdboot 命令重建引导文件即可。
这种情形产生的原因,一般可能有: bootmgr 文件确实没有了,这是最为常见的。一种则是由磁盘错误导致的,这种情形下,在 winpe 下运行一下 chkdsk /f 命令也可能解决。
 
7 、开机的时候出现:
BOOTMGR is compressed
Press Ctrl+Alt+Del to restart
这种情形产生的原因是因为对系统盘进行了压缩。奇怪的是,对于这种情形,我们用 bcdboot 命令重建引导文件却并不能解决。
但是,我们可以运行命令: compact /u /a /f /i /s c:\*
这样可以使得问题得到解决。 compact 程序位于 windows\system32 文件夹下,所以我们要先用 CD 命令进入 windows \system32 目录。这里是假设 c: 盘是 bootmgr 所在的盘,如果不是,要改为对应的盘符。
网上有朋友用这个命令的时候并没有解决问题,原因则在于,这位朋友所运行的命令是: compact /u /a /f /i /s c:\
没有后面这个*,所以命令并没有实现运行者的目的。从命令本身所提供的帮助说明来看,这个*似乎是没有必要的,但实际操作表明,这个*是必须的。
这个命令会把已经压缩的 C 盘文件完全解压,真所谓解铃还须系铃人。
有网友发现,运行“ Bootrec.exe /fixmbr Bootrec /fixboot" 然后重启,这样可以解决问题。测试表明,其实只需要运行 Bootrec /fixboot 这一个命令即可。
 

 

 
 
 
 

 

你可能感兴趣的:(xp与window7启动过程与故障分析)