mercoledì 1 ottobre 2008

GRUB (Grand Unified Bootloader) è il boot loader predefinito di Ubuntu

Maria Susana Diaz | 15:03 |

Introduzione
GRUB (Grand Unified Bootloader) è il boot loader predefinito di Ubuntu, viene avviato subito dopo le operazioni POST del BIOS e si preoccupa di scegliere e avviare un sistema operativo fra quelli presenti nel computer oppure avviare in cascata un secondo boot loader.

In genere GRUB riconosce automaticamente i sistemi operativi presenti e li inserisce nel menù iniziale. È possibile personalizzare o modificare la configurazione, modificare l'elenco dei sistemi operativi, il tempo di avvio e molti altri aspetti.

Installazione
Installazione predefinita

GRUB viene automaticamente installato e posizionato nel primo settore del MBR in modo da essere il boot loader primario durante la fase di avvio.
Installazione su floppy

L'installando GRUB su un floppy si avrà la possibilità di avviare qualsiasi sistema anche in caso di MBR danneggiato. Per installare GRUB su un floppy è necessario inserire un dischetto vuoto nel lettore, dunque digitare i seguenti comandi in una finestra di terminale:

sudo mke2fs /dev/fd0
sudo mount -t ext2 /dev/fd0 /mnt
sudo grub-install --root-directory=/mnt fd0
sudo umount /mnt

Sostituire la dicitura «/dev/fd0» con una adatta alla propria configurazione.

Ripristino

Quando si installa un sistema operativo come Windows che va a cancellare e sovrascrivere l'MBR ignorando completamente altri sistemi operativi presenti nel computer, GRUB non sarà più il boot loader principale del sistema e all'avvio del computer verrà avviato Windows e non più Linux. Per ripristinare GRUB come boot loader predefinito, consultare la relativa guida.

Avvio

Per poter modificare le opzioni di GRUB o scegliere un kernel diverso da avviare, è sufficiente premere il tasto «Esc». Sono messi a disposizione dell'utente dei tasti per accedere in modo rapido alla configurazione oppure alla riga di comando.

Tasti di scelta rapida

Funzione

«c»

Accede alla riga di comando di GRUB.

«e»

Apre un editor dove è possibile modificare la voce del menù selezionata.

Configurazione

Tutti i file di configurazione di GRUB sono contenuti nella cartella /boot. Tutte le modifiche dovranno essere apportate al file /boot/grub/menu.lst.

Seguirà un elenco di possibili modifiche che si possono effettuare a GRUB. Tutte le modifiche dovranno essere effettuate con un editor di testo e con i privilegi di amministratore al file /boot/grub/menu.lst.
Tempo di selezione

GRUB è in grado di avviare automaticamente un sistema operativo predefinito qualora entro un certo lasso di tempo non venga premuto alcun tasto. Per aumentare il tempo a disposizione, modificare il valore del parametro «timeout»:

timeout 3
Scelta del kernel predefinito



GRUB dopo un lasso di tempo avvia automaticamente il primo sistema operativo presente nel suo file di configurazione. Per cambiare l'ordine dei kernel presenti nel file di configurazione, modificare il valore del parametro «Default»:

Default 0

Visibilità del menù

Ubuntu nasconde in modo predefinito il menù d'avvio di GRUB. Per rendere visibile il menù, premere il tasto «Esc» alla schermata Press ESC to enter the menu.... Per far apparire sempre il menù all'avvio cercare la seguente stringa nel file di configurazione:

hiddenmenu

Modificarla come nel seguente esempio:

#hiddenmenu

Personalizzare le voci

Per modificare una voce di menù, modificare il parametro «title» relativo al kernel scelto inserendo il testo desiderato.
Aggiungere un sistema operativo all'elenco
Aggiungere un kernel

Il primo parametro da aggiungere è «title» che permette di inserire la voce del menù relativa al sistema operativo che verrà visualizzato nel menù:

title Ubuntu Hardy Heron

Successivamente inserire il parametro «root» che permette di impostare il disco fisso e la partizione in cui si trova l'immagine del kernel. Se, per esempio, il disco si trova in /dev/sda3, l'istruzione da impostare nel file di configurazione di GRUB è la seguente:

