Çoğu dağıtım bir UEFI sistemine ek bir önyükleyici yükler. UEFI'nın kendisi bir önyükleyicidir, farklı işletim sistemlerini veya tek tek çekirdekleri seçmek için bir menü sunar. Ayrıca, UEFI ayarları gibi kullanıcı araçları ile kolayca değiştirilebilir efibootmgr
.
3.3'ten beri olan çekirdekler EFI_STUB'ı desteklemektedir, bu da çekirdeğin doğrudan UEFI'den yüklenebileceği anlamına gelir. Dağıtımların ek bir önyükleyici kullanmaya karar vermesinin nedeni nedir? Linux / UEFI hakkındaki çoğu öğretici, Linux'u EFI_STUB ile başlatmak yerine, ek önyükleyici (rEFInd, grub2, ELILO, vb.) Ayarlarının nasıl yapıldığına odaklanır.
Dağılımlarda eksik olan tek şey destek. Çoğu dağıtım ikinci bir önyükleyici zinciri oluşturduğundan, çekirdek UEFI önyükleme menüsüne eklenmez ve EFI sistem bölümüne de kopyalanmaz.
Tüm sihri yapmak için üç senaryo yeterli. Initramfs'i ESP'ye kopyalayan biri. İkincisi, çekirdeği ESP'ye kopyalar ve UEFI önyükleme menüsünde yeni bir giriş oluşturur. Üçüncü komut dosyası eski çekirdeği ve initramfs öğelerini ESP'den kaldırır ve UEFI önyükleme menüsü girişini siler. Bu tam otomatikleştirilmiş çekirdek / initramfs güncelleme / temizleme işlemlerini kullanıcı etkileşimi olmadan sağlar. Bu yaklaşımı bir yıldan fazla bir süredir kullanıyorum ve kusursuz çalıştı.
Neden çoğu dağıtım EFI_STUB yerine grub kullanıyor?
Bağlantılar:
EDIT: Grub desteğini tamamen kaldırmaktan değil, çeşitli nedenlerle kullanmak isteyenler için bir seçenek sunmaktan bahsetmiyorum. Dağıtımlar, grub-efi
UEFI'yi ve grubunu zincirlemek isteyenler için bir paket ve efistub-boot
yukarıda bahsettiğim senaryoları içeren bir paket sağlayabilir .