LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1590|回复: 16

为什么用Gentoo的grub无法引导Debian Testing?[己解决,感谢aiyi]

[复制链接]
发表于 2006-9-9 10:28:49 | 显示全部楼层 |阅读模式
已解决
Post by aiyi
试试这样:
title=Debian GNU/Linux, kernel 2.6.16-2-k7
kernel                (hd0,5)/boot/vmlinuz-2.6.16-2-k7 root=/dev/hda6 ro
initrd                (hd0,5)/boot/initrd.img-2.6.16-2-k7

使用以上方法,改变 (hd0,5)的位子,引导成功


原帖如下:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

用Gentoo的grub无法引导Debian Testing,但Debian的grub能正常引导Gentoo。
由于以前机子上一直有Debian,安装Gentoo后理所当然的用Debian的Grub引导,所以才注意到这个现象。

硬件环境:

hda2 ext2 Gentoo /boot
hda3 ext3 Gentoo /
hda6 ext3 Debian

出错信息:
  1. Booting command-list
  2. root (hd0,5)
  3. Filesystem type is ext2fs, partition type 0x83   //说明grub已正确识别了Debian的分区
  4. kernel                /boot/vmlinuz-2.6.16-2-k7 root=/dev/hda6 ro
  5. [Linux-bzImage, setup=0x1e00, size=0x117719]
  6. initrd                /boot/initrd.img-2.6.16-2-k7
  7. [linux-initrd @ 0x2fbc2000, 0x42d613 bytes]
  8. savedefault
  9. Error 15: File not found
  10. Press any key to continue...
复制代码


Gentoo grub.conf And Debian menu.list
  1. default 0
  2. timeout 5
  3. title=Gentoo Linux x86
  4. root (hd0,1)
  5. kernel /boot/kernel-2.6.17-gentoo-r7 root=/dev/hda3
  6. title=Gentoo kernel-testing
  7. root (hd0,1)
  8. kernel /boot/kernel-testing root=/dev/hda3
  9. title=Debian GNU/Linux, kernel 2.6.16-2-k7
  10. root                (hd0,5)
  11. kernel                /boot/vmlinuz-2.6.16-2-k7 root=/dev/hda6 ro
  12. initrd                /boot/initrd.img-2.6.16-2-k7
  13. savedefault
  14. boot
  15. title=Windows XP
  16. rootnoverify (hd0,0)
  17. makeactive
  18. chainloader +1
复制代码
发表于 2006-9-9 10:41:25 | 显示全部楼层
你的menu.lst写得不对吧
root (hd0,5)应该是写你的grub的安装分区,而不是你的debian的根目录,其他目录相应更改
建议你gentoo和debian共用一个/boot分区好了,copy debian /boot下的东西过去好了,这样省得麻烦,修改一下debian的fstab
怎么可能gentoo的grub不能引导起动debian呢,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-9 10:50:37 | 显示全部楼层
Post by Archlinux
你的menu.lst写得不对吧
root (hd0,5)应该是写你的grub的安装分区,而不是你的debian的根目录
改成root(hd0,1)应该就可以了

我去试试
不过Debian里面(hd0,5)也安装了grub
用root (hd0,5)的grub可以引导boot为hda2的gentoo,而我当时并没有把gentoo的root写成hd05

两个grub用的是相同的list,我想不会是写法的问题

Post by archlinux

怎么可能gentoo的grub不能引导起动debian呢,呵呵

呵呵,我就是没想通这一点
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-9 11:05:52 | 显示全部楼层
不行 Debian 的 root 一定要写为Debian内核所在分区,不然联内核都找不到了
回复 支持 反对

使用道具 举报

发表于 2006-9-9 13:44:45 | 显示全部楼层
试试这样:
title=Debian GNU/Linux, kernel 2.6.16-2-k7
kernel                (hd0,5)/boot/vmlinuz-2.6.16-2-k7 root=/dev/hda6 ro
initrd                (hd0,5)/boot/initrd.img-2.6.16-2-k7
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-9 18:22:39 | 显示全部楼层
Post by aiyi
试试这样:
title=Debian GNU/Linux, kernel 2.6.16-2-k7
kernel               (hd0,5)/boot/vmlinuz-2.6.16-2-k7 root=/dev/hda6 ro
initrd                (hd0,5)/boot/initrd.img-2.6.16-2-k7

非常感谢!成功了,这种grub格式我是第一次见到,能说为什么吗。
回复 支持 反对

使用道具 举报

发表于 2006-9-9 19:51:05 | 显示全部楼层
具体什么原因我也不大清楚,我的想法是既然提示找不到文件那就显式的指出文件的绝对路径,这样的用法其实也很常见的。

不过我的猜测是:root(hd0,5)指定当前的root设备,但你指定的这个与你当前所使用的grub所在的设备不一致,所以有了这样的问题,不知对与不对。
回复 支持 反对

使用道具 举报

发表于 2006-9-9 19:51:34 | 显示全部楼层
root (hd0,5)那一句的作用就是设置kernel和initrd指定文件所在的分区
所以实际上不同的地方仅仅在于savedefault这一句
你可以试试在aiyi给你的那几行后面再加上savedefault,看看能不能成功
回复 支持 反对

使用道具 举报

发表于 2006-9-9 19:59:11 | 显示全部楼层
应该不是savedefault的问题,不过在这个配置文件里savedefaut确实没有什么用处。
当使用default saved时如果在每一个启动项后加上savedefault,系统缺省启动的项会是动态的,即上次启动的项。
如:
default saved
timeout 10

title
...
savedefault

...

title
....
savedefault
回复 支持 反对

使用道具 举报

发表于 2006-9-9 20:06:49 | 显示全部楼层
哦,原来savedefault是这个作用啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表