chainloader and efi boot partitions

0

My recent attempt to install a multi-booting system onto my twin disk rig failed, though I had successfully installed Ubuntu, Linux Mint and Peppermint on disk 1, updating grub afterwards. When I tried to install CentOS, openSUSE and Fedora on disk 2. I encountered numerous problems.

  1. Not enough space available. Though I had used GParted to format both disks, for a non LVM install, plus disk 2 had no OS on it.
  2. Not seeing the other distros in the installer.
  3. Mount points not being accepted.
  4. A /boot/efi partition was required and GPT partition table asked for.
  5. Attempting to modify the partitions through the installer, crashed it.
  6. Tried LMDE 2, (Debian has issues with my CPU?) though it saw all installed distros, (including the reinstalled CentOS 6.6 to check, if it was me), it wanted a /boot/efi partition.

Actions.

As it was the newer RPM's distros I was having issues with, I decided to install CentoS 7 first, though CentOS 6.6 previousily coexisted happily on my old settings BIOS setting and sudo update-grub. Notably openSUSE, is there any hints to improve my chances of a clean install. I think I have worked out CentOS and Fedora quirks.

  1. Uninstall everything. For fresh install.
  2. Reformat both disks using GPT, creating two fat32 /boot/efi flagged partitions for each disk. Is this overkill or a necessity?
  3. Then created /, /home partitions with ext4 and linux-swap partition, for my new manual, non LVM install.
  4. Check BIOS and alter settings from Legacy to UEFI.
  5. Install CentOS 7, after overcoming its foibles of not enough space and mount point quirks, that were /boot/efi, then /home, followed by / and swap.
  6. Run command [ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode" = Installed in UEFI mode.

As Ubuntu and Ubuntu based distros primarily use Debian as their base, currently not implementing systemd yet, it seems highly likely they will follow suit, in the near future and I need to adapt now.

Chainloader.

Not something I've had much experience with, the last occasion I tried it, the sudo update-grub removed it. So a web safari later, I found some tangible starting points and call up the correct terms (new) for CentOS 7, with grub2-mkconfig -o /boot/grub2/grub.cfg being similar to sudo update-grub. Then the "etc/grub.d/40_custom" to open a gedit file, or so I thought would happen, to edit the #40 menuentry.

Terminal.

At the terminal do I enter my chainloader after the #...? I'm unsure of the script, below, and would appreciate experienced view on this.

[root@localhost tony]# /etc/grub.d/40_custom
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
[root@localhost tony]#

#DISK 1
#
# for CentOS-7
menuentry "My custom boot entry" {
set root= '(hd0,2)'
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
}
#
# for openSUSE
"openSUSE-13.2" {
set root='(hd0,5)'
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
}
#
# for Fedora
"Fedora-22" {
set root='(hd0,8)'
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
}
#
#DISK 2
#
# for Ubuntu
"Ubuntu-14.04.2" {
set root='(hd1,2)'
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
}
#
# for Linux Mint
"Linuxmint-17.1" {
set root='(hd1,5)'
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
}
#
# for Peppermint
"Peppermint-Five" {
set root='(hd1,8)'
linux /boot/vmlinuz-linux
initrd /boot/initramfs-linux.img
}

Summary.

Changed from Legacy to UEFI mode, used GPT partition tables, created two /boot/efi partitions for both disks, is this necessary. Chainloader, unsure of myself, require guidance, to hopefully make a painless install of the other distros that live in harmony with other.

Thank you in advance for much needed help on this topic.

Tony

Posted 2015-04-30T21:44:14.670

Reputation: 23

You can/should include what the problems are, and the necessary information in the question itself. – Journeyman Geek – 2015-05-01T03:37:20.340

My apologies, I have removed link, and included all relevant details now. – Tony – 2015-05-01T12:02:35.563

Answers

2

Some of your problems, such as installers not accepting the mount points you specify, are clearly distribution-specific and should be addressed as individual questions relating to them, possibly on distribution-specific forums.

To the overall question of how to configure a boot manager for your complex multi-OS setup, I will first advise you to not create such a complex setup. If possible, you should single-boot and use virtualization (VMWare, VirtualBox, KVM/QEMU, etc.) to handle multiple OSes. This approach is much less trouble than trying to manage half a dozen different OSes on one computer.

If you must multi-boot so many OSes, IMHO GRUB is a terrible solution. It requires complex OS-detection logic in setup scripts. Any given distribution's setup scripts will handle that distribution pretty well, but will be much iffier with other distributions. Instead, you should consider using another EFI boot manager. Several are available, as detailed on this page of mine. Most require manual configuration, but that configuration will be much simpler than the tweaks required to get GRUB working. My own rEFInd is likely to be the easiest to set up for you, since it scans for boot loaders and Linux kernels at every boot. You may need a /boot/refind_linux.conf file for most of your installations, and you may need to pay careful attention to the filesystem(s) on which you store your kernels, and ensure that you install EFI filesystem drivers for them, but rEFInd will probably boot most or all of your distributions with little fuss beyond that, and no need to adjust the configuration whenever you change your kernel in any given distribution.

Rod Smith

Posted 2015-04-30T21:44:14.670

Reputation: 18 427

Thank you very much, I did come across your website, during my web safari, and thought wow.

Having carefully considered your reply, you are correct. I had began to doubt the wisdom of this idea since I posted my question.

The main reason, I'm preparing my computer for a home study course, while I'm waiting for my pre-ordered copy of the 2015 edition of CompTIA Linux+ book to arrive, mid to late May.

I wish you all the best with your project, and thank you for your time. – Tony – 2015-05-01T20:58:44.240

For your purpose, virtualization has the added advantage of easy backup: Just cp imagefile.img backup_imagefile.img (or whatever the file actually is) and you're done. You can then reverse the process very easily if you mess something up in your virtual machine, without re-installing everything. – Rod Smith – 2015-05-01T22:55:14.370