Come installare correttamente GRUB su un RAID 1 morbido?


21

Nella mia installazione, ho due dischi ciascuno formattato nel modo seguente:

(GPT)
1)  1MB   BIOS_BOOT
2)  300MB LINUX_RAID   
3)  *     LINUX_RAID   

Le partizioni di avvio sono mappate in / dev / md0, i rootfs in / dev / md1. md0 è formattato con ext2, md1 con XFS. (Capisco che la formattazione deve essere eseguita sui dispositivi md e non su sd - per favore dimmi se questo è sbagliato).

Come posso configurare correttamente GRUB in modo che se un'unità si guasta, l'altra si avvierà comunque? E per estensione, che un'unità sostitutiva includerà automaticamente anche GRUB? Se questo è persino possibile, ovviamente.

Risposte:


16

Se i due dischi sono /dev/sdae /dev/sdb, esegui entrambi grub-install /dev/sdae grub-install /dev/sdb. Quindi entrambe le unità saranno in grado di avviarsi da sole.

Assicurati che la tua configurazione di Grub non codifichi i dischi come (hd0), ma cerca invece gli UUID dei filesystem di avvio e root.

Non sono a conoscenza del supporto in Grub per dichiarare due dischi come in un array RAID-1 in modo da grub-installscrivere automaticamente su entrambi. Ciò significa che dovrai eseguire grub-installnuovamente l' esecuzione se sostituisci un disco; è un'altra cosa da fare oltre ad aggiungere nuovi membri agli array RAID.


1
"Assicurati che la tua configurazione di Grub non specifichi i dischi come (hd0), ma cerchi invece gli UUID dei filesystem di avvio e root." Come?
lifeofguenter

1
@lifeofguenter Withsearch
Gilles 'SO- smetti di essere malvagio'

1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux o guarda il file della tua distribuzione
Gilles

1
Su alcuni sistemi grub2-installinvece è grub-install.
ndemou,

1
Si noti che il RAID è a livello di partizione, non a livello del disco; se così fosse, non ci sarebbero problemi, poiché il mirroring rispecchierebbe anche l'MBR.
Marcos Dione,

3

L'ho fatto su diversi server in passato e ho riscontrato problemi a volte, di solito quello che faccio è eseguire il seguente

sudo grub-install /dev/sdb
sudo update-grub /dev/sdb

I problemi che ho riscontrato sono di solito visualizzati con messaggi di errore come

update-grub … update-grub failed with no such disk …

Per risolvere questo ho corso

sudo mv /boot/grub/device.map /boot/grub/device.map.old 
sudo update-grub 

e questo sembra aver risolto il problema - come test in alcuni casi ho rimosso /sdv/sdae utilizzato /dev/sdbper l'avvio ma questo non è l'ideale e molto probabilmente non è possibile nella maggior parte degli ambienti di produzione!


0

La mia esperienza con l'installazione di CentOS 5 e CentOS 6 è che durante la fase di installazione ho configurato RAID-1 in quel momento - l'installazione ti dà la possibilità di farlo. Ciò che è emerso è stato il seguente: 1. Definito / dev / sda1 come 1 GB come partizione RAID 2. Definito / dev / sdb1 come 1 GB come partizione RAID 3. Dispositivo RAID creato / dev / md0 composto da / dev / sda1 e / dev / sdb1 4. Creata la partizione / boot usando / dev / md0 5. Creata ulteriori partizioni usando i passaggi 1 - 3. 6. Implementato LVM su partizioni create nel passaggio 5 seguendo le istruzioni.

Dopo l'avvio iniziale del sistema, in grub.conf ho modificato la voce / dev / sda1 in / dev / md0. Ho quindi copiato la voce della linea splashimage che ha (hd0,0) e ho aggiunto un # all'inizio e modificato (hd0,0) in (hd1,0). Guardando le risposte sopra che mostrano come installare grub su / dev / sdb seguirle. Modifica fstab in modo che il punto di mount di avvio usi / dev / md0 (facendo questo, quando esegui un aggiornamento yum c'è qualcosa di aggiornato sulla partizione / boot verrà scritto su / dev / sda1 e / dev / sdb1 ). Se si verifica un errore del disco rigido / dev / sda, è necessario eseguire l'avvio utilizzando il ripristino e commentare la riga (hd0,0) e rimuovere il commento dalla riga (hd1,0). Il tuo sistema dovrebbe essere avviabile

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.