Vai al contenuto

Grub cheatsheet

Pubblicato:

Di recente ho avuto la sfortuna di eseguire lo script python seguente:

python -c 'import shutil; [shutil.rmtree(p, True) for p in ("build", "dist", "docs/_build")]'

che, espanso, è equivalente a:

import shutil
shutil.rmtree(p, True) for p in ("build", "dist", "docs/_build")

Il problema è che, con la fretta di riutilizzare lo script, ho fatto il terribile errore di non aggiungere una virgola dopo una tupla con un solo elemento.

import shutil
shutil.rmtree(p, True) for p in ("docs/_build")

il che significa che lo script cercherà di eliminare i file d, o, c, s, /, _, B, u, i, l, d. Ma, come i più attenti avranno notato, il quinto “file”, /, è in realtà la directory root. Tutti i file non protetti da permessi elevati sarebbero stati eliminati. La mia reazione è stata troppo lenta, e mi sono ritrovato con più buchi nel sistema di un formaggio svizzero, e con la necessità di un reinstallazione completa. Per lo meno la maggior parte del mio lavoro era salvato su Github, GitLab o Google Drive.

Accesso al menu Grub

Su alcuni sistemi, il menu Grub è la prima cosa che si vede all’avvio del computer. Ma su altri, bisogna utilizzare una combinazione di tasti all’avvio. Il metodo che ho trovato funzionare nel mio caso è stato premere Esc più volte durante il processo di avvio. Ho anche letto che premere Del o F2 potrebbe funzionare.

Grub protetto da password

Raggiunto il menu Grub, mi è stata richiesta una password. Provando le credenziali del mio utente non ho ottenuto risultati. Dopo un po’ di indagini, ho scoperto che la password era impostata nel file /etc/grub.d/10_linux.

set superusers="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF

Non avendo voglia di recuperare la password, ho deciso di cambiarla in qualcosa di più semplice (e molto meno sicuro)

set superusers="root"
password root root

Dopo aver salvato il file, ho eseguito sudo update-grub e riavviato il sistema.

Reinstallazione di Ubuntu

Dopo aver riavviato il sistema, mi è stato presentato il menu Grub. Il mio obiettivo era utilizzare la chiavetta USB con l’iso di Ubuntu 24.04 per reinstallare il sistema. Utilizzando il tasto c, ho accesso alla linea di comando di Grub e ho eseguito i seguenti comandi:

ls # Per elencare i drive disponibili
set root=(hd0) # Per impostare il drive root alla chiavetta USB
find / # Per assicurarmi di aver selezionato il drive giusto
chainloader /EFI/boot/bootx64.efi # Per avviare il sistema dalla chiavetta USB
boot # Per effettuare il boot

Da lì, sono stato in grado di seguire il processo di installazione di Ubuntu e recuperare il mio sistema.