|
发表于 2007-8-28 03:52:03
|
显示全部楼层
对于引导过程我的理解:
1:
hda1 (hd0,0) xp
hda2 (hd0,1) linux root & boot
Grub 装在mbr
menu.lst:
#1
title Load HardDisk0 MBR
chainloader (hd0)+1
rootnoverify (hd0)
#2
title Linux
root (hd0,1)
kernel /boot/vmlinuz26 root=/dev/hda2 ro vga=773
initrd /boot/kernel26.img
#3 Windows
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
启动时,bios加载MBR( 即加载grub),grub显示菜单,当选择第一项时重新加载MBR即grub
当选择第二项是,加载linux内核,当选择第3项,加载hd0,0上的dos/windows引导程序,改程序加载ntloader显示widnwos启动选择菜单,进一步引导windows内核,如果有一个选项你用grld(grub for ntloader)代替windows内核则加载该文件,由该文件中的程序显示另一个grub菜单。
这时谁是active分区都无关紧要。
2:
hda1 (hd0,0) xp
hda2 (hd0,1) linux root & boot
Grub 装在 hda2
MBR为dos的MBR程序
menu.lst:
#1
title Load HardDisk0 MBR
chainloader (hd0)+1
rootnoverify (hd0)
#2
title Linux
root (hd0,1)
kernel /boot/vmlinuz26 root=/dev/hda2 ro vga=773
initrd /boot/kernel26.img
#3 Windows
title Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1
启动时,bios加载MBR,MBR根据 分区表的active分区标记,加载该分区的引导程序
2.1 active的是hda2,则加载的是grub(位于hda2的fbr):
当选择第一项时重新加载MBR,很快MBR又加载grub
当选择第二项是,加载linux内核,
当选择第3项,加载hd0,0上的dos/windows引导程序,该程序加载ntloader显示widnwos启动选择菜单,进一步引导windows内核,如果有一个选项你用grld(grub for ntloader)代替windows内核则加载该文件,由该文件中的程序显示另一个grub菜单。
2.2active的是hda1(hd0,0)。MBR加载的是hda1上fbr的引导程序即os/windows引导程序,该程序加载ntloader显示widnwos启动选择菜单,进一步引导windows内核,如果有一个选项你用grld(grub for ntloader)代替windows内核则加载该文件,由该文件中的程序显示另一个grub菜单。
这时谁active就有关系了。
当然grub的完整部分因该不全部在MBR 或 FBR还有一部分在boot & root 分区,但都要由MBR或FBR 的部分加载。
不同的安装,MBR和FBR里面的东西是不一样的。
另外要重新写MBR为DOS的MBR程序,可以用dos的fdisk /mbr
或xp 安装盘的fixmbr
Grub可以在非主分区启动是因为他可以加载非主分区中的内核。
但grub自身无法由MBR从一个非主分区加载到内存
也就是说Grub的管理程序,就是我们在linux里运行的grub程序可以在非主分区
但引导过程中接过接力棒的那部分程序是没办法从文件系统中直接载入的,必须安装到mbr或fbr
总的就是接力棒的传递 :
可以有多种多样:
例如:
bios ---MBR---FBR----文件系统中的文件
bios ----mbr----文件系统中的文件
bios----mbr----文件系统中的文件-----fbr-----文件系统中的另一个文件
bios ----mbr----fbr----另一个fbr-----文件系统中的文件
一旦加载了文件系统中的某个文件,如内核,或ntloader程序的那个文件,就能一个一个文件的把系统引导起来。
[ 本帖最后由 lanzinc 于 2007-8-28 04:30 编辑 ] |
|