Grub installation. First potential Fedora killer

Chris Murphy lists at
Mon Jan 6 07:38:26 UTC 2014

On Jan 5, 2014, at 11:27 PM, Jean Fran├žois Martinez <jfm512 at> wrote:

> This is not the problem.  THe problem is:  a user of another distribution will not want to touch Fedora with a ten foot pole pnce he discovers Fedora messe up with his booter setup.  And the parttitionner is equally bad.  These are two areas a distribution not only in the area of bugs but in the are of design.  And Fedora hasn't. 

Yes. Well, the unfriendliness of linux distributions toward other linux distributions in multiboot context is not unique to Fedora. By default they all pretty much will try to eat each other for lunch. It's distinctly unfriendly compared to the default behavior of installing two copies of Windows, or two copies of OS X on the same drive. It annoys me, but also there's a kind of irony so I'm also amused.

Anyway, some distros try to get around the problem, while it's still not at all friendly, by forcing the installation of boot.img and block list into the first two sectors of the /boot partition. Literally it requires grub-install --force, otherwise it fails. The Fedora installer since F18 doesn't support --force anymore. Other distros take the ensuing risk.

You can do one of three things post install, starting with do not install a boot loader when installing Fedora:

1. grub2-install --force /dev/sdXY and then grub2-mkconfig -o /boot/grub2/grub.cfg. Does not require --force for Btrfs. Does not work in any case with XFS. Unfortunately when the bootloader isn't installed by anaconda, it also doesn't create /etc/default/grub which could be a drag to create manually but that's the deal. There has been an RFE on this for two releases or so, no progress or patches to help the progress. This is a bit clunky but can be chainloaded from grub legacy or other non-grub2 bootloaders, and it's probably what you're used to even though it's really inelegant.

2. grub2-install --grub-setup=/bin/true /dev/sda will do everything except obliterate the MBR gap boot loader code, leaving the existing boot loader working. Also run grub2-mkconfig as above. No code goes in the /boot partition VBR in this case, so you need to have your non-grub2 main bootloader directly load the grub2 core.img; or if it is grub2 then you should edit the main distro /etc/grub.d/40_custom with an entry using configfile pointed to the Fedora grub.cfg and update its grub.cfg. Still lacks /etc/default/grub.

3. Use extlinux as a boot parameter for the install media. This will use extlinux which by design installs to rootfs for unified layouts, or /boot if separate. Currently boot code already in the MBR is not replaced. (On blank disks, parted writes some basic jump code in the MBR so new installs do boot with no extra work.) There's an RFE asking for extlinux installs to overwrite the MBR, FYI, so this behavior could change. In this case there's boot code in the Fedora boot partition VBR, so you just have the main bootloader chainload extlinux by  pointing it to the boot partition. Anaconda creates a extlinux.conf for you. So I think this is the best option.

Chris Murphy

More information about the devel mailing list