Creazione di un cd di soccorso


In rete avrete sicuramente trovato miriadi di guide che vi spiegano come installare 
GRUB su un floppy il che vi permettera' di fare partire il sistema operativo  
anche con il MBR corrotto. 
Dato che ormai i floppy non sono piu' in uso oggiorno sara' quindi utile sapere
come  fare a mettere GRUB su cd. In questa guida verra' spiegato come ottenere 
una immagine ISO da masterizzare e che ci permettera' di ottenere il nostro cd di 
soccorso. Tenete presente che sia il cd che il floppy di ripristino potranno esservi 
INDISPENSABILI se avete la sfortuna di dover installare Windows successivamente a 
Linux perche' quest'ultimo vi formattera' il vostro MBR per piazzarci il suo 
bootloader e voi non sarete piu' in grado di far partire il vostro amato Linux. 
In questo caso potrete fare partire il sistema grazie al cd o al floppy di soccorso 
e poi potrete reinstallare grub (apt-get install grub) e configurarlo per far partire 
tutti i sistemi operativi presenti sul vostro PC.


GRUB e' composto  da due parti stage1 e stage2 le quali vanno opportunamente
copiate su floppy quando intendiamo creare un floppy di soccorso, ma quando 
dobbiamo creare il nostro cd di soccorso ci serve solo stage2, anzi per esseri 
precisi ci serve un particolare tipo di stage2 chiamato El Torito.

Per prima cosa dobbiamo vedere dove si trova stage2_eltorito all'interno del 
nostro sistema per farlo ci sono diversi modi ad esempio si puo' fare col comando
locate:
Debian:~$ locate eltorito

il quale ci dira' che esso si trova in /lib/grub/i386-pc/stage2_eltorito (su una 
distribuzione non Debian la posizione potrebbe essere diversa ma il metodo di 
ricerca e' lo stesso). Se non lo trovate provate ad aggiornare il database dei 
nomi dei file col comando updatedb e poi riprovate con locate.

una volta localizzato stage2_eltorito creiamo la nostra base di lavoro creando 
un cartella che ad es. possiamo chiamare iso

Debian:~$ mkdir iso

Creiamo una directory per GRUB

Debian:~$ mkdir -p iso/boot/grub

a questo punto copiamoci dentro stage2_eltorito

Debian:~$ cp /lib/grub/i386-pc/stage2_eltorito iso/boot/grub

volendo e' possibile copiare dentro iso/boot/grub anche il nostro /boot/grub/menu.lst
in modo da avere un cd di ripristino fatto su misura per la nostra macchina ma questo 
potrebbe causare dei problemi perche' alcune opzioni di boot presenti nel nostro menu.lst
non possono essere usate ad es. acpi=noirq o vga=792

infine creiamo un immagine ISO9660 come questa:

Debian:~$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
         -boot-load-size 4 -boot-info-table -o grub.iso iso

abbiamo finito, adesso abbiamo una immagine iso da masterizzare che ci permettera'
di creare il nostro cd di soccorso

per completezza indichiamo anche come fare il floppy di soccorso

# cd /lib/grub/i386-pc (su una distro non Debian i percorsi potrebbero essere 
leggermente differenti)

# dd if=stage1 of=/dev/fd0 bs=512 count=1

# dd if=stage2 of=/dev/fd0 bs=512 seek=1


l'utilizzo del cd o del floppy e' abbastanza semplice; appena fatto il boot 
da cd o da floppy ci comparira' dinanzi un ambiente minimale in cui non dovremo
fare altro che riprodurre la configurazione del nostro file menu.lst. Segue 
un esempio:

grub root  (hd0,0)

grub kernel /vmlinuz-2.6.8-2-686 root=/dev/hda2 

grub initrd /initrd.img-2.6.8-2-686

grub boot