root (hd0,2)

La numerazione delle partizioni parte da 0, quindi il numero da inserire nel file di configurazione è di una posizione minore rispetto al numero della partizione.

Il terzo parametro da aggiungere è «kernel» che permette di inserire il percorso del file contenente l'immagine del kernel con i relativi argomenti, evitando così dei kernel panic all'avvio del sistema. Quello che segue è un esempio di cosa inserire nel parametro:

kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/sda3 ro locale=it_IT quiet splash

Le opzioni più comuni sono le seguenti:

Opzione

Descrizione

root

Indica al kernel qual è la partizione contenente la directory radice del sistema.

ro
728x90_AdslMini.gif
Accede in sola lettura alla partizione contenente la directory radice. Per motivi di sicurezza è consigliato impostare questa opzione.

splash

Mostra a video un'immagine durante il caricamento del sistema.

locale

Indica la lingua da utilizzare.

vga

Esegue il sistema in framebuffer.

Se il kernel che si desidera avviare utilizza initrd per il caricamento dei moduli all'avvio, come i kernel preinstallati in Ubuntu, è necessario impostare anche il percorso dell'immagine ramdisk iniziale. In tal caso è utile aggiungere al file di configurazione la seguente istruzione:

initrd /boot/initrd.img-2.6.20-15-generic

Generalmente l'immagine si trova nella stessa cartella del kernel.

Quello che segue è un esempio di configurazione da inserire in /boot/grub/menu.lst:

title Ubuntu Hardy Heron
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-15-generic root=/dev/hda1 ro locale=it_IT quiet splash
initrd /boot/initrd.img-2.6.20-15-generic
boot

Aggiungere sistemi Windows, BeOS e OpenBSD

Alcuni sistemi operativi come Windows od OpenBSD necessitano di una configurazione particolare per essere avviati, per esempio, la partizione dev'essere contrassegnata come attiva o come partizione primaria. Questi sistemi operativi hanno routine specifiche che si occupano dell'avvio, di conseguenza parametri come «kernel» non vengono riconosciuti da GRUB.

Per avviare uno di questi sistemi operativi è necessario impostare i seguiti parametri:

Parametro

Descrizione

rootnoverify

Accede in sola lettura alla partizione contenente la directory radice. Per motivi di sicurezza è consigliato impostare questa opzione.

makeactive

Rende la partizione attiva (necessario per Windows).

chainloader

Legge la prima traccia della partizione, la quale conterrà un secondo boot loader da avviare in cascata.

boot

Avvia il sistema.

Quello che segue è un esempio di elenco completo da inserire nel file di configurazione di GRUB:

rootnoverify (hd1,0)
makeactive
chainloader +1
boot

Aggiungere un sistema FreeBSD

FreeBSD ha un sistema particolare di organizzazione delle cartelle. Nel seguente esempio si presume che il sistema sia installato nella seconda partizione del secondo disco:

root (hd1,1,a)
kernel /boot/loader

Sicurezza

Proteggere l'avvio del sistema

GRUB permette di impostare una password di sicurezza quando si cerca di avviare un kernel.

Per creare la password è sufficiente digitgare in una finestra di terminale il seguente comando:

sudo grub-md5-crypt

Inserire due volte la password. Verrà restituita la password cifrata con l'algoritmo MD5 da copiare nel file di configurazione.

Dunque, aggiungere il parametro «password» nel blocco della voce che si desidera proteggere, come nel seguente esempio:

title Ubuntu Hardy Heron
root (hd0,2)
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
initrd /initrd.img-2.6.6-s26-mio-kernel
password --md5 PasswordCifrata
boot

Infine, sostituire la dicitura «PasswordCifrata» con il risultato del comando precedente; è possibile scegliere una diversa password per ogni sistema operativo del quale si desidera proteggere l'avvio.

È possibile proteggere con la stessa password l'avvio di diversi sistemi operativi e di diversi kernel; a tale scopo è sufficiente aggiungere il parametro «lock» nei blocchi che si desiderano proteggere, come nel seguente esempio:
Leaderboard 728x90

