Grub
如何在 CentOS 上將 Ubuntu 添加到 grub
要點:我正在嘗試將輔助硬碟驅動器上的 Ubuntu 實例添加到執行 CentOS 的主硬碟驅動器上的 grub。grub 版本是 GNU GRUB 0.97。
主硬碟包含 CentOS release 6.8 (Final), 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 中創建一個新的 menuitem 以便我可以啟動 Ubuntu 實例?謝謝
好的,經過大量的失敗和幾天的嘗試,我確實找到了一個解決方案。所以,這是我的菜單項。我確信它不完整,但至少 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