我正在运行 SUSE 11.2。 Ubuntu位于扩展分区上/dev/sda5
,但是当我启动时,我得到
Error 19: Linux kernel must be loaded before initrd
这是 menu.lst 中的 Ubuntu 条目:
#Don’t change this comment – YaST2 identifier: Original name: none#
title Ubuntu 10.04
root (hd0,4)
kernel /vmlinuz root=/dev/sda5 ro quiet splash
initrd /initrd.img
答案1
可能是找不到您的 vmlinuz 文件。这可能是因为它位于 sda5 上的 /boot 目录中,因此您应该将行更改为
title Ubuntu 10.04 root (hd0,4) kernel /boot/vmlinuz root=/dev/sda5 ro quiet splash initrd /initrd.img
或者如果它位于其他地方,则无论它的位置在哪里。
(您可能需要对 initrd.img 文件执行相同的操作)
另外,检查 ubuntu 的 vmlinuz 和 initrd.img 文件是否具有完全相同的名称。通常,它们具有内核版本并输入名称(即 vmlinuz-2.6.35-22-generic)
答案2
您可以尝试以下操作:
mount /dev/sda5 /mnt
cd /mnt
ls -l boot vmlinuz initrd.img
检查符号链接指向的位置是否确实存在并且是您要查找的正确文件。
例如,在我的盒子上,vmlinuz -> boot/vmlinuz-2.6.32-25-generic。
您可以修改 grub 配置以指向正确的文件,如 txwikinger 的答案中所述。
调试此问题的另一种快速方法是在 grub 中获得提示(在 grub1 中按 C,不确定 grub2),然后您可以使用制表符完成来列出可用文件,并即时测试它。