Introduzione
GRUB (Grand Unified Bootloader) è uno strumento per l'avvio e il caricamento dei kernel del sistema operativo e il bootloader predefinito per i sistemi basati sul kernel Linux. Sebbene venga eseguito per primo all'accensione di una macchina, gli utenti normali raramente vedono GRUB in azione. Funziona automaticamente e non richiede alcun input da parte dell'utente.
Tuttavia, quando si tenta di avviare un altro sistema operativo insieme a Linux sulla stessa macchina, il bootloader dell'altro sistema potrebbe sovrascrivere GRUB, causando l'impossibilità di avviare il sistema Linux.
Questo articolo ti mostrerà come correggere l'errore di avvio di Linux utilizzando i comandi di GRUB Rescue e lo strumento Boot Repair.
Prerequisiti
- Un account con privilegi sudo.
- Accesso alla riga di comando.
Problemi di avvio di GRUB
Il motivo più comune per cui GRUB non si avvia nel sistema operativo è il bootloader di un altro sistema operativo che sovrascrive la configurazione di avvio di GRUB. Il problema si verifica durante un tentativo di dual boot con un'installazione Linux esistente. Un altro motivo è la rimozione accidentale dei file di configurazione di GRUB.
Quando GRUB non è in grado di avviare il sistema, viene visualizzato il prompt di GRUB Rescue.
L'esempio sopra mostra GRUB che mostra l'errore "no such partition" prima di visualizzare il grub rescue
richiesta. Un altro errore comune di GRUB è "filesystem sconosciuto", seguito dallo stesso prompt.
A volte, lo schermo può mostrare il grub
solo richiesta.
Comandi di soccorso GRUB
Di seguito è riportato l'elenco dei comandi GRUB Rescue comunemente usati. Utilizzare i comandi nei prompt menzionati nella sezione precedente.
Comando | Descrizione | Esempio |
---|---|---|
boot | Inizia l'avvio (scorciatoie:F10 , CTRL + x ). | Il comando viene emesso senza argomenti. |
cat | Scrivere il contenuto di un file nell'output standard. | cat (hd0,1)/boot/grub/grub.cfg |
configfile | Carica un file di configurazione. | configfile (hd0,1)/boot/grub/grub.cfg |
initrd | Carica il file initrd.img. | initrd (hd0,1)/initrd.img |
insmod | Carica un modulo. | insmod (hd0,1)/boot/grub/normal.mod |
loopback | Monta un file immagine come dispositivo. | loopback loop0 (hd0,1)/iso/image.iso |
ls | Visualizza il contenuto di una directory o partizione. | ls (hd0,1) |
lsmod | Visualizza un elenco di moduli caricati. | Il comando viene emesso senza argomenti. |
normal | Attiva il modulo normale. | Il comando viene emesso senza argomenti. |
search | Cerca dispositivi. Opzione --file cerca i file, --label cerca le etichette, --fs-uuid cerca l'UUID del filesystem. | search -file [filename] |
set | Imposta una variabile di ambiente. Se emesso senza argomenti, il comando stampa l'elenco di tutte le variabili d'ambiente ei loro valori. | set [variable-name]=[value] |
Risolto errore di avvio
Questo tutorial illustra due modi per risolvere i problemi di avvio di GRUB, utilizzando il prompt di GRUB Rescue e lo strumento Boot Repair .
Tramite Grub Terminal
1. Utilizzare il comando set senza argomenti per visualizzare le variabili di ambiente:
set
L'output di esempio mostra che GRUB è impostato per l'avvio da (hd0,msdos3)
partizione:
2. Il comando ls elenca le partizioni disponibili sul disco.
ls
L'output mostra l'elenco delle partizioni.
Usa ls
comando per trovare la partizione contenente il boot
directory.
ls [partition-name]
L'esempio mostra il boot
directory nel (hd0,msdos1)
partizione.
3. Imposta la partizione di avvio come valore della root
variabile. L'esempio utilizza la partizione denominata (hd0,msdos1)
.
set root=(hd0,msdos1)
4. Carica il normal
modalità di avvio.
insmod normal
5. Avvia il normal
modalità di avvio.
normal
Il normal
la modalità consente di emettere comandi più complessi.
6. Carica il kernel Linux usando linux
comando.
linux /boot/vmlinuz-4.2.0-16-generic root=/dev/sda1 ro
7. Emetti il boot
comando.
boot
Il sistema ora si avvia correttamente.
Tramite immagine live
Un altro modo per risolvere i problemi di avvio di GRUB è utilizzare un'immagine live di Linux per l'avvio da un dispositivo esterno.
1. Scarica un programma di installazione Linux live. Questo esempio utilizza l'immagine ISO di Ubuntu 20.04.
2. Usa uno strumento come Etcher per scrivere l'immagine Linux su una scheda SD o un'unità flash USB.
3. Inserire il dispositivo di avvio e avviare il computer.
4. Seleziona Prova Ubuntu nella schermata di benvenuto.
5. Quando il sistema live si avvia, connettiti a Internet.
6. Apri il terminale e digita il seguente comando per aggiungere il repository per lo strumento Boot Repair.
sudo add-apt-repository ppa:yannubuntu/boot-repair
Premi Invio e attendi che il repository venga aggiunto.
7. Aggiorna i repository.
sudo apt update
8. Installa lo strumento Boot Repair.
sudo apt install boot-repair
9. Avvia lo strumento Boot Repair tramite il terminale.
boot-repair
10. Seleziona Riparazione consigliata .
Attendi che lo strumento termini la riparazione del bootloader.
Aggiornamento del file di configurazione di GRUB
Quando il sistema si avvia correttamente, assicurati che la configurazione di GRUB sia aggiornata.
Esegui questo comando:
update-grub
Reinstallazione di GRUB
Segui i passaggi seguenti per reinstallare GRUB sul tuo sistema Linux.
1. Montare la partizione contenente l'installazione del sistema operativo. L'esempio monta il /dev/sda1
partizione nel /mnt
directory.
sudo mount /dev/sda1 /mnt
2. Associa il /dev
, /dev/pts
, /proc
e /sys
directory nelle directory corrispondenti nel /mnt
cartella.
sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys
3. Installa GRUB.
sudo grub-install -root-directory=/mnt/ /dev/sda
4. Smonta le directory al termine dell'installazione.
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt