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:

  • Cris
    link
    English
    82 days ago

    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?

    • Limitless_screaming
      link
      fedilink
      122 days ago

      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.

      • Cris
        link
        English
        32 days ago

        This reply and one other were super helpful, thank you for helping me understand!

    • @[email protected]
      link
      fedilink
      10
      edit-2
      2 days ago

      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

      • Cris
        link
        English
        3
        edit-2
        2 days ago

        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!

        • @[email protected]
          link
          fedilink
          1
          edit-2
          2 days ago

          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.

          • Coelacanthus
            link
            fedilink
            123 hours ago

            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.

    • @davidgro
      link
      12 days ago

      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.

      • Cris
        link
        English
        3
        edit-2
        2 days ago

        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 :)