27 Oct 2016 • Leave Comments
- UEFI (also named as EFI) firmware on system board is the primary bootloader.
- sys-boot/efibootmgr application is not a bootloader; it is a tool to interact with the UEFI firmware and update its settings.
- Enable CONFIG_EFI_VARS so that the system firmware can be manipulated via efibootmgr.
- Grub/LILO etc. are secondary bootloaders with more flexible extensions.
- Secondary bootloader is not a requirement, even for multiple boot entries.
- The kernel must have specific options enabled to be directly bootable by the system's UEFI firmware (CONFIG_EFI and CONFIG_EFI_STUB).
- Be sure to read though the EFI stub kernel article before continuing.
- To reiterate, efibootmgr is not a requirement to directly boot an UEFI system. The Linux kernel itself can be booted immediately.
- Additional kernel command-line options can be built-in to the Linux kernel (CONFIG_CMDLINE).
- Even an initramfs can be 'built-in' to the kernel, which is not recommended. To support initramfs directly, passing a parameter to the primary UEFI bootloader with the help of efibootmgr.
- For additional kernels or Windows, enable CONFIG_EFI_VARS. Then create another UEFI entries by efibootmgr.