GRUB

Da Wikipedia, l'enciclopedia libera.
GNU GRUB
Logo di GRUB
Screenshot di GRUB
Screenshot di GNU GRUB (Ubuntu 8.04)
Sviluppatore Progetto GNU
Ultima versione 2.00 (27 giugno 2012[1])
Sistema operativo Multipiattaforma
Linguaggio Assembly
C[2]
Genere Boot loader
Licenza GNU General Public License 3+[2]
(Licenza libera)
Lingua Multilingua
Sito web www.gnu.org/software/grub/

In informatica GRUB (GRand Unified Bootloader) è un boot loader usato da molte distribuzioni Linux.

È semplice da usare, perché viene configurato attraverso un normale file di configurazione (in genere /boot/grub/menu.lst anche se a seconda della distribuzione utilizzata potrebbe essere anche /etc/grub.conf[3]).

È corredato da vari programmi ausiliari. In particolare grub-install è in grado di trovare i vari kernel presenti nella root directory e di generare la configurazione necessaria.

Indice

Identificare i dispositivi [modifica]

StartUp-Manager, un front-end per configurare GRUB

GRUB utilizza una nomenclatura dei device diversa rispetto a quella che è utilizzata in LILO o all'interno di Linux, anche perché non è un bootloader dedicato solo a Linux. GRUB richiede che le unità cui si fa riferimento siano indicate fra parentesi tonde, e deve essere specificato sia il tipo di unità che il numero cardinale progressivo (iniziano a contare dal numero 0 e non 1) ed, eventualmente, la partizione utilizzata.

Qualche esempio chiarirà meglio la situazione: (hd0,1) indica che ci si sta riferendo ad un hard disk (hd), e tra tutti i dischi fissi presenti sul computer, si indica proprio il primo della catena (hd0).

GRUB non fa alcuna differenza tra IDE, SCSI o SATA: tutto dipende dalla catena di riconoscimento del BIOS, che può essere impostata a piacere. In genere, i dischi EIDE hanno la precedenza sui restanti, e vengono identificati con i numeri più bassi.

Il secondo numero dopo la virgola indica la partizione del disco specificato alla quale ci si sta riferendo: le partizioni primarie vengono identificate come 0, 1, 2 e 3 mentre le partizioni logiche iniziano sempre da 4, indipendentemente dal numero di primarie presenti. Nell'esempio, (hd0,1) indica la seconda partizione primaria, mentre (hd0,4) indica la prima partizione logica sempre dello stesso disco. Nel caso ci si stia riferendo ad un disco EIDE, secondo la convenzione Linux, (hd0,1) corrisponde a hda2, mentre (hd0,4) corrisponde a hda5.

Rispetto ad altri boot loader, GRUB è in grado di sfogliare file all'interno dei file system. Attualmente supporta i seguenti file system:

GRUB è normalmente utilizzato attraverso monitor e tastiera del computer, ma può essere configurato anche per interagire con una console seriale.

Versioni disponibili [modifica]

Lo sviluppo di GRUB è cessato, fermo alle versioni 0.9x, poiché esso è destinato ad essere rimpiazzato da GRUB 2 che sostituirà l'attuale GRUB. La nuova versione GRUB 2 rivoluzionerà il boot loader, creandone uno di nuova generazione, grazie alla fusione con il codice di PUPA[4].

Processo di avvio [modifica]

GRUB è un bootloader a stadi poiché la sua esecuzione è scandita da vari stadi (stage) di avvio, ognuno dei quali è rappresentato da un file:
- due stage essenziali (file stage1 e stage2)
- vari stage opzionali (indicati con i files files che contengono nel proprio nome stage1_5)
stage1
Questo è un file essenziale per poter effettuare il boot con GRUB. Tipicamente si trova nel MBR o nel boot sector di una partizione. Poiché un boot sector è grande 512 byte, la dimensione di tale file è esattamente 512 byte. Tutto ciò che fa stage1 è di caricare il file stage2 o lo specifico file *stage1_5 dal disco (stage1 non gestisce nessun tipo di filesystem).
stage2
Questo è il nucleo di GRUB. Generalmente risiede su un filesystem, ma ciò non è necessario.
stage1_5
Questa famiglia di file ha lo scopo di collegare il file stage1 al file stage2. Cioè un ipotetico file che contenga nel proprio nome stage1_5 significa che quest'ultimo è caricato da stage1 e, a sua volta, caricherà stage2. Lo specifico stage1_5 rende GRUB capace di gestire un determinato filesystem. In questo modo, si può spostare il file stage2 in una posizione diversa sul filesystem senza dover necessariamente reinstallare GRUB.
Il processo di avvio può essere così riassunto:
1) Il BIOS cerca le periferiche avviabili e dà il controllo al settore di avvio (MBR) del floppy o dell'hard disk.

2) Il Master Boot Record può caricare lo stage 1.5 (risiede nei 30 kB successivi all'MBR) che a sua volta caricherà lo stage 2 oppure caricare direttamente lo stage 2, collocato in qualsiasi punto del disco.

3) Lo stage 2 contiene il menu di avvio con la lista dei kernel avviabili.

4) GRUB carica il kernel selezionato nella memoria e lo esegue.

Note [modifica]

  1. ^ (EN) GRUB 2.00 released. URL consultato in data 12 luglio 2012.
  2. ^ a b Ohloh Analysis Summary - GNU GRUB. Ohloh. URL consultato in data 12 maggio 2010.
  3. ^ (EN) GRUB su LinuxQuestions.org
  4. ^ PUPA

Altri progetti [modifica]

Voci correlate [modifica]

Collegamenti esterni [modifica]


Software libero Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero