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 la fase 1.5 o 2 del boot loader.
Il boot loader della fase 1.5 è caricato in memoria da quello della fase 1, se necessario. Alcuni elementi hardware richiedono una fase intermedia per giungere al boot loader della fase 2. 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/.
La fase 2 o boot loader secondario viene caricata nella memoria. 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 del sistema.
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 Enterprise 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. Per esempio iI sistema operativo Microsoft® Windows®, 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, consentendovi di utilizzarli con qualsiasi sistema operativo.
![]() | Avvertenza |
---|---|
Durante l'installazione, il programma di installazione DOS e Windows di Microsoft, sovrascrive completamente l'MBR, eliminando qualsiasi boot loader esistente. Se create un sistema dual-boot, è preferibile installare prima il sistema operativo Microsoft. |
GRUB vanta una serie di caratteristiche che lo rendono preferibile ad altri boot loader disponibili per l'architettura x86. 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. Per anni, 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à Logical Block Addressing (LBA ). La modalità LBA posiziona nel firmware dell'unità la conversione di indirizzamento utilizzata per trovare i file nel firmware del disco fisso, ed è usato su molti IDE e su tutti i dispositivi fissi SCSI. Prima di LBA 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à LBA. 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 del sistema e sull'MBR, consultate la Sezione 1.2.1. |