Installazione di Grub non riuscita


13

Ho avuto una buona installazione di Debian Jessie, ma poi ho corso apt-get update && apt-get upgrade && apt-get dist-upgrade.

E poi dopo il riavvio, è arrivato direttamente al BIOS. Mi sono reso conto che mancava Grub, quindi ho eseguito un cd live e ho inserito Rescue mode, montato la mia partizione di root, + la partizione di avvio ed eseguito questi comandi:

Grub trova l'immagine di 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

E poi 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

Ho fatto qualcosa di male? C'è troppo poco spazio sulla mia /boot/efipartizione?

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

efibootmgr non mostra un'installazione Debian:

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

Modificare :

Continuo a ricevere questo errore ogni volta che provo a creare un boot loader usando 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.

Esattamente lo stesso problema qui con il laptop ASUS.
Aubin,

Risposte:


33

Risolti gli errori efibootmgr montando le variabili di avvio per efibootmgr:

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

E poi efibootmgrmi ha dato errori sullo spazio:

Could not prepare Boot variable: No space left on device

Risolto il problema eliminando i file di dump:

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

E poi ha funzionato il solito

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

e ha funzionato con successo!


1
Questo ha funzionato per me, tranne per il fatto che dovevo anche riavviare tra il passaggio rm /sys/firmware/efi/efivars/dump-*e la corsa grub-install.
Nick ODell,

1

Prova a specificare il disco contenente il caricatore se il tuo disco non è / dev / sda:

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

questa opzione ha funzionato per il mio, excute prima sudo apt install efibootmgr, e creare per terminare l'opzione di avvio, ho dovuto eliminare altre opzioni di avvio.
Diego Mesa,

0

Ho avuto lo stesso problema su Ubuntu con la mia scheda madre Asus. Non ho trovato alcun file di dump da eliminare. O qualcosa di grosso che si sentiva sicuro da eliminare.

Sono stato in grado di risolvere il problema riavviando il sistema con l' efi_no_storage_paranoiaopzione della riga di comando del kernel. Avevo già perso la voce di avvio Ubuntu UEFI. Fortunatamente potrei ancora avviare la mia partizione Ubuntu andando a selezionare la selezione nelle impostazioni del BIOS. Dopo di che ho usato il tasto "e" nel menu di grub per aggiungere quell'opzione alla riga di comando del kernel. Quindi sono stato in grado di completare il mio aggiornamento del sistema precedentemente fallito eseguendo apt -f install.

Se il sistema si trova in uno stato non avviabile, un'opzione è l'avvio dalla chiavetta USB Ubuntu e risolvere il problema da lì.

Se il problema si ripresenta più tardi, prenderò in considerazione l'aggiunta permanente dell'opzione del kernel in /etc/default/grub.

Il kernel è molto paranoico nel riempire lo spazio variabile UEFI. Segnala che è pieno anche se rimane spazio. Questo è intenzionale per evitare di riempire permanentemente lo spazio su alcune schede madri. Sospetto che con la mia scheda madre questo potrebbe essere troppo paranoico. Forse il BIOS non avvia la garbage collection a meno che lo spazio non sia più pieno.

In precedenza sono stato in grado di recuperare dalla stessa situazione utilizzando l'intestazione "Clear CMOS" sulla mia scheda madre. Buono a trovare una soluzione software.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.