[CentOS] Booting CentOS 6 with Grub from CentOS 7

Thu Oct 11 18:42:14 UTC 2018
Stephen John Smoogen <smooge at gmail.com>

On Tue, 9 Oct 2018 at 21:47, Yves Bellefeuille <yan at storm.ca> wrote:
> I had CentOS 6 installed on an MBR hard disk. I converted the disk to
> GPT (with UEFI) and installed CentOS 7 on a new partition.

Was CentOS6 bootable after you converted the disk to GPT? My luck with
getting it to work has not been good as the conversion usually changes
something very important to the underlying OS which needs a reinstall
or a bunch of 'fiddling' in rescue mode before I could get it to work
at all.

The EL6 kernel and initrd probably do not have the tools in them to
deal with a GPT partition. Your 'best' bet is to boot into an EL6
rescue iso, edit the fstab to know it needs to mount a /boot/efi and
make sure the kernel/initrd images in /boot are efi aware and stick
the right stuff into /boot/efi that is needed. [There are several
different people who have posted similar things in 2016 and such. I am
not sure how much work they will take.]

I am not sure if the /boot/efi partition needs to be different from
the one you got for EL7. From various posts on mailing lists and
such... it confuses a lot of tools when they are the same and on other
systems it breaks if they are different.

I don't have much more I can add to this. I would normally just backup
the EL6, blow it away and run EL6 as a virtual machine from then on. I
know this might not work for most people, but it is what I have ended
up doing.

> CentOS 7 itself seems to work properly.
> Grub from CentOS 7 automatically created an entry for CentOS 6, but I
> get an error if I try to boot CentOS 6.
> The menu entry is:
> menuentry 'CentOS release 6.10 (Final) (on /dev/sda7)' --class
> gnu-linux --class gnu --class os $menuentry_id_option
> 'osprober-gnulinux-simple-92dcc576-4e61-41f3-ae42-d06b3aec01ae' {
>         insmod part_gpt
>         insmod ext2
>         set root='hd0,gpt7'
>         if [ x$feature_platform_search_hint = xy ]; then
>           search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt7
> --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7
> 92dcc576-4e61-41f3-ae42-d06b3aec01ae
>         else
>           search --no-floppy --fs-uuid --set=root
> 92dcc576-4e61-41f3-ae42-d06b3aec01ae
>         fi
>         linux /boot/vmlinuz-2.6.32-754.3.5.el6.centos.plus.x86_64 ro
> root=UUID=92dcc576-4e61-41f3-ae42-d06b3aec01ae rd_NO_LUKS
> SYSFONT=latarcyrheb-sun16 rd_NO_LVM rd_NO_DM crashkernel=auto
>         initrd /boot/initramfs-2.6.32-754.3.5.el6.centos.plus.x86_64.img
> }
> When I try to boot, I get a message that "linux" and "initrd" aren't
> valid commands. If I change them to "linuxefi" and initrdefi", I get
> this error:
> error: kernel too old
> error: you need to load the kernel first
> The information in the entry seems correct (partition, UUID, etc.).
> I've searched on Google quite a bit, but didn't find anything useful.
> Are there any suggestions?
> --
> Yves Bellefeuille
> <yan at storm.ca>
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> https://lists.centos.org/mailman/listinfo/centos

Stephen J Smoogen.