“ ระบบนี้ไม่รองรับตัวแปร EFI”


19

ฉันกำลังพยายามติดตั้ง Arch linux ไปยังโน้ตบุ๊ค HP Pavillion 15 ใหม่ (และเส็งเคร็งมาก)

นี่คือเครื่องที่ใช้ UEFI หลังจากแกว่งไปมาหลายครั้งฉันก็สามารถไปได้ไกล โหมดเก่าถูกปิดใช้งานในการตั้งค่าระบบและฉันได้บูต EFI ไปยัง Arch DVD ที่ฉันเผาแล้วและผ่านขั้นตอนทั้งในคู่มือผู้เริ่มใช้งาน Arch และคู่มือการติดตั้งขั้นสูงไปจนถึงจุดที่ฉันติดตั้งด้วง

ในขณะที่chrooted ฉันรัน:

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

ซึ่งปล่อยเอาต์พุตจำนวนหนึ่งซึ่งรวมถึง:

ระบบนี้ไม่รองรับตัวแปร EFI

ครั้งแรกที่ฉันมาถึงจุดนี้ฉันดำเนินการติดตั้งต่อโดยไม่รู้ว่าเป็นปัญหาจริงหรือไม่ กลับกลายเป็นว่าเมื่อฉันรีบูทเครื่องไม่พบสื่อที่สามารถบู๊ตได้และเครื่องปฏิเสธที่จะบูท ฉันสามารถไปที่เมนูตั้งค่า UEFI และเลือกไฟล์ EFI เพื่อบู๊ตได้และ Arch Linux จะบู๊ต

แต่ตอนนี้ฉันจะกลับไปและติดตั้งใหม่อีกครั้งพยายามแก้ไขปัญหาข้างต้น

ฉันจะรับ GRUB เพื่อติดตั้งอย่างถูกต้องได้อย่างไร?

คำตอบ:


20

ปัญหาก็คือว่าefivarsโมดูลเคอร์เนลไม่ได้โหลด

สิ่งนี้สามารถยืนยันได้โดย:

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

หากคุณกำลังchrootเข้าสู่การติดตั้งใหม่exitออกและเปิดใช้งานefivars:

exit
modprobe efivars

... และจากนั้นchrootกลับมาในกรณีของฉันหมายความว่า:

chroot /mnt

แต่คุณควรchrootทำแบบเดียวกับที่คุณเคยทำมาก่อน

เมื่อกลับมาทดสอบอีกครั้ง:

efivar-tester

นี่จะไม่รายงานข้อผิดพลาดอีกต่อไปและคุณสามารถติดตั้งด้วงแบบเดียวกับที่คุณเคยทำมาก่อน

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

ดูเพิ่มเติมที่rodsbooks.com/efi-bootloaders/principles.html
Michael Shigorin

5
แต่สิ่งที่เกี่ยวกับระบบที่ไม่รองรับ UEFI ฉันจะติดตั้ง GRUB ที่ใช้ UEFI บน USB ได้อย่างไรเพื่อติดตั้ง Arch บนคอมพิวเตอร์ UEFI เครื่องใหม่หากคอมพิวเตอร์ทำงานของฉันไม่รองรับ UEFI มีวิธีที่จะทำมัน!
trusktr

6
โมดูล efivars ถูกแทนที่ด้วย "efivarfs" ตอนนี้ ( wiki.debian.org/UEFI#efibootmgr_and_efivar )
pedroapero

1
ในขณะที่modprobe efivarfsทำงานปัญหาที่อธิบายโดย OP ยังคงมีอยู่ อาจคำตอบนี้ต้องการการปรับปรุง? ฉันหมดความคิดโดยสิ้นเชิง
Afr

3
น่าเศร้าที่modprobe efivarsให้modprobe: FATAL: Module efivars not found in directory /lib/modules/4.16.3-301.fc28.x86_64(ติดตั้งสดๆ USB มีชีวิตอยู่)
jozxyqk

5

คุณจะได้รับข้อผิดพลาดนี้หากคุณบูตโดยใช้ระบบเดิมและไม่ใช่วิธี UEFI คุณต้องแน่ใจว่าได้เลือกรายการบูต UEFI ในเมนู BIOS หรือเลือก UEFI เป็นวิธีการเริ่มต้น


4

ฉันรู้ว่าเป็นหัวข้อเก่ามาก แต่อาจจะช่วยให้ใครบางคน คำแนะนำส่วนใหญ่แนะนำวิธีแก้ไขปัญหาเดียวกันเพื่อเมานต์ระบบไฟล์เสมือนก่อน chroot:

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

แต่ตอนนี้ (อาจเกี่ยวข้องกับการเปลี่ยนแปลง efivars / efivarfs) การวนซ้ำนี้ข้ามจุดเมานต์ย่อยพิเศษหนึ่งจุด - /sys/firmware/efi/efivarsและ efibootmgr / grub ล้มเหลว

ดังนั้นใช้บรรทัดนี้แทน:

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

เรื่องราวความสำเร็จที่แท้จริง: Debian พร้อม 4.9.0-5 (efivars) บันทึกโดย Arch Linux live cd (เลือกเพียงเพราะสามารถบูต uefi ออกจากกล่องได้) ด้วย 4.14.9-1-ARCH (efivarfs) เพียงแค่ผูกติดตั้ง / sys / เฟิร์มแว / EFI / efivars


0

เล่น Fedora 27 efivarfsฉันต้องการที่จะติด ฉันทำสิ่งนี้ภายใน chrootfs อย่างไรก็ตามสิ่งนี้ยังไม่ทำงานเนื่องจากรายการบูตถูกแสดงด้วยefibootmgr- แต่หลังจากรีบูตมันก็ไม่ได้ถูกบูตและไม่ได้แสดงอีกครั้งในระบบปฏิบัติการสด

สิ่งที่ใช้งานได้ในที่สุดคือการใช้ด้วงจากสื่อสดเลื่อนไปที่เชลล์แล้วเข้าสู่ linuxefi /vmlinuz-<version> root=/dev/mapper/luks-<uuid> ro initrdefi /initramfs-<version>.img boot ระบบปฏิบัติการปกติที่บู๊ตแล้วฉันสามารถทำงานได้grub2-installโดยไม่ต้องchrootทำงาน

ฉันไม่แน่ใจว่านี่เป็นเพียงปัญหาของ BIOS ของฉันหรือยังมีบางอย่างผิดปกติมากกว่านี้ แต่นี่คือสิ่งที่grub2-installทำงานโดยไม่รายงานข้อผิดพลาดใด ๆ

# 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

คุณทำไม่ได้! การสร้างและติดตั้งเป็นสองสิ่งที่แตกต่างกันเครื่องที่คุณสร้างขึ้นต้องมีความสามารถใน uefi หากคุณต้องการใช้ / ติดตั้ง linux บน gpt ของฮาร์ดแวร์ที่มีคุณสมบัติ uefi ต้องมีอยู่แล้ว คุณสามารถสร้าง gpt / mbr บน uefi แต่ไม่ใช่ทั้งสองอย่างหากฮาร์ดแวร์ของคุณใช้ไบออสเก่า


โปรดอ่านโพสต์อย่างระมัดระวัง
John Dibling
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.