การติดตั้งด้วงล้มเหลว


13

ฉันมีดีทำงานติดตั้ง Debian เจสซี apt-get update && apt-get upgrade && apt-get dist-upgradeแต่แล้วฉันวิ่ง

และหลังจากรีบูตเครื่องก็มาที่ BIOS โดยตรง ฉันรู้ว่า Grub หายไปดังนั้นฉันจึงเรียกใช้ cd สดและเข้าใช้Rescue modeเมาท์พาร์ติชันรูทของฉัน + พาร์ติชันสำหรับบูตและเรียกใช้คำสั่งเหล่านี้:

Grub ค้นหาภาพ linux:

root@debian:~# update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-4.9.0-3-amd64
Found initrd image: /boot/initrd.img-4.9.0-3-amd64
Found linux image: /boot/vmlinuz-4.9.0-0.bpo.3-amd64
Found initrd image: /boot/initrd.img-4.9.0-0.bpo.3-amd64
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
Found Ubuntu 16.10 (16.10) on /dev/sdb2
Adding boot menu entry for EFI firmware configuration
done

แล้วgrub-install:

root@debian:~# grub-install /dev/sda
Installing for x86_64-efi platform.
Could not prepare Boot variable: No such file or directory
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.

lsblk :

root@debian:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 223.6G  0 disk 
├─sda1   8:1    0  92.6G  0 part /
├─sda2   8:2    0 130.4G  0 part 
└─sda3   8:3    0   573M  0 part /boot/efi

ฉันทำอะไรผิดหรือเปล่า? /boot/efiพาร์ทิชันของฉันมีพื้นที่ว่างน้อยเกินไป?

root@debian:~# ls -l /boot/efi/EFI/debian/
total 120
-rwx------ 1 root root 121856 Jul 20 20:29 grubx64.efi

efibootmgr ไม่แสดงการติดตั้ง Debian:

root@debian:~# efibootmgr --verbose | grep debian

แก้ไข:

ฉันได้รับข้อผิดพลาดนี้ทุกครั้งที่ฉันลองและสร้างบูตโหลดเดอร์โดยใช้efibootmgr:

grub-install: info: executing efibootmgr -c -d /dev/sda -p 3 -w -L grub -l \EFI\grub\grubx64.efi.
Could not prepare Boot variable: No such file or directory
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.

ปัญหาเดียวกันนี้กับแล็ปท็อป ASUS
Aubin

คำตอบ:


33

แก้ไขข้อผิดพลาด efibootmgr โดยการติดตั้งตัวแปร Boot สำหรับefibootmgr:

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars

แล้วefibootmgrทำให้ฉันมีข้อผิดพลาดเกี่ยวกับพื้นที่:

Could not prepare Boot variable: No space left on device

แก้ไขว่าโดยการลบไฟล์ดัมพ์:

# rm /sys/firmware/efi/efivars/dump-*

แล้ววิ่งตามปกติ

update-grub 
grub-install -v --target=x86_64-efi --recheck /dev/sda

และมันก็วิ่งได้สำเร็จ!


1
นี้ทำงานให้ฉันยกเว้นว่าฉันยังมีการรีบูตระหว่างขั้นตอนการทำงานrm /sys/firmware/efi/efivars/dump-* grub-install
Nick ODell

1

ลองระบุดิสก์ที่มีตัวโหลดหากดิสก์ของคุณไม่ใช่ / dev / sda:

efibootmgr --create --disk /dev/nvme0n1 --part 1 --label Ubuntu

ตัวเลือกนี้ทำงานสำหรับฉัน, excute ก่อนsudo apt install efibootmgr, และสร้างเพื่อสิ้นสุดตัวเลือกการบูต, ฉันต้องลบตัวเลือกการบูตอื่น ๆ
Diego Mesa

0

ฉันมีปัญหาเดียวกันบน Ubuntu กับเมนบอร์ด Asus ของฉัน ฉันไม่พบไฟล์ดัมพ์ใด ๆ ที่จะลบ หรือสิ่งที่ยิ่งใหญ่ที่รู้สึกปลอดภัยที่จะลบ

ฉันสามารถแก้ไขปัญหาด้วยการรีบูตระบบด้วยefi_no_storage_paranoiaตัวเลือกเคอร์เนลบรรทัดคำสั่ง ฉันทำรายการบูท Ubuntu UEFI หายไปแล้ว โชคดีที่ฉันยังคงสามารถบูตไปที่พาร์ติชัน Ubuntu ของฉันได้โดยไปที่ตัวเลือกการบูตในการตั้งค่า BIOS หลังจากนั้นฉันใช้ปุ่ม "e" ในเมนูด้วงเพื่อเพิ่มตัวเลือกนั้นในบรรทัดคำสั่งเคอร์เนล apt -f installจากนั้นผมก็สามารถที่จะเสร็จสิ้นการอัพเกรดระบบของฉันล้มเหลวก่อนหน้านี้โดยการเรียกใช้

หากระบบอยู่ในสถานะที่ไม่สามารถบู๊ตได้ตัวเลือกหนึ่งคือการบูตจาก Ubuntu USB stick และแก้ไขปัญหาจากตรงนั้น

/etc/default/grubถ้าปรากฏขึ้นอีกครั้งในภายหลังปัญหาผมจะพิจารณาการเพิ่มตัวเลือกเคอร์เนลที่ถาวรใน

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

ก่อนหน้านี้ฉันสามารถกู้คืนจากสถานการณ์เดียวกันโดยใช้ส่วนหัว "Clear CMOS" บนเมนบอร์ดของฉัน เหมาะที่จะหาโซลูชันซอฟต์แวร์

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