Historically, installing Fedora with
/boot on a btrfs subvolume was
impossible. The reason for this was actually somewhat trivial: grubby had
a bug where it failed to detect the path to the kernel and initramfs when
a btrfs subvolume was used. Fortunately, that bug has now been fixed.
However, there is one minor issue that still prevents you from installing
stock Fedora in this configuration. Due to the aforementioned grubby bug,
Anaconda excluded btrfs subvolumes from its internal whitelist for
I have filed a trivial patch against Anaconda which enables this
functionality. However, the Anaconda team does not have the time to review
this patch for Fedora 28. You can follow this Anaconda effort at this bug
The good news is that we can bypass this blocker using the magic of Anaconda update images! For your convenience, I have created these update images for Fedora 27. You can find them here. I will update them for Fedora 28 once it is released.
Installing Fedora 27 with /boot on a btrfs Subvolume
Begin by downloading your Fedora 27 media of choice and booting it. When you get to the bootloader menu, press tab.
This brings up the kernel command line interface. We will simply add the URL to the Anaconda update image as you see in the image below. Please note that you will need to adjust the architecture in the URL for your installation target.
Triple-check that you type this URL correctly as this will be the most common source of errors in this process. When you are sure it is correct, press Enter to continue. If you mistype it, Anaconda will fail to download the image and will give you an error.
From here you will continue the install as normal until you come to the main Anaconda menu screen shown below. You will need to choose the “Installation Source” option.
Once in the Installation Source submenu, you will need to uncheck the checkbox shown in the image below. Doing this enables Anaconda to download and install the latest version of the packages (in our case, grubby) from the internet rather than the version that is on the install media. This step is necessary for Fedora 27 since we need the fixed grubby. However, this should be unnecessary for Fedora 28 which should contain a new enough version.
That’s it! Just continue the install like normal and put your
partition on a btrfs subvolume. Everything should work correctly from here.
We’d love to hear your feedback! If you encounter problems - or simply want to report your success - please leave a comment on one of the relevant bugs above.