GNU GRand Unified Bootloader (GRUB) � un programma che consente di selezionare quale sistema operativo o kernel � da caricare al momento dell'avvio del sistema. Consente inoltre di passare argomenti al kernel.
2.2.1. Processo di avvio di GRUB e x86
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 sezione dell'MBR e della partizione /boot/.
La fase 2 o boot loader secondario, viene caricata nella memoria. Il boot loader secondario visualizza il menu di GRUB e l'ambiente dei comandi. Questa interfaccia vi consente di selezionare il sistema operativo o il kernel da avviare, il passaggio degli argomenti al kernel o di osservare i parametri del sistema.
Il boot loader secondario oltre a leggere il sistema operativo o il kernel, � in grado di leggere i contenuti di /boot/sysroot/ all'interno della memoria. Dopo che GRUB ha determinato il sistema operativo o kernel da avviare, lo carica in memoria e cede il controllo della macchina al sistema operativo.
Il metodo utilizzato per avviare Red Hat Enterprise Linux � chiamato caricamento diretto, in quanto il boot loader carica direttamente il sistema operativo. Non esiste alcuna fase intermedia tra il boot loader ed il kernel.
Il processo d'avvio utilizzato da altri sistemi operativi pu� variare leggermente. Per esempio iI sistema operativo Microsoft® Windows®, oltre a numerosi altri sistemi operativi,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.
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.
2.2.2. Caratteristiche di GRUB
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 � in grado di fornire, su macchine x86, un ambiente pre-OS basato sui comandi. In questo modo l'utente dispone della massima flessibilit� nel caricamento dei sistemi operativi con determinate opzioni, o nella raccolta di informazioni riguardanti il sistema. Per anni, molte architetture non-x86, hanno utilizzato ambienti pre-OS che consentono l'avvio del sistema da una linea di comando.
GRUB supporta la modalit� Logical Block Addressing (LBA ). La modalit� LBA posiziona nel firmware dell'unit� l'addressing conversion 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 i 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.