I have two drives on my system:

/dev/sda has a GPT and an EFI partition. It has Debian 9 and Windows 8.1 installed on it. Debian controls the MBR using grub (grub2?).

/dev/sdc has an msdos partition table. It has a CentOS 7 system on it which, due to bugs in anaconda, I was forced to install in legacy (i.e. non-UEFI) mode. CentOS controls the MBR on that disk using grub2.

To boot Debian or Windows I have to be in UEFI mode. The debian boot menu comes up and I can select either OS from there.

To boot CentOS 7 I have to switch to legacy mode and flag /dev/sdc as the boot drive. The CentOS boot menu shows me the Debian and Windows systems but cannot successfully boot them.

I would like to be able to boot all of my systems from a single boot menu, preferably while in UEFI mode, but don't have sufficient grub-fu to make it work.

I tried simply copying the relevant entry from CentOS's grub.cfg file to Debian's. It showed up on Debian's boot menu but when I selected it the system did a full reboot and put me back in the boot menu.

Since I plan on removing Debian I would like CentOS's boot menu, from its /boot partition on /dev/sdc, to be used, but if I have to create a separate boot partition on /dev/sda, I can live with that.

From my reading it looks like it might be as simple as running the grub-install command on CentOS and giving it /dev/sda1 as the location of the EFI partition, but none of the examples I've seen involve this mix of GPT and msdos drives, so I'm afraid of hosing my system.

Any help from the grub experts out there would be greatly appreciated.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.