4 ms·
Does anyone use UEFI to directly load Linux ? Currently I use Syslinux but I've heard it can be directly booted and remove Syslinux from the process. And it sti
by edoceo 1y ago
Does anyone use UEFI to directly load Linux ? Currently I use Syslinux but I've heard it can be directly booted and remove Syslinux from the process. And it still works with initrd and my appended command line options. This page is in my pinned reference for it - but I'm nervous to try lest I brick my machine.
Anyone here made it work? If UEFI can do it, what is the bootloader for?
- Foxboron 1y agoThe Linux `vmlinuz` binary is an EFI executable that implements a minimal stub loader to load rest of the kernel and initrd. You can use `efibootmgr` to insert the `vmlinuz` binary as a boot entry. But honestly, you are better off using a proper bootloader as it makes things a lot simpler for you to manage. The UEFI bootloader menu is mediocre if you are lucky, terrible in most cases.
- Cu3PO42 1y agoYes, you can boot Unified Kernel Images (UKI) directly from UEFI without an additional bootloader. A bootloader may still be helpful to manage your various entries and provide you with a menu to select one of many entries to boot.
- mixmastamyk 1y agoYes, I tried this on a tablet and it works. However I found systemd-boot friendlier to use at boot time, because you don’t have to go into firmware to pick an entry (kernel). And can edit config on disk. But on a typical boot it works just fine either way.
- jeroenhd 1y agoAs others said, you can do it. It's very useful for some scenarios. Bootloaders and boot managers take away a lot of the management, which is welcome with many UEFI screens. You have some, like HP's, that will let you browse to an EFI file and/or manually manage custom entries, basically removing the need for a bootloader in most cases, and then there are the ones like my MSI board that will corrupt their own configuration if you call efibootmgr too many times and that hide any custom boot defintions from the management UI so you have to use the Linux command line to set the preference right. Whether you need one is up to you to decide. Most distros default to using a bootloader because that's what users expect, but there's no strict requirement for using bootloaders if you don't want Grub or rEFInd or systemd-boot on your system. However, if you want to do things like "edit the kernel parameters once every now and then", a bootloader is probably the way to go for most people. When you're building an embedded Linux application that will only boot kernels signed by your company, I don't see the need for a bootloader, though.