我正在运行 SuSE 11.2。我在同一台机器上也有 Windows 和 Ubuntu。问题是我无法让 Ubuntu 在 SuSE 的 grub 上显示为引导选项。 Ubuntu 分区位于/dev/sda5
.这是我的/boot/grub/menu.lst
:
# Modified by YaST2. Last modification on Wed Sep 15 13:08:06 SAST 2010
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate
###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.2 - 2.6.31.12-0.2
root (hd0,2)
kernel /boot/vmlinuz-2.6.31.12-0.2-desktop root=/dev/disk/by-id/ata-ST3160815AS_9RX3KRP8-part3 resume=/dev/disk/by-id/ata-ST3160815AS_9RX3KRP8-part2 splash=silent quiet showopts vga=0x31a
initrd /boot/initrd-2.6.31.12-0.2-desktop
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.2 - 2.6.31.12-0.2
root (hd0,2)
kernel /boot/vmlinuz-2.6.31.12-0.2-desktop root=/dev/disk/by-id/ata-ST3160815AS_9RX3KRP8-part3 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
initrd /boot/initrd-2.6.31.12-0.2-desktop
###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
rootnoverify (hd0,0)
chainloader +1
#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
尝试链式加载 Ubuntu 附带的 GRUB 版本,而不是使用 SuSE 中的相同 GRUB:
title Ubuntu 10.04
root (hd0,4)
chainloader +1
这样 Ubuntu 将在自己的分区上管理自己的 GRUB 配置和内核升级。
答案2
您是否尝试从 YaST->Boot Loader->Choose Image 执行此操作,然后填写所有其他选项(例如内核映像等),然后就完成了:)
答案3
我相信 ubuntu 选项位于/etc/grub.cfg
.这需要一些解析;我系统上的该文件看起来像一个完整的 shell 脚本,但尾部看起来您应该能够充分解析它以获得您需要的内容。
答案4
你的语法看起来是正确的。我有一些建议。首先尝试脱掉quiet splash
。其次,我将列出内核和 initrd 映像的完整路径。
title Ubuntu
root (hd0,4)
kernel /boot/vmlinuz-<ubuntu-kernel-version> root=/dev/sda5 ro
initrd /boot/initrd-<ubuntu-kernel-version>
最后,请确保更新 grub。
grub --batch --device-map=/boot/grub/device.map < /etc/grub.conf
警告:我不使用 SUSE,我发现了这个命令这里。