Mi è capitato di trovarmi nella condizione di dover reinstallare GRUB su partizione Efi, in quanto di fatto il sistema non era più in grado di avviarsi.
Ho dovuto faticare più del previsto, in quanto di fatto l'uso di Efi rende leggermente diverse le consuete operazioni di ripristino, ma alla fine sono riuscito a reinstallare Grub su partizione Efi. Esistono dei tool che promettono di riparare in maniera quasi del tutto automatica queste situazioni, ma ho preferito procedere via codice.
Premetto che io uso LMDE 4 (Linux Mint Debian Edition), ma i passi fondamentalmente sono gli stessi per qualsiasi distribuzione.
Per prima cosa, procuriamoci una live di LMDE e la portiamo su USB (ad esempio) con un software tipo Balena Etcher. Una volta avviato il sistema in versione live, apriamo un terminale e digitiamo:
sudo mount /dev/sda2 /mnt sudo mount /dev/sda1 /mnt/boot/efi for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done sudo chroot /mnt grub-install /dev/sda update-grub
In questo esempio sda è il disco sul quale va reinstallato il GRUB, che nel mio caso contiene varie partizioni, compresa una dedicata per il boot, sda2 è la partizione dov'è installato LMDE (in generale il sistema operativo da avviare), e sda1 è la partizione di boot Efi.
A questo punto, dovremmo aver già terminato (al termine dovremmo vedere la lista delle immagini di avvio rilevate), ma in realtà al sottoscritto si è presentato questo ulteriore errore:
/usr/sbin/grub-probe: error: failed to get canonical path of `/boot/grub/fonts/UbuntuMono16.pf2'.
Dopo un'ulteriore ricerca in rete, mi sono reso conto che la soluzione è più semplice di quanto possa sembrare. Si tratta semplicemente di editare il file /etc/default/grub.d/60_mint-theme.cfg, andando a sostituire il carattere indicato nell'errore (UbuntuMono16.pf2), con un semplicissimo unicode.pf2.
Rilanciato grub-update, tutto va a buon fine e riesce a reinstallare GRUB su partizione Efi.
Riavviare il PC e il boot dovrebbe adesso riuscire.
Alla prossima..