0

我的帖子

个人中心

设置

  发新话题

一、硬盘结构
pc的bios系统决定了pc的硬盘结构,在pc里,可以有三个以下的主分区和一个扩展分区,也可以是4个主分区。硬盘的区块表示方法是,磁道,柱面和扇区。0磁道,0柱面1扇区就是mbr,0磁道1柱面1扇区被成为是第一分区的启动扇区pbr,其他分区的第一个扇区也被称为pbr。1个扇区的大小是512B。

二、pc系统加电启动原理
post上电,bios自检——从cmos设置中确定第一启动设备为硬盘后——将启动接力棒交给mbr。

三、各种系统的启动过程
msdos和win9x: mbr——pbr——io.sys——msdos.sys——command.com或是win.com
nt内核2003以下: mbr——pbr——ntldr——boot.ini——hal.dll
vista,win7和win2008:mbr——pbr——bootmgr——bcd——winload.com
软改bios激活的win7: mbr——pbr——修改过的grldr——bootmgr——bcd——winload.com
linux: mbr——pbr——grub引导程序——grub.conf,menu.lst,grub.cfg等配置文件——内核
grub4dos: 由其他引导程序引入——grldr——menu.lst
wubi: 由其他引导程序引入——wubildr——ubuntu
mbr和pbr都可以保存为一个512b大小的文件,可以被ntldr,bootmgr和grldr启动,不过这类文件会在分区变化后被影响。

四、各种多系统引导分析
1、win2000以上的系统之所以可以启动98,就是因为在2000安装的过程中,保存了原先98的pbr。并在boot.ini增加了pbr保存文件的路径。
fdisk/mbr的意义,纠正了mbr数据,但没有改变pbr的内容。在差不多所有的win里,mbr的内容是一致的,就是把下一步启动交给活动主分区的pbr。再由pbr决定引导在活动主分区的其他引导程序。
format/s和sys c:命令执行之后,改变的是pbr的内容,让pbr只引导io.sys了。
ghost分区备份里是包含了第一扇区的内容的,但mbr的内容没有改变。

2、win2000,xp,win2003之间的兼容问题。
这三个系统虽然都是用ntldr文件来读取boot.ini启动系统的,但是ntldr文件一直在变。所以xp的ntldr是引导不了2003的。
如果boot.ini里指定的路径是无效的,不管是分区信息还是pbr文件备份,提示永远是hal.dll未找到。
故障恢复控制台有很多非常有用的命令:
fixmbr,修复mbr用的。
fixboot,修复pbr用的,效果跟bootsect是一样的。
bootcfg/rebulid,当boot.ini被删除,或者出错后的修复命令。

3、ntldr is missing,hal.dll is missing,bootmgr is missing。
关于这些,除了是部分硬件问题,文件真的丢失以外,ntldr和bootmgr可能是mbr,或是pbr错误。
当变色龙安装到非ntfs分区时也会出现ntldr is missing的情况。
当活动主分区被压缩之后,也会出现bootmgr is missing的情况。
hal.dll一般是boot.ini写的不对的原因

4、bootsect.exe是win7和vista光盘里用于修改pbr启动ntldr还是bootmgr的工具。可以在xp,winpe等32位环境下运行

5、bootmgr的引导项目被放进了bcd里,无法再用文本编辑工具来修改,bcdedit命令行的方式太复杂了,只能通过一些辅助工具了,例如easybcd。
boomgr也可以读取boot.ini的内容来启动,在boot.ini里的c:\ntldr也是可以被识别的。不过这里也有个问题,win7和vista一直坚持把自己的系统文件夹安装目录强制为c盘,造成了活动主分区被移到其他分区去,这里的盘符变动会有很大的麻烦。

6、linux的gurb启动windows的方法:chainloader +1,也就是把启动权直接教了pbr,不过很可惜,无论是grub1还是grub2,都不能像grub4dos那样直接启动类似,ntldr,bootmgr,io.sys这样的文件,但可以启动pbr的备份文件(这些文件很小,可以启动)。

7、grub4dos,这是一个很强大的工具,可以引导几乎所有的操作系统,连没有备份pbr的98也可以启动。当然了io.sys还是应该在主分区上。

其他的关于双硬盘,mbr独立两套的情况,都是很复杂的,有grub里的map硬盘映射,以及您希望 Windows XP Embedded 从第二个 IDE 磁盘(IDE0 次驱动器)的第二个分区启动。ARC 路径将如下所示:
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect

本帖最近评分记录
  • d字开头 无忧币 +3 很详细,,, 2010-11-23 20:58



学习了。。。



细节决定成败
又涨一见识了...........:lol :lol :lol :lol



在xp下安装ubuntu后,能进入ubuntu,但是进xp提示:
Windows could not start because the following file is missing or corrupt:
<Windows root>\system32\ntoskrnl.exe
这是怎么回事?应该如何解决?



感觉不够啊
有想要继续的可以来无忧启动看看吧
那里真的很精彩呢



好经典。。。学习了,谢谢



努力向上,天天学习!
‹‹ 上一贴:Windows7与XP局域网共享访问XP最简单的方法 ...   |   下一贴:貌似我发现了一个微软系统的bug,大家一起来讨论下 ... ››
  发新话题
快速回复主题
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 友情链接 |意见反馈 | 网站地图
Copyright©2005-2021 51CTO.COM
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系:bbs@51cto.com