Eccoci
qua oggi a parlare del famoso Grub2. Non sai cosa è? Vieni, che te
lo spieghiamo.
Una
volta vi era il Grub, oggi c'è il Grub 2. A parte gli scherzi
vediamo un po' meglio questo piccolo, grande software che permette a
tutti noi di lavorare ogni giorno con i sistemi Linux e non solo.
CHE
COSA È IL GRUB 2
In poche parole è il bootloader di Linux. E' quindi il programma che si occupa
dell'avvio dei sistemi operativi Linux presenti sulla macchina.
E'
la versione numero 2 del vecchio Grub. E' Grub 2 il ritorno, Grub 2 la
vendetta, riscritto da capo, migliorato e ripensato in modularmente.
Si
perché, a differenza del predecessore, questo bootloader permette di
caricare numerosi moduli, permettendo una profonda personalizzazione.
COME
AVVIENE L'AVVIO DEL COMPUTER
Questo
paragrafo lo dedichiamo a illustrarvi come avviene l'accensione di un computer, perché è inutile spiegarvi cosa è il Grub 2 se non sapete dove agisce.
Cominciamo!
Gli antichi lo chiamano anche fase di
bootstrap, o più semplicemente fase di boot.
Il
bootstrap è una catena di processi che viene lanciata nel momento in
cui premiamo sul tasto di accensione sul case del nostro pc. Questi processi sono scritti sulla memoria ROM (Read Only Memory) e il loro compito è quello di leggere la posizione e lo stato delle varie periferiche - o device - che sono collegati.
L'ultimo di questa catena lancia il famigerato Bios.
Il Bios è un programma che è scritto sulla memoria EEPROM (Electronic Erasable Programmable Read Only Memory). Esso si collega a tutti i programmi che sono responsabili di lanciare i vari sistemi operativi installati sulla macchina, tra cui
il nostro caro Grub2.
Una
volta lanciato il Grub2, ci viene sottoposta la scelta di
quale sistema operativo lanciare. Arrivati a questo punto il bootloader carica in RAM le prime istruzioni del sistema operativo scelto e poi cede il passo allo stesso.
STRUTTURA
DEL GRUB 2
Arrivati
qua, abbiamo capito cosa è il Grub2, come avviene la fase di boot e come si comporta.
Adesso impariamo come è fatto il bootloader di Linux.
Tutti
i file che interessano il Grub2 sono racchiusi nella cartella
/boot/grub. Al suo interno troviamo il file grub.cfg che è il
“manifesto” del bootloader, cioè è il file su cui scrive ogni
cosa. E' un file che non va modificato, - anche se qualche volta si
fa per quieto vivere (ve lo abbiamo mostrato qua) – in quanto è il
risultato del comando grub2-mkconfig.
Un altro molto importante è /etc/default/grub. Questo è il file di
configurazione di Grub 2. Infatti, quando lanciamo grub2-mkconfig, a
seconda di cosa è presente qui dentro viene generato il file
grub.cfg.
Le
principali voci che possiamo trovare sono:
- GRUB_DEFAULT=0 : Indica la posizione del sistema operativo da lanciare di default, dove 0 è il numero della voce del suddetto sistema operativo. Possiamo anche utilizzarlo con GRUB_DEFAULT=saved e in questo modo il bootloader ricorderà l'ultimo sistema operativo caricato.
- GRUB_TIMEOUT=3 : Indica il numero di secondi per cui deve attendere prima di avviare la scelta di default. -1 per farlo attendere ad oltranza, cioè fino a un nostro intervento.
- GRUB_DISABLE_LINUX_RECOVERY=true : Se impostato a true, disabilita la visione delle scritte di recovery. False altrimenti.
- GRUB_CMDLINE_LINUX : Se presente, indica le modalità di apertura della linea di comando del grub2. Non si deve modificare.
Per
ultimo vediamo la directory /etc/grub.d/ in cui sono presenti tutti gli script che permettono al
comando grub2-mkconfig, di raccogliere tutte le informazioni che gli
sono necessarie per creare il file grub.cfg.
Troviamo
vari script tra cui:
- 00_* : Sono gli script riservati agli header.
- 10_* : Rappresentano le boot entries generate automatiamente.
- 20_* : Sono script creati da applicazioni di terze parti. Ad esempio memtest86+ ecc.
- 30_* : Sono gli script che vanno alla ricerca dei vati sistemi operativi installati.
- 4* : Sono modelli personalizzabili o che sono generati dall'utente.
AGGIORNARE
GRUB2
Ogni
volta che andremo a fare qualche modifica al Grub 2, dovremo
aggiornarlo manualmente. Per
farlo, quando saremo soddisfatti delle modifiche, daremo il
comando:
su
per
lavorare con i privilegi di super utente, e poi:
grub2-mkconfig -o /boot/grub2/grub.cfg
Per
chi ha però la partizione di boot separata, o chi ha l'EFI con
sistemi in dual boot come me, dovremo copiare il file sulla partizione
giusta.
La
partizione la dovreste sapere. Se però così non fosse, diamo il comando:
fdisk
-l
Per
me, come da immagine, è sda2. Una volta individuata, la montiamo con il
comando:
mount
/dev/sdaX /mnt
Dove,
ovviamente, al posto di X inseriamo il numero della nostra partizione
di boot. Successivamente copiamo il file grub.cfg nella stessa, con
il comando:
cp
-v /boot/grub2/grub.cfg /mnt/EFI/fedora/grub.cfg
Dove l'opzione -v, che sta per verboose, serve per stampare a video le informazioni di copiatura.
Se ce lo chiede digitiamo:
y
Per
sovrascrivere il file. Una volta fatto ciò riavviamo il sistema con:
reboot
PROBLEMI
PIÙ FREQUENTI
Adesso
che abbiamo capito come è fatto il Grub e come facciamo ad
aggiornarlo, è ora di affrontare alcuni dei problemi che ci
affliggono più di frequente.
IMPOSTARE
UNA VOCE DI DEFAULT
Per
svariate ragioni, di praticità o di funzionamento, può essere
importante impostare una voce in particolare di default. Molto utile
in sistemi di dual boot.
Per
fare ciò apriamo con i privilegi di root il file /etc/default/grub e
cerchiamo la linea:
GRUB_DEFAULT=0
E
al posto del numero preimpostato, inseriamo il numero della voce del
menu di grub da lanciare di default.
Attenzione:
uno dei vizi dei programmatori è quello di iniziare a contare da
zero. Qui infatti si deve fare così. La prima riga è la numero zero, e le successive in progressione.
Usando
l'immagine da esempio, se volessimo impostare Ubuntu come voce di
default, dovremmo scrivere:
GRUB_DEFAULT=4
Proprio
perché Ubuntu è la quarta scelta disponibile (Non la quinta!).
Una
volta soddisfatti facciamo la procedura di aggiornamento del Grub 2.
ELIMINARE
I VECCHI KERNEL
Il
modo più sicuro è certamente quello di disinstallare i kernel
vecchi, o comunque quelli che non ci interessano più. Al riavvio
successivo, infatti, non li troveremo più nel listato.
ELIMINARE
LE VOCI LINUX RESCURE
Per
eliminare quelle fastidiosissime scritte di Linux Rescure ci basta
aprire il file /etc/default/grub e, se non presente, inserire la
riga:
CONCLUSIONE
Siamo
giunti alla fine di questo post. E' stata dura. Ma ce l'abbiamo
fatta. Con questo post abbiamo capito meglio cosa è il Grub 2, come
funziona e come fa partire il sistema operativo.
Fonti:
-
Immagini di +Joel Garia ;







Nessun commento:
Posta un commento