Il problema di avere il boot sul raid1 e` che se il primo disco muore, sarebbe bello poter fare il boot dal secondo. Premesso che non tutti i BIOS permettono il boot dal secondo disco, e che non e` cosi` detto che poi GRUB riesca a bootare dal secondo disco (cioe` a caricare il kernel correttamente), il miglior tentativo che si possa fare per prevenire tutti i problemi e` il seguente.
Dopo aver installato GRUB nell' MBR del primo disco (da dentro all'installer di Debian) e aver fatto il primo reboot, occorre prima di tutto installare GRUB correttamente anche sul secondo disco, dicendogli pero` che il kernel va cercato sul secondo disco (altrimenti il grub del secondo disco cerca il kernel sul primo disco, e se il primo disco e` rotto...)
I comandi che seguono vanno dati da root: il primo comando (grub) lancia grub, i seguenti fino a quit sono dati dentro la console di grub stesso.
grub root (hd0,0) setup (hd0) root (hd1,0) setup (hd1) quit
Poi e` opportuno (ma non fondamentale) modificare /boot/grub/menu.lst aggiungendo una copia della configurazione del kernel utile per bootare dal secondo disco se il primo e` rotto. Se non si fa questo passo, in caso di boot dal secondo disco occorre modificare al volo le righe di configurazione durante il boot mettendo (hd1,0) al posto di (hd0,0). La modifica consiste nel duplicare la configurazione del kernel che si vuole usare modificando solo la definizione del disco nel quale Grub deve cercare il kernel.
Se la configurazione prima era:
title Debian GNU/Linux, kernel 2.6.18-5-amd64 root (hd0,0) kernel /boot/vmlinuz-2.6.18-5-amd64 root=/dev/md0 ro initrd /boot/initrd.img-2.6.18-5-amd64 savedefault
La nuova configurazione sara`:
title Debian GNU/Linux, kernel 2.6.18-5-amd64 (disco primario) root (hd0,0) kernel /boot/vmlinuz-2.6.18-5-amd64 root=/dev/md0 ro initrd /boot/initrd.img-2.6.18-5-amd64 savedefault title Debian GNU/Linux, kernel 2.6.18-5-amd64 (disco secondario) root (hd1,0) kernel /boot/vmlinuz-2.6.18-5-amd64 root=/dev/md0 ro initrd /boot/initrd.img-2.6.18-5-amd64 savedefault
La seconda sezione e` copiata pari dalla prima, sono stati cambiati solo i titoli delle sezioni allo scopo di rendere piu` chiaro a cosa servono, e nella seconda sezione la riga "root" e` modificata da hd0 a hd1.
Questa versione e` totalmente rifatta, basandomi su un paio di installazioni che ho fatto in seguito. In fondo trovate la vecchia versione, noterete che e` totalmente diversa.
Ora, disponiamo di un device RAID1 (o 5) per installare "/" e uno per installare lo swap (se stiamo facendo il setup con root e swap tutti e due in raid).
Se i dischi erano usati, e` probabile che dentro ci sia della robaccia che potrebbe non andare giu` all'installer, quindi sulla seconda console diamo un bel "dd if=/dev/zero of=/dev/md/0" e lo lasciamo girare 30 secondi per spazzare via la parte iniziale del contenuto di /dev/md0.
* Uscire e rientrare dal partizionatore in modo da fargli capire che il disco md0 e` vuoto (pieno di zeri) * Selezionare lo spazio libero nei vari device RAID e configurarlo per essere usato come quello che si vuole (md0 sara` ext3 montato come "/") * Uscire dal partizionatore, salvando tutto. Dovrebbe formattare in ext3 senza dare errori di alcun tipo. * Procedere con l'install dal base system * **IMPORTANTE:** installare LILO scegliendo l'opzione "installa in MBR" dentro a "/dev/md/0" * '''IMPORTANTE:''' Non tentare di rendere bootabile /dev/md/0, quindi rispondere **NO** quando LILO lo chiede * Lilo dovrebbe installarsi senza rompere, e siete di nuovo al menu` principale dell'installer. Ora occorre modificare un paio di cose. * Passare alla seconda console con "alt-f2" e: * Verificare che /dev/md/0 sia montato sotto /target (dovrebbe esserlo) * Eseguire ''chroot /target'' * Editare lilo.conf con ''vi /etc/lilo.conf'' * Inserire in testa al file queste righe: (/dev/hda e /dev/hdc sono i dischi fisici, nell'esempio)
<code>
raid-extra-boot=/dev/hda,/dev/hdc lba32 }}} * Eseguire ''lilo -v'' e vedere l'output, dovrebbe elencare il fatto che sta creando copie del boot sector tutti e due i dischi fisici che compongono il raid. * Se ha funzionato, uscire dal chroot e procedere con l'installazione. * **IMPORTANTE:** non riavviare fino alla fine del sync del raid.
Teoricamente con il nuovo installer installare direttamente la root su un raid software (1,0, o 5) dovrebbe essere semplice, invece non lo e` affatto. Vuoi perche` l'installer di Sarge non e` il massimo, vuoi perche` ci sono alcuni accorgimenti non banali da prendere in considerazione.
Il bello di questo metodo e` che usando un raid ridondante (1 o 5) e una macchina con un BIOS non proprio decrepito, il sistema boota senza problemi anche se si rompe il disco primario, perche` il boot sector e` copiato anche sul secondo disco. Il boot sector sara` correttamente creato su tutti e due i dischi ogni volta che si lancera` LILO, anche dopo l'installazione.
Questa procedura e` scritta a memoria quindi potrei avere fatto errori. La prima volta che installo una macchina nuova la controllo passo passo.
L'esempio che segue vale per il raid1, ma per le altre versioni la sostanza non cambia.
'IMPORTANTE:
' Non tentare di rendere bootabile /dev/md/0, quindi rispondere NO quando LILO lo chiedechroot /target
vi /etc/lilo.conf
<code>
raid-extra-boot=mbr lba32 }}} * Eseguire ''lilo -v'' e vedere l'output, dovrebbe elencare il fatto che sta creando copie del boot sector tutti e due i dischi fisici che compongono il raid. * Se ha funzionato, uscire dal chroot e procedere con l'installazione.
Note: