- cross-posted to:
- phoronix
- cross-posted to:
- phoronix
Limine 9.0 is out today as the newest major release for this open-source modern multi-protocol bootloader and boot manager. Limine also boasts its own Limine Boot Protocol in addition to the native Linux support and chainloading/multiboot capabilities.
One change that will surprise some readers is Limine 9.0 doing away with EXT4 file-system support as well as older EXT2 and EXT3 support. The change-log notes of dropping the EXT4 file-system support:
Limine instead is focusing on the FAT32 file-system support and ISO9660 for boot medium storage.
That seems odd…? I’d love if anyone more knowledgable could chime in, why build a new bootloader and focus on FAT32…?
I generally associate the FAT filesystems with windows (no idea how accurate that is, probably not very), and I think most of linux is ext4 and moving towards btrfs and other newer filesystems
Windows doesn’t need a bootloader, and I can’t think of a time I heard of linux using FAT32, is that different in the enterprise or BSD world? What is a bootloader focused on FAT32 and ISO9660 for?
In their repo, under “Limine’s Design Philosophy” -> “Why not support filesystem X or feature Y? (eg: LUKS, LVM)”:
The idea with Limine is to remove the responsibility of parsing filesystems and formats, aside from the bare minimum necessities (eg: FAT*, ISO9660), from the bootloader itself. It is a needless duplication of efforts to have bootloaders support all possible filesystems and formats, and it leads to massive, bloated bootloaders as a result (eg: GRUB2). What is needed is to simply make sure the bootloader is capable of reading its own files, configuration, and be able to load kernel/module files from disk. The kernel should be responsible for parsing everything else as it sees fit.
This reply and one other were super helpful, thank you for helping me understand!
UEFI standard requires a FAT32 partition. It is usually a first partition on disk, 500MB in size. The linux kernel to boot, together with initrams disk can be placed in the root partition, usually ext4 or btrfs, or it can be placed in uefi partition. Limine will only support booting the kernel from uefi fat32 partition to avoid having to support ext4 and btrfs filesystems. The root partition will still be ext4 or btrfs, the code to mount it would be in kernel or in initramfs. Edit: size of uefi partition
Surely you meant MB 🙂
For when you want every kernel version.
You can call that partition: EVERYONE
Ahh, so the boot partition on linux doesn’t necessarily need to be ext4, so it doesn’t matter if it’s not supported
Between you and another reply I understand now, thank you!
UEFI standard requires support for FAT and then can implement other file systems for the EFI System Partition.
But no vendor actually implements any with the exception of those forced to include APFS by Apple. So FAT is the de facto standard for all ESPs for years.
But no vendor actually implements any with the exception of those forced to include APFS by Apple.
Actually some vendors implements NTFS driver in their UEFI as well.
Maybe it’s specifically meant to be used on boot USB sticks/memory-cards and optical discs? If so then maybe this is about the host filesystem and not what’s inside the images being booted?
That’s the only way I can make sense of this, but I haven’t heard of it before, so I just don’t know.
With the help of some replies I got it figured out
The bootloader doesn’t need to support anything other than your boot partition which can be in your normal drive space, or it can be in a dedicated UEFI partition which isn’t gonna be ext4, so this project aims just to support booting from the UEFI partition
Check the other replies I got if you want more context :)