我算是个好学的懒人,没翻过很多帖子,直接就来提问了。
一直以来我搞不清楚引导是怎么回事,WIN下的都不理解,LINUX下的就更不明白了。
最近在UBUNTU,XP,WIN7,之间换来换去,总折腾引导这个事,有一些理解,来说说,大家看是不是那么回事。
一个硬盘里有一个主引导扇区。
主引导扇区里面装的是MBR,分区表,和一个叫magic number的东东。
MBR里面记录的是从哪一个分区启动,我的理解记录了活动分区的信息(又有称激活分区或作用分区)。
确定了活动分区后,就到分区的引导扇区,这里有个东西叫PBR,里面装的是从哪一个文件引导的信息(XP指向“ntldr”,WIN7指向“bootmgr”,linux指向“grldr”),然后从这个文件开始就可以启动操作系统了。
过程是 MBR-PBR-"ntldr,grldr",所以我的理解是在双系统情况下,MBR不是我们要改的东西,PBR才是要修改的东西。
我上面说的可能仅限于WIN下吧,linux下我还不知道是怎么回事,因为我一直用的ntldr指向GRUB4DOS来引导UBUNTU,现在安装UBUNTU的时候我不敢安装引导功能,因为有一次我安装了后把C盘文件全弄没了
所以,安装WIN会重写MBR,安装UBUNTU出一样会重写MBR?把UBUNTU所在盘设为活动盘?
而menu.lst中这一句
title WindowsXP
root (hd0,0)
makeactive
chainloader +1
则是在UBUNTU作为活动分区时,把引导指向第一个分区。然后读取分区中的PBR来引导XP。
所以在GRUB4DOS中,如果PBR本来就指向grldr的话,这句代码是无法引导XP的。它不能像boot.ini那样直接指向一个文件?
至于GRUB和GRUB2的区别在哪,我倒是完全不了解了。
望大家能指点一二,是幸。
关于启动引导系统的一些理解和疑问
- iamfbi
- 帖子: 1081
- 注册时间: 2009-02-06 9:18
- 来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也
- iamfbi
- 帖子: 1081
- 注册时间: 2009-02-06 9:18
- 来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也
Re: 关于启动引导系统的一些理解和疑问
献丑献到尽,我还按我的理解画了个图
- tiyuanmaster
- 帖子: 73
- 注册时间: 2009-06-14 20:14
- 联系:
Re: 关于启动引导系统的一些理解和疑问
呵呵,我只看到了引用的地方,提几个小小的地方供兄弟参考哈:iamfbi 写了:
MBR里面记录的是从哪一个分区启动,
确定了活动分区后,就到分区的引导扇区,linux指向“grldr”
过程是 MBR-PBR-"ntldr,grldr",所以我的理解是在双系统情况下,MBR不是我们要改的东西,PBR才是要修改的东西。
MBR里边的内容根据不同的引导工具作用是不一样的,nt方式作用是查找活动分区,并加载活动分区的引导扇区。
grub legacy 则是stage1的内容。
至于引导扇区,假如你把grub legacy装在了MBR中,那么你的linux分区的引导扇区就是空的,也就是不需要了。
你可以用dd命令将你linux分区的第一个扇区连同后面的几个扇区都导出来看看就知道了。
刍荛之见,有浅陋之处还望海涵一二
其实我是不懂装懂的…………………………
- onshoestring
- 论坛版主
- 帖子: 4666
- 注册时间: 2009-09-06 5:53
Re: 关于启动引导系统的一些理解和疑问
winxp
mbr-pbr-ntldr(读boot.ini)-引导xp
win7
mbr-pbr-boomgr(读bcd)-winloader.exe-引导win7
xp+win7
mbr-pbr-boomgr(读bcd)-winloader.exe-引导win7
|
ntldr(读boot.ini)-引导xp
linux:
mbr(stage1)-stage2-引导linux 或 mbr(stage1)-stage1.5-stage2-引导linux
这个是billbear说的grub1,grub2我还不太清楚。
安装grub时可以选择安装到mbr还是分区。
如果成功安装到分区应该也可以用
root (hdX,Y)
chainloader +1
来引导,不过我没试过。
grldr应该是grub4dos文件,可以放到boot.ini或menu.lst文件中加载。
mbr-pbr-ntldr(读boot.ini)-引导xp
win7
mbr-pbr-boomgr(读bcd)-winloader.exe-引导win7
xp+win7
mbr-pbr-boomgr(读bcd)-winloader.exe-引导win7
|
ntldr(读boot.ini)-引导xp
linux:
mbr(stage1)-stage2-引导linux 或 mbr(stage1)-stage1.5-stage2-引导linux
这个是billbear说的grub1,grub2我还不太清楚。
stage2应该会读menu.lst。第一个分区通常不是紧接在 mbr 后面的。mbr 是0磁道1扇区,而第一个分区一般从 1 磁道开始,中间通常隔着 63 个备用空白扇区,刚好可以放下 stage 1.5。当然,如果第一分区紧接在 mbr 之后,或 mbr 之后的空白扇区已被使用,将不会安装 stage 1.5。强行指定安装 stage 1.5 会报 Error 34 : No spare sectors on the disk 而不能安装。
没有 stage 1.5 时,stage 1 可以直接指向 stage 2。stage 1.5 的好处是它能够识别文件系统,从 stage 1.5 找 stage2 时,它是找分区上叫 stage2 的 文件。而 stage1 直接找 stage2 则是直接指向 stage2 文件在磁盘上的物理地址,这样如果 stage2 文件被挪动并且原位置被其他数据覆盖,引导就会失败。
安装grub时可以选择安装到mbr还是分区。
如果成功安装到分区应该也可以用
root (hdX,Y)
chainloader +1
来引导,不过我没试过。
grldr应该是grub4dos文件,可以放到boot.ini或menu.lst文件中加载。