installer: create EFI NVRAM boot entry for EVE-OS after installation#5712
installer: create EFI NVRAM boot entry for EVE-OS after installation#5712rene merged 1 commit intolf-edge:masterfrom
Conversation
f0485c6 to
dafd328
Compare
| local DISK="$1" | ||
| local BOOTLOADER='' | ||
| local PLATFORM='' | ||
| mount -t efivarfs efivarfs /sys/firmware/efi/efivars || bail "FATAL: cannot mount efivarfs" |
There was a problem hiding this comment.
Boot can work without forcing the creation of this entry, as it has been working so far. Do we really want to crash here in case of error(s)?
There was a problem hiding this comment.
@rene it must never crash on EFI + EFI enabled kernel. if it wails - we are in real trouble
There was a problem hiding this comment.
Do we still support legacy BIOS boot?
There was a problem hiding this comment.
@eriknordmark good question. but do we have to? I do not know any HW we use with legacy boot mode. I think we have not tested it for ages
| e2fsprogs-dev | ||
| e2fsprogs-extra | ||
| e2fsprogs-libs | ||
| efibootmgr |
There was a problem hiding this comment.
It makes more sense to put this change in the other commit, get-deps ensure dependencies will be built in the right other, so you don't need to worry.....
dafd328 to
9b6531e
Compare
|
@rucoder , pls, rebase on top of master.... |
After writing the EFI partition to disk, the installer did not create an EFI NVRAM boot entry. On some hardware and firmware configurations this means EVE-OS would not appear in the boot menu and the system might not boot into EVE without manual BIOS intervention. Add create_efi_boot_entry() to the installer script. It detects the EFI bootloader path by architecture (x86_64, ARM64, RISCV64) from the installer's own EFI files, removes any pre-existing "EVE-OS" NVRAM entries to avoid duplicates on reinstall, then creates a new entry pointing to the correct EFI bootloader on the installed disk. Add efibootmgr as a runtime dependency of the installer container. Signed-off-by: Mikhail Malyshev <mike.malyshev@gmail.com>
9b6531e to
24a7d6b
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5712 +/- ##
==========================================
+ Coverage 19.52% 25.68% +6.15%
==========================================
Files 19 24 +5
Lines 3021 4213 +1192
==========================================
+ Hits 590 1082 +492
- Misses 2310 2911 +601
- Partials 121 220 +99 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Description
After writing the EFI partition to disk, the installer did not create an EFI
NVRAM boot entry. On some hardware and firmware configurations this means
EVE-OS would not appear in the boot menu after installation and the system
might not boot into EVE without manual BIOS intervention.
This change adds
create_efi_boot_entry()to the installer script. It:from the installer's own EFI files (available at
/root/EFI/BOOT/via thelinuxkit init layer)
reinstall
installed disk using
efibootmgrefibootmgris added as a runtime dependency of the installer container.tested on QEMU. EVE-OS entry appears in UEFI boot manager and works

PR dependencies
How to test and validate this PR
make installerone "EVE-OS" entry (no duplicates)
Alternatively, test in QEMU with OVMF:
Changelog notes
EVE-OS installer now creates an EFI NVRAM boot entry during installation,
ensuring the device boots into EVE-OS automatically after installation on
EFI-capable hardware.
PR Backports
Checklist
I've provided a proper description
I've added the proper documentation
I've tested my PR on amd64 device
I've tested my PR on arm64 device
I've written the test verification instructions
I've set the proper labels to this PR
I've checked the boxes above, or I've provided a good reason why I didn't
check them.