Risoluzione del GRUB Rescue Mode su sistemi UEFI
Introduzione
Il bootloader GRUB (Grand Unified Bootloader) è un componente fondamentale nei sistemi Linux, responsabile del caricamento del kernel e della gestione del menu di avvio. Tuttavia, non è raro imbattersi nell'errore unknown filesystem
seguito dall'ingresso in modalità rescue, specialmente dopo aggiornamenti di sistema, modifiche alle partizioni o problemi di configurazione.
Analisi del Problema
Sintomi Comuni
Il problema si manifesta tipicamente con il messaggio:
error: unknown filesystem
Entering rescue mode...
grub rescue>
Questo errore indica che GRUB non riesce a localizzare o riconoscere il filesystem contenente i suoi file di configurazione, rendendo impossibile l'avvio normale del sistema.
Cause Principali
- Discrepanza tra configurazione e realtà del sistema: Il caso più comune è quando il file
/etc/fstab
o la configurazione di GRUB punta a una partizione diversa da quella effettivamente utilizzata
- Moduli filesystem non caricati: GRUB potrebbe non aver caricato i moduli necessari per riconoscere specifici filesystem
- Corruzione della configurazione: File di configurazione danneggiati o inconsistenti
- Cambio dell'ordine delle partizioni: Modifiche hardware o del firmware che alterano l'enumerazione dei dischi
Metodologia di Risoluzione
Fase 1: Diagnosi e Identificazione
Il primo passo consiste nell'identificare le partizioni disponibili e i loro filesystem. Questo comando rivela la struttura delle partizioni disponibili.
# Dal prompt grub rescue>
ls
(hd0) (hd0,gpt6) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
La presenza di
gpt
indica l'utilizzo di una tabella di partizione GPT, comune nei sistemi UEFI moderni.
Fase 2: Caricamento dei Moduli Filesystem
GRUB in modalità rescue ha un set limitato di moduli caricati. È necessario caricare manualmente i moduli per i filesystem più comuni:
insmod part_gpt
insmod ext2
insmod ext4
insmod fat
insmod ntfs
insmod reiserfs
Il comando
insmod part_gpt
è particolarmente importante per sistemi con tabelle di partizione GPT.
Fase 3: Identificazione della Partizione Root
Una volta caricati i moduli appropriati, è possibile esplorare le partizioni:
ls (hd0,gpt1)/
ls (hd0,gpt2)/
# ... continuare per tutte le partizioni
Nel caso in esame, prima che
GRUB si compromettesse, la partizione linux era installata sul disco nella partizione numero 6. A seguito di una serie di aggiornamenti sia del
BIOS che del sistema operativo
Microsoft Windows 11 (anche lui installato su una partizione dedicata), qualcosa ha corrotto la configurazione di GRUB, ma anche la numerazione delle partizione sul disco. Adesso la partizione che contiene il sistema operativo Linux è la numero 5, come si vedrà più avanti.
La partizione contenente la directory root del sistema Linux mostrerà strutture familiari come
/bin
,
/boot
,
/etc
,
/home
,
/usr
,
/var
.
L'informazione fondamentale che ci metterà sulla soluzione del problema, è il rilevamento nella directory
/boot/
della sottodirectory
/boot/grub
ed in particolare del file
grub.cfg
Fase 4: Configurazione Temporanea di GRUB
Identificata la partizione corretta, configuriamo GRUB temporaneamente:
set root=(hd0,gpt5)
set prefix=(hd0,gpt5)/boot/grub
insmod normal
normal
Questo ripristina temporaneamente l'accesso al menu di GRUB.
Risoluzione Definitiva
Correzione della Configurazione fstab
Il problema più comune è una discrepanza tra la configurazione in
/etc/fstab
e la realtà del sistema. Infatti, una volta ripristinato l'accesso al menù di GRUB, si può verificare un problema all'avvio della distribuzione linux, causato da un errore di
Kernel Panic in quanto la partizione di inizializzazione è errata. Nel nostro caso:
# Configurazione errata
/dev/nvme0n1p6 / reiserfs defaults 1 1
# Configurazione corretta
/dev/nvme0n1p5 / reiserfs defaults 1 1
La correzione richiede:
- Montaggio del filesystem in modalità lettura-scrittura:
mount -o remount,rw /
- Modifica del file fstab editando modificando la partizione di root da
nvme0n1p6
a nvme0n1p5
: vim /etc/fstab
Reinstallazione di GRUB per Sistemi UEFI
Per sistemi UEFI, è fondamentale reinstallare GRUB correttamente:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
Questo comando:
- Specifica il target per architettura x86_64 in modalità EFI
- Indica la directory della partizione EFI
- Imposta l'identificatore del bootloader
Rigenerazione della Configurazione
Dopo le modifiche, è essenziale rigenerare la configurazione:
grub-mkconfig -o /boot/grub/grub.cfg
Gestione delle Problematiche di Visualizzazione
Configurazione della Risoluzione Grafica
Un problema comune nei sistemi UEFI moderni è l'alta risoluzione del menu GRUB, che può renderlo illeggibile. La configurazione si effettua tramite
/etc/default/grub
:
GRUB_GFXMODE=1024x768
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_TERMINAL=gfxterm
Limitazioni Hardware
Tuttavia, alcuni sistemi UEFI non supportano la modifica della risoluzione grafica. In questi casi, è possibile forzare la modalità testuale:
GRUB_TERMINAL_INPUT=console
GRUB_TERMINAL_OUTPUT=console
GRUB_GFXMODE=text
Gestione delle Voci di Menu Duplicate
Problema delle Voci Multiple
La presenza di voci duplicate nel menu GRUB è spesso causata da:
- Link simbolici ai kernel (es.
vmlinuz -> vmlinuz-huge-6.1.33
)
- Configurazioni di strumenti come
grub-customizer
- Accumulo di versioni di kernel obsolete
Configurazione Ottimale
Per ridurre le voci duplicate:
GRUB_DISABLE_SUBMENU=true
GRUB_DISABLE_RECOVERY=true
GRUB_DEFAULT=0
Considerazioni per l'Amministrazione di Sistema
Backup e Prevenzione
Prima di modificare configurazioni critiche come GRUB:
- Creare backup dei file di configurazione
- Documentare le modifiche effettuate
- Testare le configurazioni in ambiente controllato
Monitoraggio Post-Modifica
Dopo la risoluzione:
- Verificare che tutti i kernel installati siano avviabili
- Testare il dual-boot se presente
- Monitorare eventuali errori nei log di sistema
Strumenti Diagnostici Avanzati
Utilizzo della Command Line di GRUB
La command line di GRUB offre strumenti diagnostici utili:
# Informazioni sui dispositivi video
videoinfo
# Test delle modalità video
videotest
# Visualizzazione variabili
set
Analisi della Configurazione
Per sistemi complessi, l'analisi della struttura degli script in /etc/grub.d/
può rivelare configurazioni non standard o conflitti.
Conclusioni
La risoluzione del GRUB rescue mode richiede un approccio metodico che comprende diagnosi, identificazione del problema root, correzione della configurazione e verifica della soluzione. La comprensione delle differenze tra sistemi BIOS legacy e UEFI è cruciale per un intervento efficace.
La prevenzione attraverso backup regolari e la documentazione delle modifiche al sistema rimane la migliore strategia per evitare questi problemi. Quando si verificano, tuttavia, un approccio sistematico può ripristinare rapidamente la funzionalità del sistema senza perdita di dati.
Per amministratori di sistema e tecnici IT, la padronanza di questi concetti è essenziale per la gestione efficace di infrastrutture Linux moderne, specialmente in ambienti dove la continuità operativa è critica.