mrcnet Scrivere "Installare e configurare il boot loader Grub
1) Introduzione
1.1) Il boot
Quando installiamo un sistema operativo o accendiamo la nostra macchina, affinchè
questo parta, c'è bisogno di un programma che, dopo la fase di avvio e riconoscimento
dell'hardware da parte del BIOS, si occupi di avviare il kernel. Tale programma viene
chiamato "boot loader" e risiede all'inizio dell'hard disk o del floppy in un settore
chiamato Master Boot Record (MBR). Nel caso specifico di un floppy si parla di settore
di avvio o di boot, ma non cambia molto.
1.2) Linux e LiLO
Nel caso specifico di Linux, generalmente viene installato LiLo (LInux LOader)
che svolge davvero bene le sue funzioni, anche se alcune distribuzioni (per es.
Mandrake dalla versione 8 in poi) offrono la possibilità di installare a scelta anche
GRUB. Altri sistemi usano boot loader propri (es. FreeBSD usa BootEasy) e quasi
tutti sono abbastanza "democratici" nel senso che sono in grado di avviare anche altri
sistemi operativi perchè in grado di leggere diversi file systems (ext2, dos, ufs...).
1.3) Cos'è GRUB
GRUB è l'acronimo di GRand Unified Bootloader GNU ed è uno dei migliori loader per
lanciare Linux o altri sistemi operativi. E' indipendente da qualsiasi sistema e si può
definire come un piccolo sistema specificatamente adatto alle funzioni di boot. La sua
funzione è quella di riconoscere il filesystem e di lanciare l'immagine del kernel, ciò
attraverso un'interfaccia a menù oppure a liena di comando. Quest'ultima include anche
alcune utilità tipiche della bash (history, completamento comandi, ...). Inoltre, a suo
favore, esegue boot anche in partizioni dopo il 1024° cilindro (grave problema di LILO)
in modo da poter installare un kernel anche in partizioni che superano gli 8GB. Sia per
coloro che hanno un solo OS, o per coloro che devono gestire un multiboot o anche solo
per avere un floppy di avvio, GRUB può essere davvero utile, considerando che ha un peso
di soli 60K.
2) Installazione
2.1) Download e preparazione
Anche se molti di voi sono abituati a usare i pacchetti precompilati (tgz, deb, rpm),
è sempre meglio scaricare il sorgente e compilarselo da soli. Collegatevi a internet e
andate su http://www.gnu.org/software/grub/grub.html e scaricatevi il sorgente della sua
ultima versione stabile (io ho la 0.91 ma potrebbe essere stata già aggiornata). Copiate
il pacchetto in /usr/local/src/ e date i consueti comandi (da root):
~# tar -xfzv grub-VERSION.tar.gz
~# cd grub-VERSION
~# ./configure
~# make
~# make install
In questo modo verranno creati gli eseguibili grub, grub-install, mbchk, installati i
file di supporto in /usr/local/share/grub/i386-pc e le pagine di man (che consiglio di
leggere sempre).
2.2) Creazione di un floppy con GRUB
Per cominciare è sempre meglio creare un floppy di prova, così da prendere anche un
po' di confidenza, evitare errori e per avere un floppy pronto all'occorrenza. Come è
stato introdotto, GRUB legge numerosi filesystems, anche il Reiser se può interessarvi,
(vi consiglio di leggere le pagine di manuale per una lista completa) quindi anche il
floppy può avere una qualsiasi formattazione. Negli esempi verrà preso in considerazione
la FAT perchè immagino sia un caso abbastanza comune. Quindi prendete un floppy nuovo se
possibile e formattatelo in FAT:
Questi ultimi due comandi hanno creato una directory nel floppy e hanno copiato alcuni
file al suo interno, vedremo poi a cosa servono. A questo punto dovremo scrivere l'MBR
del floppy e l'installazione finale sarà completa. Procediamo con gli ultimi comandi:
~# grub
grub> root (fd0)
grub> setup (fd0)
grub> quit
~#
Fatto! L'installazione sul floppy è stata completata, ora sarete in grado di avviare da
floppy il sistema operativo che preferite configurando solo pochi dati.
2.3) Uso e configurazione (testuale)
Come sapete, ogni os ha una propria nomenclatura per le proprie periferiche, il che
potrebbe generare problemi e confusioni passando da un sistema all'altro. GRUB risolve
questo problema adottando una propria definizione dei devices proprio perchè deve agire
su più filesystem. Gli hard disk sono tutti "hd" ed i floppy tutti "fd" e la numerazione
parte da 0 come per le partizioni, mentre i nomi interi delle periferiche sono racchiusi
tra parentesi. EIDE o SCSI non fanno differenza. Eccovi alcuni esempi:
(hd0,0) -> prima partizione del primo hard disk
(fd0) -> primo floppy
Nota per gli uenti *BSD: dividendo le partizioni in slices, per indicare uno slice, si
deve aggiungere una lettera che indichi il suo ordine, es.: (hd0,0,a) corrisponde a / .
A questo punto potete subito fare una prova riavviando il pc con il floppy inserito ed
aspettare il prompt di grub. Volendo caricare Linux che risiede nella seconda partizione
del primo hard disk, dovrete digitare questi comandi:
Se non avete ricevuto messaggi di errore, il sistema partirà senza problemi. Il comando
"kernel" è molto flessibile ed offre la possibilità di indicare ulteriori parametri che
non riguardano il funzionamento di GRUB (periferiche scsi, read-only mode, etc) quindi
leggetevi la man per altre informazioni
2.4) Configurazione del menu
Per quanto interessante per fare esperimenti, lanciare i comandi a mano può rivelarsi
noioso alla lunga, quindi sarà meglio sfruttare il menu, che offre svariate possibilità
di configurazione (default, timeout, password, etc...). Tutto quello che bisogna fare è
inserire un file denominato menu.lst nella directory di grub ("/boot/grub" ricordate?) e
inserire poche righe. Un tipico file di esempio potrebbe essere questo:
# tempo per effetuare una scelta prima di usare quella di default
timeout 30
# imposta un sistema da caricare di default se non viene scelto nulla entro
# il timeout (lo 0 è riferito al primo sistema presente)
default 0
# colori del menu secondo la logica: primo_piano/sfondo
color white/black
# scelte sistemi:
# titolo indicante il sistema da caricare (puoi usare qualsiasi nome)
title My Linux
# questo è il caso di windows, se lo avete installato cambiate solo i parametri dell'hd
title winsux
rootnoverify (hd0,0)
makeactive
chainloader +1
boot
Gli spazi ed i "#" non vengono considerati, questi ultimi quindi sono usati per inserire
commenti come spesso accade per file di configurazione di altri programmi. La sintassi è
abbastanza intuitiva quindi è stata commentata poco, per altre informazioni c'è la man.
2.5) Installazione su hard disk
Vi piacerebbe che ve lo dicessi eh? Invece no, ho spiegato come vengono individuati i
devices e come si installa su un floppy, quindi dovreste essere in grado di poterlo fare
da soli senza problemi. Tirate fuori un po' di spirito smanettone e finalmente leggetevi
le pagine di man! Vediamo se ci riuscite; un indizio: sono 3 comandi :-)
3) Conclusioni
3.1) Ripristino errori
Nel caso qualcosa sia andato storto e volete ripristinare lo stato di prima, potete
usare fdisk con il comando da un floppy dos:
A:>fdisk /MBR
Ovviamente così cancellerete tutto quello che è contenuto nell'MBR (non nell'hard disk),
ma per togliere solo GRUB e rimettere LILO controllate che in /etc/lilo.conf esista una
riga contenente la scritta: boot=/dev/hda . Riavviate LILO ed esso sarà reinstallato in
automatico sull'MBR.
"
Postato il Friday, 22 October @ 20:01:08 CEST di admin