|
发表于 2003-4-20 17:28:52
|
显示全部楼层
其实这个问题好解决。我来重写一个安装的到设置的帖子。
一、在光盘中找出一个以grub为开头的RPM包,然后安装上。
#rpm -ivh grub*.rpm
二。然后运行:
#grub-install /dev/hda
三。设置grub,如下:
在终端上运行如下grub命令:
#grub
grub>root (hdX,Y)
grub>setup (hd0)
grub>quit
说明一下,这里的X和Y是Mandrake的分区的所处的位置,比如我的Mandrake是在第一个硬盘,就要用hd0,如果Mandrake的分区在hda10,那么Y的值就是9.再举一例,用#df -lh 可以查看系统的根分区。再举一个例子:
[beinan@linuxsir01 beinan]$ df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/hdb10 7.9G 2.7G 5.2G 35% /
这时,我们应该用root (hd1,9)
然后我们设置好了后,我们就到/etc/grub/找一个文件menu.lst的文件,如果没有,我们应该自己创建一个。要注意,有时可能不能在menu.lst没有任何内容。这时也要我们来修改。我们加入我们所想启动的linux呢,以及Mandrake呢。
先要学会看/boot分区里的文件,主要是看vmlinuz开头的以及initrd开头的。如果有类似这样的。。 vmlinuz-2.4.21-0.13mdk和initrd-2.4.21-0.13mdk.img 的。如果没有vmlinuz和initrd.img文件名,我们可以做一下链接。目的是写grub的配制文件时比较方便。
[root@linuxsir01 beinan]# cd /boot
[root@linuxsir01 boot]# ls
[root@linuxsir01 beinan]# cd /boot
[root@linuxsir01 boot]# ls
boot.0300 kernel.h@ System.map@
config@ kernel.h-2.4.21-0.13mdk System.map-2.4.21-0.13mdk
config-2.4.21-0.13mdk map us.klt
grub/ message@ vmlinuz@
initrd-2.4.21-0.13mdk.img message-graphic vmlinuz-2.4.21-0.13mdk
initrd.img@ message-text
值得注意的是,后面带@的,都是链接文件。如果您没有 vmlinuz@以及initrd.img@ 。我们可以来做一个,这样做是为了写menu.lst方便。
[root@linuxsir01 boot]# ln -s vmlinuz-2.4.21-0.13mdk vmlinuz
[root@linuxsir01 boot]# ln -s initrd-2.4.21-0.13mdk.img initrd.img
对于menu.lst的格式, 我们如何写呢??主要有以下
title linux 在这里之中的linux,您可以自己取名
root (hdX-1,Y)
kernel /boot/vmlinuz root=/dev/hdaX
initrd /boot/initrd.img
然后我们来查看一下您当前所用的linux,在这里,我们以Mandrake来说;
[root@linuxsir01 boot]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
/dev/hda10 7.9G 2.7G 5.2G 35% /
按上面的法则,是不是这样的???
title Mandrake 9.1
root (hd0,9)
kernel /boot/vmlinuz root=/dev/hda10
initrd /boot/initrd.img
对于加入其它的linux的启动项,我们可以在当前的linux系统中,用fdisk -l 来查看分区,然后mount其它的linux的分区,来做前面所说的链接,或者查看带有vmlinux initrd的文件名,然后做一下链接,再次就是在当前的linux中写menu.lst
对于其它的linux的发行版,有/etc/grub.conf,这时要在/boot/grub目录中做一个链接。其实我们也可以在Mandrake 中的/etc/目录中写一个grub.conf文件,然后做一个链接到/boot/grub目录中。
grub的版本有时不一样,在/boot目录中的有时可能会是grub.conf的文件名。这时 我们就要做grub.conf为文件名的链接。为了确保安全。应该先在/etc/目录中写一个grub.conf,就是按上面所说的做。然后再来做一系列的链接。这样就什么版本的grub都能行了。
#ln -s /etc/grub.conf /boot/grub/grub.conf
#ln -s /etc/grub.conf /boot/menu.lst
看我的grub.conf的内容
title WinXP
rootnoverify (hd0,0)
chainloader +1
title Mandrake 9.1
root (hd0,9)
kernel /boot/vmlinuz root=/dev/hda10
initrd /boot/initrd.img
title Redhat 8.0
root (hd0,7)
kernel /boot/vmlinuz root=/dev/hda8
initrd /boot/initrd.img
|
|