title Ubuntu Hardy Heron
lock
root (hd0,2)
kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=791
initrd /initrd.img-2.6.6-s26-mio-kernel
boot

Proteggere l'accesso alle opzioni d'avvio

È possibile richiedere la password ogni volta che si tenta di accedere alle opzioni d'avvio di GRUB.

1. Inserire la password nella riga che precede le voci del menù:

password --md5 PasswordCifrata

2. Sostituire la dicitura «PasswordCifrata» con il risultato ottenuto dal seguente comando:

grub-md5-crypt

Con questo parametro si potranno avviare liberamente i sistemi operativi corrispondenti alle voci già presenti, ma per modificare le opzioni di avvio verrà richiesta la password.

Aggiornamento del menù di avvio

Quando viene installato un nuovo kernel contenuto in un pacchetto .deb, viene eseguito in modo automatico il programma update-grub che cerca nuovi kernel nella directory /boot e li aggiunge nel file di configurazione /boot/grub/menu.lst.

Questo script può anche essere eseguito in manualmente nel caso in cui venga ricompilato un kernel che non è contenuto in un pacchetto .deb oppure se per ripristinare la la lista di avvio nel file menu.lst. Le voci per i vari kernel inserite dal comando update-grub sono contenute in una sezione che inizia con la seguente riga:

### BEGIN AUTOMAGIC KERNELS LIST

Tale sezione termina con la seguente riga:

### END DEBIAN AUTOMAGIC KERNELS LIST

Al di fuori di questo blocco è possibile inserire tutte le configurazioni che non necessitano una modifica da parte di update-grub.

Nel blocco «AUTOMAGIC» vengono inseriti anche i commenti che servono a personalizzare il comportamento del programma di aggiornamento. Nel caso in cui si abbia la necessità di inserire un nuovo kernel senza il relativo «recovery mode» e che venga avviato sempre il framebuffer, modificare le apposite righe del file di configurazione come nel seguente esempio:

# kopt=root=/dev/hdaX ro vga=791

# alternative=false

Sostituire la dicitura «/dev/hdaX» con il percorso della partizione contenente il kernel.
Non togliere il commento alla riga, altrimenti update-grub la ignorerà e sarà considerata come un comando di GRUB.

Riconoscimento modalità video

GRUB riconosce le modalità sopportate in framebuffer dalla scheda video. Digitare il seguente comando:

vbeprobe

È anche possibile verificare il funzionamento di una modalità video, digitando il seguente comando:

testvbe

È possibile avviare il sistema nella modalità desiderata aggiungendo il codice della modalità video alla linea del parametro «kernel»; quello che segue è un esempio:

kernel /vmlinuz-2.6.6s26-mio-kernel root=/dev/hda4 ro vga=numero

Sostituire la dicitura «numero» con con il valore scelto in precedenza aggiungendo ad esso 200. Se per esempio il valore è 0x103 nel parametro «kernel» bisognerà inserire il valore «vga=0x303».

È possibile inserire la modalità video in numero decimale effettuando la conversione con una calcolatrice scientifica. Per esempio scrivere «vga=0x303» equivale a scrivere «vga=771».

Per utilizzare il framebuffer è necessario abilitarne il supporto nel kernel. Tutti i kernel binari delle distribuzioni hanno questo supporto attivato, ma se viene ricompilato manualmente è necessario attivare il supporto al framebuffer.

Interfaccia grafica

Consultare la guida a Start-Up Manager.

Personalizzare la splashimage

Consultare la relativa guida.

Ulteriori risorse
fonte: Ubuntu.it

Se ti è piaciuto l'articolo, iscriviti al feed per tenerti sempre aggiornato sui nuovi contenuti del blog:

TiPI (Ti Potrebbe Interessare)

160x600    rotazione


12EUR_160x600.gif

LinuxLinks


Trovato questo articolo interessante? Condividilo sulla tua rete di contatti in Twitter, sulla tua bacheca su Facebook, in Linkedin, Instagram o Pinterest. Diffondere contenuti che trovi rilevanti aiuta questo blog a crescere. Grazie!

LINKEDIN