Product SiteDocumentation Site

Il boot loader GRUB

Quando si avvia un computer con Linux, il sistema operativo viene caricato all'interno della memoria da un programma speciale chiamato boot loader. Un boot loader generalmente è composto da un disco fisso primario del sistema (o da un altro dispositivo media), ed il suo compito è quello di caricare il kernel di Linux con i file richiesti, o di caricare (in alcuni casi) altri sistemi operativi all'interno della memoria.
Questo capitolo affronta i comandi e le opzioni di configurazione per il boot loader GRUB incluso con Fedora con l'architettura x86.

E.1. GRUB

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.

E.1.1. Processo di avvio di GRUB e x86

Il processo di caricamento di GRUB avviene in diverse fasi:
  1. La fase 1 o boot loader primario viene letta all'interno della memoria dal BIOS dall'MBR[6]. Il boot loader primario è situato in meno di 512 byte di spazio del disco all'interno dell'MBR ed è in grado di caricare la fase 1.5 o la fase 2 del boot loader.
  2. Se necessario il boot loader alla fase 1.5 viene letto nella memoria dal boot loader alla fase 1. Alcuni hardware richiedono una fase intermedia per poter avanzare al boot loader alla fase 2. Tale tendenza risulta essere vera se la partizione /boot/ si trova oltre il cilindro 1024 del disco fisso, oppure quando si utilizza la modalità LBA. Il boot loader della fase 1.5 si può trovare sia sulla partizione /boot/ sia su di una parte molto piccola dell'MBR e sulla partizione /boot/.
  3. 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 consente di selezionare il sistema operativo o il kernel da avviare, il passaggio degli argomenti al kernel o di osservare i parametri del sistema.
  4. Il boot loader secondario legge il sistema operativo o il kernel, insieme ai contenuti di /boot/sysroot/, nella memoria. Una volta che GRUB determina quale sistema operativo o kernel deve avviare, lo carica all'interno della memoria e trasferisce il controllo della macchina al sistema operativo in questione.
Il metodo utilizzato per avviare Linux viene chiamato direct loading, poichè il boot loader carica il sistema operativo in modo diretto. Non è presente alcun intermediario 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, consentendo di avviare qualsiasi sistema operativo.

Warning

Durante l'installazione, il programma di installazione DOS e Windows di Microsoft, sovrascrive completamente l'MBR, eliminando qualsiasi boot loader esistente. Se si crea un sistema dual-boot, è preferibile installare prima il sistema operativo Microsoft.

E.1.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:


[6] Per maggiori informazioni sul sistema BIOS e MBR, consultare Sezione F.2.1, «Il BIOS».