Skip to content

Boot fails on first boot with Libreboot/Coreboot (no EFI payload) — installer should detect non‑EFI and offer legacy/BIOS install #4208

Description

@Somnius

System details

Lenovo ThinkPad T480, i7 variant, not nVidia, 32gb ram, 1tb disk

What's wrong?

System details

  • Machine: Lenovo ThinkPad T480
  • Firmware: Libreboot (Coreboot fork) — no EFI payload (no UEFI services)
  • Omarchy installer / ISO version: As of yesterday latest v3.3.2 but also tried with older v3.2.X
  • Disk/partition layout: mine is /dev/nvme0n1 GPT or it could be /dev/sda MBR for others

What happened

The installer finishes successfully (~3.5 minutes) but after the first reboot the system’s bootloader fails to hand off to the OS. The boot stage prints errors (limine or similar) and the machine drops to a prompt or fails to boot. I believe the installer assumed an EFI environment and installed an EFI-mode boot path on firmware that provides no UEFI services.

Steps to reproduce

  1. Use Libreboot/Coreboot without an EFI payload (no UEFI services).
  2. Run the Omarchy installer with default/automatic bootloader options.
  3. Reboot and observe bootloader errors and failed handoff to the installed system.

Expected behavior

The installer should detect absence of EFI (or detect firmware that doesn’t provide EFI runtime services) and either:

  • offer a “Legacy BIOS / No-EFI (Coreboot/Libreboot)” install option in the TUI Installer, or
  • automatically install a BIOS-mode bootloader (GRUB in i386-pc mode, SYSLINUX, or Limine in MBR/BIOS mode) when EFI is not present.

Why this matters

Some users run Libreboot/Coreboot without an EFI payload (no SeaBIOS/UEFI). The current installer appears to assume UEFI and installs accordingly, causing a complete inability to boot on first reboot. A detection + fallback would prevent breakage for those systems.

Suggested implementation / detection logic

  • Detect EFI presence via simple checks:
    • test -d /sys/firmware/efi (if absent → no EFI services)
    • or check efivarfs: mountpoint -q /sys/firmware/efi/efivars
    • check which boot variables / utilities are available (efibootmgr)
  • If EFI is absent: either prompt user for BIOS-mode install or automatically install a BIOS-mode bootloader and the correct partition layout (BIOS boot partition on GPT or MBR install on MBR disks).

Recommended installer actions when no EFI detected

  • On MBR: install GRUB in BIOS/MBR mode to the disk MBR (grub-install --target=i386-pc /dev/sdX).
  • On GPT: create or use a BIOS Boot Partition (1 MiB, type ef02) and install GRUB BIOS image to that partition.
  • Or provide Limine MBR/BIOS install path (limine-install /dev/sdX) when Limine is preferred.

Workarounds (manual) — pick one you prefer

A — Install GRUB (BIOS/i386-pc) from a live USB (Arch-style)

# from live USB
mount /dev/<root-part> /mnt
mount /dev/<boot-part> /mnt/boot    # if separate
arch-chroot /mnt
pacman -S grub
grub-install --target=i386-pc /dev/<disk>     # e.g. /dev/nvme0n1 or /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
exit
reboot

B — Install Limine to MBR (if you prefer Limine)

# install limine package for your distro, then:
limine-install /dev/<disk>
# ensure /boot/limine.cfg exists and contains kernel/initramfs entries

Note: On GPT you may need a BIOS boot partition (1 MiB, type ef02) for GRUB BIOS.

My results

I tried without success like on other systems cause of the intricacies of Omarchy with disk Encryption. As a person I can go so far.

Closing words

I hope the Dev team can help our little community out.. We are small but we are there. The ones that don't need Intel ME enabled etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions