Installare manualmente GRUB EFI – Reinstallare GRUBEFI – Debian Ubuntu Linux

Per installare manualmente GRUB in modalità UEFI è necessario disporre di un disco partizionato in modalità GPT con presente una partizione di boot per EFI. La partizione di boot per EFI e di tipo EF02 è formattata FAT32 ed è tipicamente di 500MB. Se la EFI boot partition manca bisogna crearla. La posizione non è  rilevante.

gdisk è un comodo applicativo che consente di   convertire un disco da MBR a GPT in Linux  senza perdita di dati. gdisk   consente anche la creazione e la gestione delle partizioni. Si installa da terminale al solito con

apt install gdisk

si avvia con gdisk < disco >

# su 
# gdisk  /dev/sda
...
Found valid GPT with protective MBR; using GPT.

gdisk ci informa che il disco ha una partition table in formato GPT

Command (? for help): p
...
   1         4194304        48744447   21.2 GiB    8300  Linux filesystem
   2        48744448       156442623   51.4 GiB    8300  Linux filesystem
   3       156444672       234569727   37.3 GiB    8300  Linux filesystem
   4            2048         1026047   500.0 MiB   EF02  
   5       234571776       445695999   100.7 GiB   8300  Linux filesystem
   6       466065408       488396799   10.6 GiB    8200  Linux swap

la partizione EFI è presente e si trova in 4 posizione.

Se la partizione non esiste va creata con gdisk  bastano 500MB di tipo gdisk  EF02. EF02 e dovrà essere formattata FAT32.
Esempio di comandi in gdisk per creare una nuova partiizone EFI Boot .

 
#
#

Per poter installare manualmente o reinstallare GRUB EFI è necessario che il sistema operativo in cui ci troviamo sia in EFI boot Mode diversamente è necessario avviare in modalità UEFI.  Per verificare  che sia attiva la modalità EFI si può da terminale scrivere

[ -d /sys/firmware/efi ] && echo "EFI boot on HDD" || echo "Legacy boot on HDD"

se la modalità EFI è attiva avremo

# [ -d /sys/firmware/efi ] && echo "EFI boot on HDD" || echo "Legacy boot on HDD"
EFI boot on HDD

Quindi possiamo procedere e Montare la partizione EFI boot (nel esempio la  4 sda)   in  /boot/efi.

Se la directory /boot/efi non esiste va creata


# mount /dev/sda4 /boot/efi

Reinstall grub In debian

Installazione dei pacchetti grub-efi in debian

Se manca il pacchetto grub-efi-amd64 si otterrà

# apt install --reinstall grub-efi 
...
...
The following packages have unmet dependencies:
grub-efi : Depends: grub-efi-amd64 (= 2.02~beta3-5+deb9u1)

Installare il pacchetto in questione

Ricapitolando:

  • il sistema è in uEFI boot Mode
  • è stata accertata/creata la partizione  EFI boot partition ed è stata montata in /boot/efi
  • i pacchetti di grub-efi sono presenti.

A questo punto è possibile installare GRUB in /dev/sda

grub-install /dev/sda
# grub-install /dev/sda
Installing for x86_64-efi platform.
Installation finished. No error reported.

Controllo/creazione menu entry EFI

Verificare che il bootloader EFI   grubx64.efi   sia stato creato nella EFI boot partition montata in /boot/efi .

# file /boot/efi/EFI/debian/grubx64.efi

/boot/efi/EFI/debian/grubx64.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows

Il percorso completo sarà del tipo /EFI/nome-variabile-efi/grubx64.efi.

In assenza di una variabile di boot EFI utilizza il percorso previsto per i dispositivi rimovibili  ->   EFI/boot/bootx64.efi

Basta osservare la directory /boot/efi/EFI per controllare la variabile menu entry EFI.

Il bootmanager EFI del sistema dovrà anche visualizzare l’opzione per l’avvio del SO debian.
Il bootmanager EFI può essere interrogato e modificato con  l’applicativo da terminale efibootmanager: efibootmgr – l’applicazione per interagire e modificare l’ EFI Boot Manager – Linux.
Per controllare che l’nvram entry per il boot EFI sia stato correttamente creato  ( i menu del bootmanager EFI sono conservati n nvram ) possiamo digitare. .

# efibootmgr --verbose | grep debian

Boot0000* debian HD(4,GPT,d334c9a4-5ca3-46b5-a9eb-16d7ff06dbd6,0x991b800,0xfa000)/File(\EFI\debian\grubx64.efi)

Se manca può essere creato con:

efibootmgr -c -d /dev/sda -p 1 -L "debian" -l "\EFI\grub\grubx64.efi"
Failsafe efi boot

efibootmgr -c -d /dev/sda -p 1 -L "UEFI man-sda1" -l "\EFI\BOOT\bootx64.efi"

Ovviamente  se siamo in una distribuzione diversa.(  ubuntu)   il menu entry EFi sarà ubuntu e non debian e la posizone

grub-install con tutti i parametri 

E’ possibile anche installare grub con un solo comando. Purtroppo con i molti  parametri è facile compiere errori e l’installazione potrebbe non portare i risultati attesi.

grub-install --boot-directory=/media/sda3/boot --bootloader-id=debian --target=x86_64-efi /
--efi-directory=/media/pEFI --recheck /dev/sda

Installing for x86_64-efi platform.
Installation finished. No error reported.


Failsafe efi boot

efibootmgr -c -d /dev/sda -p 1 -L "UEFI man-sda1" -l "\EFI\BOOT\bootx64.efi"

Risorse:

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...