|
发表于 2011-3-16 02:13:49
|
显示全部楼层
Grub4DOS’s FAQ 之 grub4dos有哪些启动方式
Q: grub4dos有哪些启动方式?
A: grub4dos 与官方的 grub legacy 有一个很大的区别就是启动方式的多样性。grub legacy 只能将自己的引导代码安装到 mbr 或者分区的引导扇区,而且,它的代码被分成了三部分:引导代码、Stage1.5、Stage2,主体程序就是 stage2,前两部分都是为加载 stage2 做准备的。而 grub4dos 基本上将 grub legacy 的这三部分合成一体了,所有的东西都集成在 grldr 和 grub.exe 这两个文件中,另外,为了兼容 Vista 的启动(Vista 不能加载超过 64K 的引导文件),grub4dos 又多了一个 grldr.mbr。grldr.mbr 相当于 grub4dos 的引导扇区,类似于 NT 下引导 DOS 时用到的 bootsect.dos,它的主要功能就是在本地硬盘、软盘、U盘根目录下查找 grldr 文件并加载,凡是支持加载引导扇区的引导软件(又称为链式加载,也就是 chainload)都可以通过加载 grldr.mbr 来引导进入 grub4dos。
grub4dos 的启动方式有下面这些(不见得全面):
一、通过链式加载方式
1、从 NT 下通过 boot.ini 加载:修改 boot.ini,通过链式加载 grldr 或者 grldr.mbr 来加载。前提是你的某个分区根目录下一定要放置一个 grldr,分区类型支持 FAT(12/16/32)、NTFS、EXT(2/3)。或- c:\boot\grldr.mbr=”Grub4DOS”
复制代码 你一定注意到了,grldr.mbr不一定要放在根目录下,其实,grldr也不一定放到根目录下,不过,它们最终的目的都是搜索各分区根目录下的grldr文件并加载找到的第一个grldr。另外,这种方式的一个变形形式是将grldr改名成ntldr(或者bootmgr)替换NT的ntldr(Vista的bootmgr),这是通过NT/Vista的引导扇区直接加载grldr。
2、在 Vista 中通过修改 BCD 加载 grldr.mbr。详细修改方法请参考 grub4dos 官方文档。
3、通过其它支持链式加载的引导器(例如 grub4dos、syslinux/isolinux/pxelinux 等)来加载 grldr.mbr(或者 grldr)。例如,你可以在 grub4dos 中用:- chainloader --force /grldr # 注意,这里一定要加上 --force 参数
复制代码 或者- chainloader /boot/grldr.mbr
复制代码 的形式加载。
二、将grub4dos的引导代码安装到MBR或者分区引导扇区。
这个是目前比较推荐的一种方式,你可以用bootlace、grubinst或者手工的方式来完成这个任务。这种方式也要求某个分区的根目录下必须存在一个grldr文件,其中,如果将grub4dos的引导代码安装到了分区的引导扇区,恐怕就必须将grldr文件放到该分区的根目录下。
三、通过grub.exe加载。
grub.exe是一个三栖的程序,它可以作为实模式的DOS程序直接从纯DOS环境下进入grub4dos,也可以作为DOS的设置驱动程序,从DOS的config.sys中以device=grub.exe的形式加载,还可以以Linux内核格式,使用kernel方式加载(凡是支持加载Linux内核的程序都可以使用这种方式,例如grub4dos自身,syslinux系列、lilo、DOS下的loadlin,Linux下的kexec)。
四、作为PXE启动文件加载。
你可以将grldr直接作为PXE服务器的启动文件通过网络加载grub4dos,也可以通过pxelinux加载,通过pxelinux加载时,需要将grldr改名为grldr.0,或者用kernel grub.exe的形式,注意追加keeppxe参数。
五、将grldr作为光盘启动文件加载
你可以直接将grldr作为光盘的启动文件来制作启动光盘,注意,要遵循推荐的mkisofs命令行格式来制作。跟这个有关的是你可以用其它的光盘启动软件来加载grldr,例如ezboot、bcdw等,不过这样加载就失去了让grub4dos直接通过bios访问光驱的能力(也就是说不是eltorito模式了)。
我能想到的大概就是这些加载方式吧,可能不是很完全,不过应该囊括了大部分的方式,就算有别的方式,应该也是这几种方式的扩展。
文章来源: http://www.myefly.net/grub4dos-faq |
|