GNU GRUB (GRand Unified Bootloader) è un programma che consente di selezionare quale sistema operativi o kernel caricare al momento dell'avvio del sistema. Consente inoltre di passare argomenti al kernel.
Questa sezione riporta in dettaglio il ruolo specifico di GRUB quando si effettua l'avvio di un sistema x86. Per rivedere il processo di avvio, consultare la Sezione 1.2.
Il processo di caricamento di GRUB avviene in diverse fasi:
Caricamento del boot loader primario dal BIOS nell'MBR - Fase 1 [1].Il boot loader è posizionato nel piccolissimo spazio assegnato all'MBR, inferiore a 512byte ed è capace di caricare il boot loader della prima o seconda fase.
Il boot loader della fase intermedia è caricato in memoria da quello della fase 1 solo se necessario. Alcuni elementi hardware richiedono una fase intermedia per giungere al boot loader secondario. Questo avviene quando la partizione /boot è superiore ai 1024 cilindri della testina del disco fisso o quando si utilizza la modalità LBA. Il boot loader della fase intermedia è disponibile nella partizione /boot o in una piccola parte dell'MBR e della partizione /boot.
Caricamento del boot loader secondario - Fase 2. Il boot loader secondario visualizza il menu e l'ambiente dei comandi di GRUB. Questa interfaccia vi consente di selezionare il sistema operativo o il kernel da avviare, di passare gli argomenti al kernel o di osservare i parametri di sistema, come la RAM disponibile.
Caricamento del sistema operativo o del kernel e di initrd. Dopo che GRUB è ha determinato il sistema operativo da avviare, lo carica in memoria e cede il controllo del calcolatore al sistema operativo.
Il metodo utilizzato per avviare Red Hat Linux è denominato caricamento diretto perché il boot loader carica direttamente il sistema operativo. Non esiste alcun intermediario tra il boot loader e il kernel.
Il processo di avvio utilizzato da altri sistemi operativi può variare leggermente. I sistemi operativi DOS e Windows di Microsoft, per esempio, oltre a numerosi altri sistemi operativi proprietari, vengono caricati mediante il metodo di caricamento a catena. Con questo metodo l'MBR fa semplicemente riferimento al primo settore della partizione contenente il sistema operativo, dove trova i file necessari per avviare il sistema operativo.
GRUB supporta entrambi i metodi di avvio di caricamento a catena e diretto, consentendovi di utilizzarli con qualsiasi sistema operativo.
![]() | Avvertenza |
|---|---|
Durante l'installazione, il programma di installazione di DOS e Windows di Microsoft sovrascrive completamente l'MBR, eliminando qualsiasi boot loader esistente. Se create un sistema a doppio avvio, è preferibile installare prima il sistema operativo Microsoft. Per istruzioni su come effettuare questa operazione, consultate l'appendice Installing Red Hat Linux in a Dual-Boot Environment nella Red Hat Linux Installation Guide. |
GRUB vanta una serie di caratteristiche che lo rendono preferibile ad altri boot loader disponibili. Ecco alcune delle peculiarità più importanti:
GRUB fornisce ai calcolatori x86 un ambiente pre-OS basato su comandi. In questo modo l'utente dispone della massima flessibilità nel caricamento dei sistemi operativi con determinate opzioni o nella raccolta di informazioni sul sistema. Molte architetture, diverse da x86, hanno utilizzato per anni ambienti pre-OS che consentono di controllare il modo in cui il sistema si avvia da una linea di comando. Mentre alcune caratteristiche di comando sono disponibili anche in LILO e altri boot loader x86, GRUB contiene un maggior numero di caratteristiche.
GRUB supporta la modalità LBA Logical Block Addressing. La modalità LBA posiziona nel firmware dell'unità la conversione di indirizzamento utilizzata per trovare i file del disco fisso. Prima dell'introduzione di questa modalità, i boot loader potevano essere limitati dal cilindro 1024 e il BIOS non riusciva a individuare dei file dopo quel punto. Il supporto LBA consente a GRUB di avviare i sistemi operativi dalle partizioni oltre il limite del cilindro 1024, se il BIOS supporta tale modalità (la maggior parte dei BIOS la supporta).
GRUB può leggere le partizioni ext2. GRUB può accedere al relativo file di configurazione /boot/grub/grub.conf a ogni avvio del sistema, evitandovi dunque di dover scrivere una nuova versione del boot loader primario nell'MBR tutte le volte che modificate le opzioni. L'unico caso in cui potrebbe essere necessario reinstallare GRUB nell'MBR si verifica se il percorso fisico della partizione /boot viene spostato sul disco. Per ulteriori informazioni sull'installazione di GRUB nell'MBR, consultate la Sezione 2.3.
| [1] | Per ulteriori informazioni sul BIOS di sistema e sull'MBR, consultate la Sezione 1.2.1. |