Grub多重引导
1 Slackware下安装grub
1.1 方法一
Slackware集成的引导工具是lilo,如果要换成grub,建议仍先安装lilo,首次启动进入系统后,再来安装grub替代lilo,这是最简单最安全的方法。
可以从ftp://alpha.gnu.org/gnu/grub/下载源代码编译安装。也可以从Slackware安装光盘的extra/目录下直接获得二进制安装包。这里使用第二种方式:
# installpkg grub-0.97-i486-3.tgz
引导配置:
# grub-install /dev/hda
这里安装到hda的主引导记录MBR,如果安装到某个分区,则(以第二个分区为例):
# grub-install /dev/hda2
之后编辑配置文件/boot/grub/menu.lst即可。
重启正常引导后,就可以卸载lilo了:
# removepkg lilo
1.2 方法二
如果想在系统首次安装时不装lilo,直接装grub,就要麻烦一些,需要chroot。
在安装工作结束后的命令行下,此时系统硬盘分区都mount在/mnt目录。从光盘获得gurb-0.97-i486-3.tgz安装包,假设放在/mnt/root目录下。
(1).首先进入chroot环境:
# chroot /mnt
(2).安装:
# cd /root # installpkg grub-0.97-i486-3.tgz
(3).拷贝文件:
# mkdir /boot/grub # cd /usr/lib/grub/i386-pc/ # cp * /boot/grub
(4).编写/boot/grub/menu.lst。
(5).运行grub,进行配置:
# grub >>root (hd0,1) >>setup (hd0,1) >>quit
上例将grub安装到硬盘第二分区(hd0,1),如果安装到MBR,则为(hd0)。
2 menu.lst模板
每次从头编写menu.lst繁琐又没必要,这里提供一个模板文件menu.lst.ref,以后通过复制改写就行了。
menu.lst.ref的内容如下:
default=0 timeout=10 title Linux root (hd0,1) kernel /boot/vmlinuz ro root=/dev/hda2 title FreeBSD rootnoverify (hd0,2) chainloader +1 title OpenBSD rootnoverify (hd1,0) chainloader +1 title Windows rootnoverify (hd0,0) chainloader +1
3 grub4dos
由于一个硬盘只有4个主分区,除了Linux可以安装在逻辑分区外,其余系统如Windows、FreeBSD、OpenBSD等都需要至少一个主分区。
如果想同时安装这些系统,Linux就只能装在逻辑分区(还需要另一个逻辑分区做交换空间),从而不能安装grub。这时,可以使用grub4dos工具,也就是Windows/Dos版的grub,由它来负责引导管理。
详情见:http://grub4dos.sourceforge.net/。