k10j 发表于 2005-5-6 21:48:56

Grub For Dos 引导ML之旅

前几天重装了WinXP,主引导记录被改写了,我的ML也进不去了,这时想到了Grub for Dos,经过一上午的琢磨,总算好了,现在可以在由WinXP的引导菜单来引导ML了,做法如下,供各位参考:

    我装ML时分出了一个boot分区,一个Swap分区,一个Root分区,由于XP重装后硬盘顺序被改写,所以和原先安装ML时的分区序号已经不一样了。重点就在这里。
    先装好Grub for Dos ,或者用WinGrub,这个过程请大家参考论坛文章或在Google中搜索一下吧。

    在XP下用TotalCmd查看Linux分区,知道Boot分区是在/dev/hda7,Swap是在/dev/hda8,Root在/dev/hda9.Boot分区的 /Grub/目录下的Grub.conf文件中有如下内容:
    title MagicLinux
    root (hd0,8)
    kernel /boot/vmlinuz-2.6.9 ro root=/dev/hda11 vga=791 splash=silent
    initrd /boot/initrd-2.6.9.img
   
    也就是说原先的Boot分区号是/dev/hda9,Swap是在/dev/hda10,Root在/dev/hda11。经过试验,用这个设置修改menu.lst是引导不了ML的。
    我的做法:XP下修改/boot/grub/Menu.lst,
    title MagicLinux
    kernel (hd0,6)/vmlinuz-2.6.9 ro root=/dev/hda9 vga=791 splash=silent
    initrd (hd0,6)/initrd-2.6.9.img      
    注意,这里的Root和前面的(hd0,6)是分开的,并不对应。
    引导后,ML可以启动,但是会提示Root分区有错误,看来有地方不对,想了不少时间,估计可能是/etc/fstab下的分区挂载和现在的分区顺序不同。在XP下用TotalCmd可以看到这个文件,但不能写入,怎么办呢?好在我有“史努比系统维护光盘”,很久前买的一张,上面有很简单的一个Linux系统,引导后挂载所有Linux分区,这下可以了,修改/dev/hda9下的/etc/fstab文件,把相应的hda9换成hda7,hda10换成hda8,hda11换成hda9,保存重启,这个ML终于进去了。
   但这时启动时还有个地方报错,说某个分区已经挂载了。用Root用户登录,查看/etc/fstab文件,发现其中有个分区挂载了两次,一次是刚修改的,另一个是ML自动加上的,重新检查一遍,修改掉重复的地方,重启,这下,一切正常了。我的ML终于可以用XP的引导菜单了。

k10j 发表于 2005-5-8 08:52:35

自己顶一下。

alpher 发表于 2005-5-8 10:00:40

关于grub for dos的文章很早以前就有了
而且置顶的疑难解答里面也有。
首先恭喜你弄好了,其次要跟你说,
用过PQ之类的分区软件,重新分区之后,会导致hdX的顺序与实际的分区顺序不一致。
不过只需要找到正确的x即可,安装ML的时候就可以看到,注意一下就可以了。

另外,你还是没有明白grub那些命令的含义,比如
title MagicLinux
kernel (hd0,6)/vmlinuz-2.6.9 ro root=/dev/hda9 vga=791 splash=silent
initrd (hd0,6)/initrd-2.6.9.img
启动之后错误,你根本没必要用“***维护光盘”那么麻烦,因为根本不是fstab的问题,是你kernel参数中的root项不应该指向hda9
改过来就可以了。

樱家冢 发表于 2005-5-8 11:58:58

嗯,hdxx发生变化只要修改 grub.conf 和 fstab 即可,不是很麻烦的,难者不会,会者不难。

k10j 发表于 2005-5-8 22:13:47

alpher兄,我是初学,对Linux还不太懂。不过有几点我要说明白点:
   1.我用ML1.2光盘启动,不知道怎么进入字符模式,来修改fstab,用红旗4.1也没有进去,在Win下能看不能改,所以只好用别的光盘引导进去修改。
      2.在我的机子上menu.lst中下面的写法是唯一正确的
title MagicLinux
kernel (hd0,6)/vmlinuz-2.6.9 ro root=/dev/hda9 vga=791 splash=silent
initrd (hd0,6)/initrd-2.6.9.img
其他的并不能引导进去。
      3.版主KDE说,menu.lst 本来就应该是指向 /boot/grub/grub.conf 的一个符号链接,这个我不太明白,因为现在我的/boot/grub/grub.conf文件并没有动过,和fstab中的并不一致, 现在ML能够正确引导进去,说明Grub.conf文件并没有起作用。
    4.看来还是得多学着点啊。哈……………… :lol::lol:

alpher 发表于 2005-5-8 22:20:14

k10j兄
呵呵,嗯,那个hda9是硬盘设备,应该是对的,不好意思:)
我想跟你说呢,你是在装Ml之前用PQ分的区吧
后来重装XP,如果没有重新分区的话,应该不需要改fstab的
如果你用grubfordos,只需要把ML下的grub.conf拷贝出来,放在grub for dos的那个目录(C:\boot\***),改名字为menu.lst就可以了
没必要去修改fstab
fstab是系统系统的时候加载的设备
而如果启动,只需要给grub传root所在的分区就可以了
其他分区没关系的

k10j 发表于 2005-5-9 15:14:55

谢谢alpher,希望以后能多跟你学习学习。有QQ吗?不如加我吧:5635331
页: [1]
查看完整版本: Grub For Dos 引导ML之旅