Un bootloader è quel programmino che, installandosi nell’mbr del disco di boot, all’avvio del PC ci mostra un menu da cui scegliere il sistema operativo con cui avviare il computer.

Volendo installare sullo stesso computer Windows e Linux è necessario installare per primo il sistema operativo della microsoft.
Il perchè è presto detto: Windows non è tollerante come Linux e se trova nel MBR un programma, lo cancella sostituendolo col suo. E il suo non riconosce (o non accetta) la presenza di altri sistemi operativi sullo stesso computer.
Il discorso è diverso con Linux.
Installandolo come secondo sistema operativo (anche su una partizione secondaria visto che non è così schizzinoso come Windows) prima di installare il boot loader fa una ricerca sui dischi fissi e se trova un qualche altro sistema operativo lo accoda al menu.
In questo modo al riavvio nel menu comparirà anche Windows.

Grub ha una sua cartella ed un suo file si configurazione.
La cartella è:
/boot/grub
Il file di configurazione:
menu.list
Per configurarlo (ciò può essere necessario se si aggiunge un disco fisso o se si cambia e/o aggiunge un kernel) apri con kwrite il file /boot/grub/menu.list. Il suo contenuto sarà simile a questo (le linee che cominciano con # sono commenti):

# Quale opzione viene avviata di default. 0 è la prima, 1 la seconda etc.
default 0
# Quanti secondi attendere prima di avviare l’opzione di default.
timeout 30
# Un’immagine gradevole
# Da commentare se non si dispone di scheda grafica
splashimage=(hd0,0)/grub/splash.xpm.gz

# ###0
title=SUSE LINUX 10.0
# La partizione dove si trova l’immagine del kernel (o il sistema operativo)
root (hd1,0)
kernel /vmlinuz root=/dev/sdb5 vga=0x31a selinux=0 resume=/dev/sda2 splash=silent showopts
initrd /initrd

# ### 1
title Gentoo
root (hd0,0)
kernel /vmlinuz root=/dev/sda3 ro console=tty0
savedefault
boot

# ###2
title Dischetto
chainloader (fd0)+1

# Le prossime quattro righe vanno messe solo se si ha un dualboot con Windows.
# In questo caso, Windows è in /dev/hda
# ###3
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Esaminiamo più da vicino la riga ‘kernel /vmlinuz root=/dev/sda3 ro console=tty0′.
E’ l’indicazione per Grub di dove si trova il kernel. In questo caso è nel primo disco, partizione 1 (hd0,0) della riga precedente.
‘vmlinuz’ è il nome del kernel. Nel nostro caso vmlinuz è un link ‘simbolico’ (un puntatore) (*) al kernel effettivo. Al suo posto potremmo scrivere il nome completo del kernel (ad esempio: vmlinuz-2.6.13.2-2-default.Tale sostituzione diventa necessaria se si installano diversi kernel per la stessa distribuzione: il link simbolico va bene per il primo kernel, ma per gli altri bisogna evidentemente indicare il nome completo.
Il termine ‘root=/dev/sda3’ indica a Grub dove si trova il file radice (terza partizione del primo disco).
Se il kernel ha bisogno dell’immagine initrd, a questa riga seguirà (come nel caso di Suse) la riga:
initrd /initrd
dove anche qui /intrd è un link simbolico e, volendo, può essere sostituito con il suo effettivo nome (ad esempio: /initrd-2.6.13.2-2-default.img). Tale sostituzione diventa necessaria se si installano diversi kernel per la stessa distribuzione: il link simbolico va bene per il primo initrd, ma per gli altri bisogna evidentemente indicare il nome completo.

(*) Link simbolico
Come utenti di Windows, avete probabilmente dimestichezza con i collegamenti (link), che sono quelle icone con freaccina, il cui nome inizia con ‘Collegamento a’.
E’ un sistema molto comodo per radunare in un unico posto le applicazioni e i documenti usati più frequentemente, che, materialmente, restano dov’erano. Il collegamento è un semplice rimando.

Linux ha due tipi di collegamenti:
il link fisico (hard link) che esegue una copia integrale del file cui è linkato (avrete così due files identici in diverse posizioni) e quello ‘simbolico’ o ‘soft’ che è uguale al link di Windows.
Se in /dev date un’occhiata ai vari devices, troverete probabilmente anche il device /dev/cdrom che non è affatto un device, ma un collegamento simbolico al vero device /dev/hdc
I collegamenti simbolici in Konqueror sono mostrati in ‘italico’ e mettendoci sopra il mouse appare nella parte inferiore di Konqueror la destinazione cui puntano..

Un link simbolico si fa col comando ln -s file_cui_si_punta nome_link
Ad esempio in /usr/src dovrebbe esserci la cartella simbolica ‘linux’ che punta alla cartella del sorgente del kernel in uso.
Se manca, la si crea spostandosi nella directory /usr/src e dando il comando:
ln – s /usr/src/nome_cartella_kernel_usato /usr/src/linux

Tags: Linux Grub HowTo

Annunci