CHIARA SALVATORE

Cloud Infrastructure Administrator

Devops Engineer

LinkedIn  Twitter  Delicious  profilo Facebook solo per conoscenti

I bootloader di Linux: LILO e GRUB

Il primo bootloader creato per Linux è stato LILO, da LInux LOader, ed a lungo è stato anche l’unico presente. E’ un bootloader con una architettura elementare, che si affida al BIOS per la lettura del disco, e per tanto risente di tutti i limiti che questo può avere. Per esempio alcuni vecchi BIOS non sono capaci di leggere i dischi oltre il 1024esimo cilindro.
LILO viene installato nell’MBR (Master Boot Record, corrispondente ai primi 512 byte del disco) alla fine della procedura di installazione di una distribuzione. LILO ha il compito di trovare l’immagine del Kernel sul disco, caricarla in memoria ed eseguirla; dopo di che il controllo passa al kernel.
La configurazione di LILO è gestita tramite il file /etc/lilo.conf.
Ogni volta che si effettua una modifica a questo file è necessario richiamare il programma lilo che reinstalla il bootloader con le nuove opzioni. E’ necessario farlo anche nel caso in cui si decida di usare un nuovo kernel, persino se si decide di sovrascrivere il kernel precedente: LILO infatti conosce solo la posizione fisica del kernel nel disco, non quella logica del filesystem.

Il secondo bootloader disponibile per Linux è GRUB, da GRand Unified Bootloader. GRUB è nato come bootloader per il sistema HURD (un kernel libero alternativo a GNU/Linux sviluppato dalla Free Software Foundation) ma è in grado di avviare qualunque tipo di sistema (Linux o BSD).
La differenza principale rispetto a LILO è che GRUB è formato da diverse parti, dette stadi, ciascuno dei quali fa partire il successivo. Il primo stadio è un analogo di LILO e viene installato sul bootloader, il suo unico compito è quello di lanciare il secondo stadio, che si incaricherà di effettuare tutte le operazioni successive. Il grande vantaggio di GRUB deriva proprio da questo: tutte le restrizioni che si applicano ad un programma che deve stare nell’MBR scompaiono. Per questo GRUB non solo non soffre del problema del 1024esimo cilindro, ma è in grado di leggere nativamente i principali filesystem (e quindi per esempio far riferimento alle immagini del kernel attraverso un pathname).
Un altro grande vantaggio è che GRUB può ricevere comandi avvio non solo da console, ma anche via seriale e via rete, dato che non ha bisogno del BIOS per gestire l’I/O. Infine non è limitato a lanciare il sistema dal primo canale IDE, ma, essendo indipendente dal BIOS, può usare uno qualunque dei dischi presenti.
Tutti i file di GRUB si trovano nella cartella /boot/grub.

Post correlati

Posted in Computer notes | Tagged , , , , , , , | Leave a comment

Leave a Reply

“Be a finisher. The world has enough starters.”
 Cameron Moll