要点:我正在尝试将辅助硬盘上的 Ubuntu 实例添加到运行 CentOS 的主硬盘上的 grub 中。 grub 版本是 GNU GRUB 0.97。
主硬盘包含 CentOS 版本 6.8(最终版)、x86_64 Linux 3.8.8。我正在运行的内核的 grub 入口项是
title CentOS (3.8.8)
root (hd0,0)
kernel /vmlinuz-3.8.8 ro root=/dev/mapper/vg_sakplab100-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_sakplab100/lv_swap rd_NO_MD rd_LVM_LV=vg_sakplab100/lv_root SYSFONT=latarcyrheb-sun16 crashkernel=128M KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initramfs-3.8.8.img
我得到了另一个装有 Ubuntu 的硬盘(不确定是哪个版本)。如果我运行fdisk -l
辅助硬盘驱动器信息是:
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 32 248832 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sdb2 32 60802 488134657 5 Extended
Partition 2 does not end on cylinder boundary.
Partition 2 does not start on physical sector boundary.
/dev/sdb5 32 60802 488134656 8e Linux LVM
安装 /dev/sdb1 后,我可以查看 /grub/grub.cfg 文件。有很多菜单项,但我认为相关条目如下(其他菜单项的标题中有恢复:
menuentry 'Ubuntu, with Linux 4.4.0-31-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-31-generic-advanced-07c9c822-a9c3-4df5-8965-81b5af4e5dff' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 5ff7efa5-1a24-4e42-bba0-c3b1a4b86fd3
else
search --no-floppy --fs-uuid --set=root 5ff7efa5-1a24-4e42-bba0-c3b1a4b86fd3
fi
echo 'Loading Linux 4.4.0-31-generic ...'
linux /vmlinuz-4.4.0-31-generic root=/dev/mapper/dhcp--10--33--42--96--vg-root ro
echo 'Loading initial ramdisk ...'
initrd /initrd.img-4.4.0-31-generic
}
我尝试创建一些菜单项,但它无法启动 Ubuntu 实例。有谁知道如何在 grub 中创建一个新的菜单项以便可以启动 Ubuntu 实例?谢谢
答案1
好吧,经过大量的失败和几天的努力,我确实找到了一个解决方案。所以,这是我的菜单项。我确信它还没有完成,但至少 Ubuntu 正在启动。
title Ubuntu
root (hd1,0)
kernel /vmlinuz-4.4.0-59-generic root=/dev/mapper/dhcp--10--33--42--96--vg-root ro
module /initrd.img-4.4.0-59-generic