FS#60996 - [archboot] Installer claims that bootloaders don't support /boot on a Btrfs subvolume

Attached to Project: Arch Linux
Opened by Andrej Podzimek (andrej) - Friday, 07 December 2018, 18:26 GMT
Last edited by Tobias Powalowski (tpowa) - Thursday, 16 September 2021, 15:47 GMT
Task Type Bug Report
Category Arch Projects
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

GRUB supports /boot on Btrfs subvolumes, of course, even when they are inside LUKS and LVM and part of a complex Btrfs setup.

Additional info:
* package version(s): Archboot 2018.06 „2k18-R1“
* config and/or log files etc.: N/A

Steps to reproduce:
Try to configure /boot on a Btrfs subvolume in the installer. It will say "/boot on a btrfs subvolume is not supported by any bootloader yet!", which is obviously a nonsense; this worked back in ~2011 already and I run numerous setups with such configurations.
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Thursday, 16 September 2021, 15:47 GMT
Reason for closing:  Fixed
Additional comments about closing:  2021.09-15
Comment by loqs (loqs) - Friday, 07 December 2018, 18:33 GMT Comment by Daniel M. Capella (polyzen) - Friday, 07 December 2018, 19:58 GMT
https://git.archlinux.org/archboot.git/commit/?id=d3b5f1fddbf6ddc8dac670d704b348d175e06bb9

14:44 <alad> ~/archboot$ grep -R "/boot on a btrfs subvolume is not supported by any bootloader yet!"
14:44 <alad> usr/share/archboot/installer/setup: DIALOG --msgbox "ERROR: \n/boot on a btrfs subvolume is not supported by any bootloader yet!" 8 65
Comment by loqs (loqs) - Friday, 07 December 2018, 20:07 GMT
https://git.archlinux.org/robots.txt
User-agent: *
Disallow: /
Explains why I missed it using a search engine query.
Comment by Eli Schwartz (eschwartz) - Friday, 07 December 2018, 20:44 GMT
  • Field changed: Summary (Installer claims that bootloaders don't support /boot on a Btrfs subvolume → {archboot} Installer claims that bootloaders don't support /boot on a Btrfs subvolume)
  • Field changed: Status (Unconfirmed → Assigned)
  • Field changed: Category (System → Arch Projects)
  • Field changed: Architecture (x86_64 → All)
  • Task assigned to Tobias Powalowski (tpowa)
I'd sort of assume that listing the package as archboot in the bug report details would make this fairly obvious, loqs...

andrej, we do need this info in the bug summary in order to filter by it.
Comment by loqs (loqs) - Friday, 07 December 2018, 20:49 GMT
@eschwartz yes it should have been obvious.
Comment by Tobias Powalowski (tpowa) - Saturday, 08 December 2018, 07:20 GMT
Which bootloader does it support?
Comment by Eli Schwartz (eschwartz) - Sunday, 09 December 2018, 05:17 GMT
tpowa, any bootloader should support /boot on any filesystem at all. The problem is that the UEFI firmware is its own mini operating system firmware, and per the spec, it will only (need to) support vfat.

The grub and refind bootloaders come with their own filesystem drivers however, which provide support for common filesystems including ext4 and btrfs.

Grub specifically documents support in its documentation for (yes, this includes LUKS-encrypted partitions):
Amiga Fast FileSystem (AFFS), AtheOS fs, BeFS, BtrFS (including raid0, raid1, raid10, gzip and lzo), cpio (little- and big-endian bin, odc and newc variants), Linux ext2/ext3/ext4, DOS FAT12/FAT16/FAT32, exFAT, HFS, HFS+, ISO9660 (including Joliet, Rock-ridge and multi-chunk files), JFS, Minix fs (versions 1, 2 and 3), nilfs2, NTFS (including compression), ReiserFS, ROMFS, Amiga Smart FileSystem (SFS), Squash4, tar, UDF, BSD UFS/UFS2, XFS, and ZFS (including lzjb, gzip, zle, mirror, stripe, raidz1/2/3 and encryption in AES-CCM and AES-GCM)

refind documents its officially included drivers here: https://www.rodsbooks.com/refind/drivers.html#selecting

...

You can also use the standalone UEFI filesystem drivers from http://efi.akeo.ie/ but the refind author claims that most UEFI implementations offer very poor control over the loading of such, and therefore recommends using refind to do so (refind supports detecting and loading generic filesystem drivers not provided within the refind distribution itself).
Comment by Tobias Powalowski (tpowa) - Monday, 10 December 2018, 07:07 GMT
Well the time this routine was written, not all bootloaders supported this scenario especially btrfs was brand new at this time.
I need to look at it, probably haven't done it cause I don't need this myself.
Comment by Tobias Powalowski (tpowa) - Monday, 20 July 2020, 14:24 GMT
Fixed on trunk.
Correct adding paths in config still needs to be implemented.
Comment by Tobias Powalowski (tpowa) - Tuesday, 14 September 2021, 17:16 GMT
Ok looked at it again, syslinux does work on btrfs but I cannot get it running on a subvolume. Any help on this would be appreciated.

Loading...