Duangw

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/