IL BOOT LOADER
Il bootloader è un piccolo programma utilizzato, come suggerisce il nome stesso, per il boot del sistema.
Spesso si commette l'errore di identificare il bootloader con il programma che lo fornisce. In realtà non è
propriamente così : ci sono degli script (i due più usati sono LILO e GRUB) che forniscono il bootloader.
Il funzionamento di un booloader lo si può sintetizzare e semplificare in poche fasi:
- in un primo momento, il BIOS della macchina carica il bootloader;
- questo, in seguito, carica il kernel del sistema o i "boot sectors" di altri sistemi operativi (come Windows)
passando ad altri programmi la successiva operazione di boot.
A questo punto la funzione del boot loader è terminata ed inizia la vera e propria fase di bootstrap del
sistema operativo.
Ma dove risiede il bootloader?
Ecco, il bootloader risiede dove vogliamo noi.
Nel senso che durante l’installazione di Linux (generalmente verso la fine, ma alcune distro anche subito), vi
apparirà la domanda “Dove vuoi installare il bootloader” e di seguito almeno due opzioni:
-
MBR (Master Boot record);
Partizione di root (cioè stesso disco/partizione dove abbiamo appena installato linux).
L’MBR è una particolare zona del disco, corrispondente ai primi 512 byte di un disco, che può essere divisa
in due parti (sarebbero in verità tre ma per semplicità non consideriamo l'ultima): la zona del "Program
Code", di 446 byte, e la "Partition Table", di 64 byte. La prima non è altro che la locazione dove fisicamente
viene installato il bootloader, mentre la seconda, come il nome stesso suggerisce, è utilizzata per definire le
partizioni presenti sul disco.
Semplificando: L'MBR è un'area speciale del disco fisso caricata automaticamente dal BIOS del vostro
computer e il boot loader assume il controllo del processo di avvio proprio da quest'area.
Se invece utilizzate la Partizione di Root, sarà il boot loader già presente nell’MBR a prendere il controllo del
nuovo sistema operativo.
Io consiglio questa ultima soluzione SOLO se si sta installando un Linux assieme ad un altro Linux.
Se invece state installando Linux in un sistema in cui è presente anche Windows SE NON volete avere
problemi, installate il bootloader sull’MBR. Ripristinare in futuro l’MBR per avere solo windows è
un’operazione assai facile e necessita solo del cd di installazione di Windows.
Se non desiderate ‘scrivere’ sul vostro hd il bootloader potete usare un floppy:
Alcune distribuzioni chiedono di creare un dischetto di avvio. Il bootloader con i vari sistemi operativi sarà
scritto su questa unità. Ovviamente si dovrà avere l’accortezza di impostare il bios per fare il boot da floppy.
Se scegliete questa strada, impostate il floppy in sola lettura al termine della creazione.
P.S: I floppy sono sicuri come il sedere di un neonato che si è sparato una confezione di SunSweet. Siete
avvertiti. Inoltre i nuovi pc manco lo montano più.
GRUB
La ragione per cui consiglio Grub a che è alle prime armi è la caratteristica, unica, di poter scrivere da zero o
modificare, in fase di boot, i comandi per fare partire un kernel, il tutto con l'ausilio dell'autocompletamento.
Se Grub è installato, al boot comparirà il classico menù con le voci per ogni sistema operativo installato. A
questo punto premendo "e" si entra in modalità editing e si possono modificare le voci del menu iniziale
oppure si possono inserire i comandi per fare partire un altro kernel non presente nel menu. Grub può
leggere le varie partizioni e visualizzare i nomi dei file, e grazie all'autocompletamento si è sicuri di non
sbagliare il percorsi o i nomi dei file. In questo modo è facile fare velocemente molte prove con kernel o
parametri di boot diversi, al volo, senza dover modificare alcun file.
Con LILO, invece,per modificare un parametro di boot o fare partire un nuovo kernel è necessario avviare il
sitema, modificare lilo.conf, eseguire il comado /sbin/lilo e riavviare.
Con Grub basta invece scrivere le modifiche al boot: se c'è un errore ed il kernel non si carica basta
resettare il sistema e provare di nuovo.
Trovati i parametri giusti si possono salvare in /boot/grub/menu.lst in modo che non sia più necessario
inserirli a mano.
Non voglio addentrami troppo nella configurazione di grub per il momento (in rete trovate molte guide), ma
giusto per capire come vengono gestiti i sistemi operativi, dovete sapere che Grub numera sia i dischi che le
partizioni, e lo fa partendo da 0, quindi il disco hda corrisponde ad hd0, e il numero della partizione è di una
unità in meno rispetto al numero che ha sotto linux.
Se fosse /dev/hda1 vedremmo: root (hd0,0), chiaro?
Il menu di grub si imposta tramite il file /boot/grub/menu.lst.
L'intestazione di questo file può contenere molti comandi. L’operazione più semplice è cambiare il sistema
operativo di partenza.
Aprendo con un editor (tipo vi) con privilegi di root il file menù.lst troveremo due righe del genere
default
timeout
0
5
0 significa che dopo 5 secondi partirà il primo sistema operativo dell’elenco sottostante (grub parte da 0).
Quindi se al 3 posto avessimo il percorso che avvia Windows basta modificare:
deafult 0 in default 2
salvare, uscire e rifare il boot.
Da leggere: http://it.wikipedia.org/wiki/GRUB
LILO
[da fare, non sono ferratissimo su lilo, non vorrei scrivere inesattezze]
BOOT LOADER alternativi a LILO e GRUB
LOADLIN
Il funzionamento di LOADLIN, visto daun punto di vista non tecnico, è semplicissimo: nel file
AUTOEXEC.BAT (o CONFIG.SYS) è inserita una chiamata a LOADLIN stesso e, tramite un file come
BOOT.SYS che contiene i dati per i sistemi operativi da avviare, è possibile effettuare la scelta del sistema
da avviare. Il vantaggio di LOADLIN si fa sentire quando si installa Linux su un disco che già ospita
Windows: non è necessario ridefinire o modificare alcun settore di boot, visto che LOADLIN non va a
scriverci ma è richiamato dopo che l'MBR è stato letto.
È disponibile all'indirizzo: http://elserv.ffm.fgan.de/~lermen/
SYSLINUX
SYSLINUX è un programma MS-DOS molto simile a LOADLIN.
È disponibile all'indirizzo: http://syslinux.zytor.com/