Installing Silverblue 32 alongside Windows 10 (2 issues I found)

Hi all,
I just want to share the 2 issues I found and had to sort out when installing Silverblue 32 in the same disk as Windows 10, just in case someone tries to do it as well.

I’ll assume you shrunk the Win10 partition to make room for Silverblue (there are nice articles online on how to do it), and created a booteable USB drive for Silverblue (can download the iso and use Fedora media writer).

Boot the USB drive and get to the partitioning step in anaconda, but chose custom.
In this case, I did the following:

  1. Created a 2 GB , ext4 partition with /boot as mount point. (Silverblue needs a separated /boot)
  2. Created a 6 GB swap partition.
  3. Created a btrfs, encrypted partition with all remaining space with / as mount point.
  4. Set the mounting point for the existing EFI partition to /boot/efi

Now, that should work just fine, but I hit 2 bugs.

1st) "Installer unable to configure the boot environment"
Apparently, If there’s an existing EFI folder, the installer will place the fedora configuration in
/boot/efi/EFI/EFI/fedora instead of /boot/efi/EFI/fedora, then it will fail to generate the grub configuration as it will fail to locate the needed file.
This has been reported in this bug and there is already a pull request to fix it.

Workaround:

  1. Before performing the disk partitioning, switch to a tty
  2. Connect and mount a USB drive.
  3. Mount the drive and the EFI partition.
  4. Copy the contents of the EFI partition into the drive. If you only have Win10, you only need to copy the folder EFI/Microsoft.
  5. Unmount the EFI partition.
  6. Go back to the installer and when selecting the existing EFI partition with a mounting point of /boot/efi, be sure to select the reformat checkbox
  7. Continue with the usual install process, but do not chose to restart the computer once it finish.
  8. Go back to a tty.
  9. The EFI partition should be already mounted so just find out where by running mount
  10. Copy the Microsoft folder (or any other entries you had before), back into the EFI partition.
  11. Go back to the installer and chose to restart.

2nd) Silverblue unable to find OSTree root due to btrfs
This is due to using btrfs as file system for /, and has been reported in this bug, there is also a pull request to fix it.

Workaround:

  1. When the computer starts keep pressing the key e until you get to the GRUB configuration for the entry, then remove any e that got written in the first line.
  2. Go until the end of the kernel line (I usually go to the initramfs then one to the left)
  3. Add the parameter rootflags=subvol=root at the end (root is the default name for the subvolume when you do the partitioning during install unless you specified a different one).
  4. Press Ctrl + X to run that configuration and eventually get to the desktop.
  5. Now we want to make that change permanent, but in Silverblue, you cannot just edit /etc/default/grub as it gets overwritten, so you need to use the following command instead.
    rpm-ostree kargs --editor
  6. Add rootflags=subvol=root at the end of the configuration line. (Press i if using vi editor)
  7. Save the changes and exit ( press esc and then :x if using vi)
  8. Then you can run systemctl reboot to restart and see the changes in effect.

Anyways, just felt like sharing as I don’t know the ETA for those 2 pulls to make it into the installer images.
I hope it is useful to someone.

Regards,

3 Likes