Sebagian besar distribusi memasang bootloader tambahan pada sistem UEFI. UEFI sendiri adalah boot loader, ia menawarkan menu untuk memilih sistem operasi atau kernel yang berbeda. Selain itu, pengaturan UEFI dapat dengan mudah diubah dengan alat seperti userspace efibootmgr
.
Kernel sejak 3.3 mendukung EFI_STUB, yang berarti kernel dapat dimuat langsung dari UEFI. Apa alasan distribusi memutuskan untuk menggunakan bootloader tambahan? Sebagian besar tutorial tentang Linux / UEFI berfokus terutama pada cara mengatur bootloader tambahan (rEFInd, grub2, ELILO, dll.) Daripada mem-boot Linux dengan EFI_STUB.
Satu-satunya hal yang hilang dalam distribusi adalah dukungan. Karena sebagian besar distribusi membuat boot loader kedua, kernel tidak ditambahkan ke menu boot UEFI, juga tidak disalin ke partisi sistem EFI.
Tiga skrip sudah cukup untuk melakukan semua keajaiban. Satu yang menyalin initramf ke ESP. Yang kedua menyalin kernel ke ESP dan membuat entri baru di menu boot UEFI. Skrip ketiga menghapus kernel dan initramf lama dari ESP dan menghapus entri menu boot UEFI. Ini memungkinkan pembaruan / pembersihan kernel / initramfs sepenuhnya otomatis tanpa interaksi pengguna. Saya menggunakan pendekatan ini sejak lebih dari setahun dan telah bekerja dengan sempurna.
Mengapa sebagian besar distribusi menggunakan grub alih-alih EFI_STUB?
Tautan:
EDIT: Saya tidak berbicara tentang menghapus dukungan grub sepenuhnya tetapi untuk menawarkan pilihan bagi mereka yang ingin menggunakannya karena berbagai alasan. Distribusi dapat menyediakan paket grub-efi
untuk mereka yang ingin rantai UEFI dan grub dan paket efistub-boot
yang berisi skrip yang saya sebutkan di atas.