Saya memiliki instalasi Debian Jessie yang berjalan dengan baik, tetapi kemudian saya berlari apt-get update && apt-get upgrade && apt-get dist-upgrade
.
Dan kemudian setelah reboot, langsung ke BIOS. Saya menyadari bahwa Grub tidak ada, jadi saya menjalankan live cd dan masuk Rescue mode
, me-mount partisi root saya, + partisi boot dan menjalankan perintah-perintah ini:
Grub menemukan gambar 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
Dan kemudian 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
Apakah saya melakukan sesuatu yang salah? Apakah ada terlalu sedikit ruang pada /boot/efi
partisi saya ?
root@debian:~# ls -l /boot/efi/EFI/debian/
total 120
-rwx------ 1 root root 121856 Jul 20 20:29 grubx64.efi
efibootmgr
tidak menampilkan instalasi Debian:
root@debian:~# efibootmgr --verbose | grep debian
Edit:
Saya terus mendapatkan kesalahan ini setiap kali saya mencoba dan membuat boot loader menggunakan 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.
Jawaban:
Memperbaiki kesalahan efibootmgr dengan memasang variabel Boot untuk
efibootmgr
:Dan kemudian
efibootmgr
memberi saya kesalahan tentang ruang:Memperbaiki itu dengan menghapus file dump:
Dan kemudian berlari seperti biasa
dan itu berhasil!
sumber
rm /sys/firmware/efi/efivars/dump-*
dan menjalankangrub-install
.Coba tentukan disk yang berisi loader jika disk Anda bukan / dev / sda:
sumber
sudo apt install efibootmgr
, dan buat untuk mengakhiri opsi boot, saya harus menghapus opsi boot lainnya.Saya memiliki masalah yang sama di Ubuntu dengan motherboard Asus saya. Saya tidak menemukan file dump untuk dihapus. Atau sesuatu yang besar yang terasa aman untuk dihapus.
Saya dapat memperbaiki masalah dengan me-reboot sistem dengan
efi_no_storage_paranoia
opsi baris perintah kernel. Saya sudah kehilangan entri booting UEFI Ubuntu. Untungnya saya masih bisa boot ke partisi Ubuntu saya dengan masuk ke pilihan boot dalam pengaturan BIOS. Setelah itu saya menggunakan kunci "e" di menu grub untuk menambahkan opsi itu ke baris perintah kernel. Kemudian saya bisa menyelesaikan upgrade sistem saya yang sebelumnya gagal dengan menjalankanapt -f install
.Jika sistem dalam kondisi tidak dapat di-boot, satu opsi adalah mem-boot dari Ubuntu USB stick dan memperbaiki masalah dari sana.
Jika masalah muncul kembali nanti saya akan mempertimbangkan untuk menambahkan opsi kernel secara permanen di
/etc/default/grub
.Kernel sangat paranoid tentang mengisi ruang variabel UEFI. Ini melaporkan bahwa itu penuh bahkan jika ada ruang yang tersisa. Ini disengaja untuk mencegah secara permanen mengisi ruang pada beberapa motherboard. Saya menduga bahwa dengan motherboard saya ini mungkin terlalu paranoid. Mungkin BIOS tidak memulai pengumpulan sampah kecuali ruang menjadi lebih penuh.
Sebelumnya saya bisa pulih dari situasi yang sama dengan menggunakan header "Clear CMOS" pada motherboard saya. Bagus untuk menemukan solusi perangkat lunak.
sumber