“EFI değişkenleri bu sistemde desteklenmiyor”


19

Arch linux'u yeni (ve çok berbat) bir HP Pavillion 15 Dizüstü Bilgisayarına kurmaya çalışıyorum.

Bu UEFI tabanlı bir makinedir. Birkaç salıncaktan sonra, oldukça uzaklaşmayı başardım. Eski mod sistem kurulumunda devre dışı bırakılmıştır ve yazdığım Arch DVD'ye EFI önyüklemem var ve hem Arch Acemi Kılavuzu hem de daha gelişmiş Kurulum Kılavuzu boyunca grub yüklediğim noktaya ilerledim .

chrootEd iken , ben yürütmek:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug

Bu, aşağıdakiler dahil bir ton çıktı üretir:

EFI değişkenleri bu sistemde desteklenmiyor

Bu noktaya ilk geldiğimde, gerçek bir sorun olup olmadığını bilmeden kuruluma devam ettim. Görünüşe göre, makineyi yeniden başlattığımda önyüklenebilir bir ortam bulunamadı ve makine önyüklemeyi reddetti. Bu noktada UEFI kurulum menüsüne girip önyüklemek için bir EFI dosyası seçebildim ve Arch Linux başlayacaktı.

Ama şimdi geri dönüp tekrar yukarıdaki sorunu düzeltmeye çalışıyorum.

GRUB'un doğru şekilde kurulmasını nasıl sağlayabilirim?

Yanıtlar:


20

Sorun sadece efivarsçekirdek modülünün yüklenmemesiydi.

Bu şu şekilde teyit edilebilir:

sh-4.2# efivar-tester
UEFI variables are not supported on this machine.

Eğer varsa chrootgiriş ed yeni adres yüklemek, exitdışarı ve sonra etkinleştirme efivars:

exit
modprobe efivars

... ve sonra chrootiçeri giriyorum. Benim durumumda bu şu anlama gelir:

chroot /mnt

ama chrootdaha önce yaptığınız gibi olmalısınız.

Tekrar girdikten sonra tekrar test edin:

efivar-tester

Bu artık bir hata bildirmez ve grub'u daha önce yaptığınız şekilde yükleyebilirsiniz.

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug


5
Peki UEFI'yi desteklemeyen bir sisteme ne dersiniz? Çalışma bilgisayarım UEFI'yi desteklemiyorsa, Arch'ı yeni bir UEFI bilgisayarına yüklemek için USB çubuğuma UEFI özellikli GRUB'u nasıl yükleyebilirim? Bunu yapmanın bir yolu olmalı!
trusktr

6
Efivars modülünün yerini şimdi "efivarfs" aldı ( wiki.debian.org/UEFI#efibootmgr_and_efivar ).
pedroapero

1
Çalışırken modprobe efivarfs, OP tarafından açıklanan konu devam etmektedir. belki bu cevabın güncellenmesi gerekiyor? Tamamen fikirlerim bitiyor.
Afr

3
Ne yazık ki modprobe efivarsverir modprobe: FATAL: Module efivars not found in directory /lib/modules/4.16.3-301.fc28.x86_64(yeni yüklenen canlı usb)
jozxyqk

5

UEFI yöntemini değil, eski yöntemi kullanarak önyükleme yaptıysanız bu hatayı alırsınız. BIOS menüsünde UEFI önyükleme öğesini seçtiğinizden veya varsayılan önyükleme yöntemi olarak UEFI'yi seçtiğinizden emin olmanız gerekir.


4

Biliyorum, bu çok eski bir konu, ama belki birisi için yardımcı olacaktır. Çoğu kılavuz, sanal dosya sistemlerini chroot'tan önce bağlamak için aynı çözümü önerir:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done

Ancak şimdi (belki efivars / efivarfs değişiklikleri ile ilgili) bu döngü çok özel bir alt bağlama noktası atlar - /sys/firmware/efi/efivarsve efibootmgr / grub başarısız olur.

Bunun yerine bu satırı kullanın:

for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do sudo mount -B $i /mnt$i; done

Gerçek başarı hikayesi: Arch Linux live cd tarafından kaydedilen 4.9.0-5 (efivars) ile Debian (sadece kutudan çıktığı için seçildi) 4.14.9-1-ARCH (efivarfs) ile sadece bağlama / sys ile / firmware / efi / efivars


0

Fedora 27'yi çalıştırırken, monte etmem gerekiyordu efivarfs. Bunu chrootfs içinde yaptım, ancak önyükleme girişi ile gösterildiği gibi bu hala çalışmadı efibootmgr- ancak yeniden başlattıktan sonra daha net bir şekilde önyüklendi veya canlı işletim sisteminde bir kez gösterildi.

Sonunda işe yarayan, canlı ortamdan grub kullanmak, kabuğa düşmek ve girmek linuxefi /vmlinuz-<version> root=/dev/mapper/luks-<uuid> ro initrdefi /initramfs-<version>.img boot Normal OS'den önyükleme grub2-installyapmadan chroot, çalışamam ve işe yaradı.

Bunun sadece BIOS'umla ilgili bir sorun olup olmadığından emin değilim veya hala daha genel olarak yanlış bir şey var, ancak grub2-installherhangi bir hata bildirmeden çalıştırılan şey bu .

# Open encrypted root partion cryptsetup luksOpen /dev/sda4 a4 mount /dev/mapper/a4 /mnt mount /dev/sda2 /mnt/boot mount -t proc proc /mnt/proc mount -t sysfs sys /mnt/sys mount -o bind /dev /mnt/dev mount -t devpts pts /mnt/dev/pts/ mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf chroot /mnt # run inside the chroot: mount /dev/sda1 /boot/efi mount -t efivarfs efivarfs /sys/firmware/efi/efivars grub2-install


-3

Yapamazsın! Bina ve kurulum iki farklı şeydir, üzerine inşa ettiğiniz makine uefi yeteneğine sahip olmalıdır. Linux üzerinde uefi özellikli donanım gpt kullanmak / kurmak istiyorsanız zaten gpt mevcut olmalıdır. Donanımınız eski bios kullanıyorsa uefi üzerinde gpt / mbr oluşturabilirsiniz.


Lütfen yazıyı daha dikkatli okuyun.
John Dibling
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.