¿Cómo instalar correctamente GRUB en un RAID 1 suave?

21

En mi configuración, tengo dos discos que están formateados de la siguiente manera:

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

Las particiones de arranque se asignan en / dev / md0, las rootfs en / dev / md1. md0 está formateado con ext2, md1 con XFS. (Entiendo que el formateo debe hacerse en los dispositivos md y no en sd, por favor dígame si esto está mal).

¿Cómo configuro GRUB correctamente para que si una unidad falla, la otra aún se iniciará? ¿Y por extensión, que una unidad de reemplazo incluirá automáticamente GRUB también? Si esto es posible, por supuesto.

vic
fuente

Respuestas:

16

Si los dos discos son /dev/sday /dev/sdb, ejecute ambos grub-install /dev/sday grub-install /dev/sdb. Luego, ambas unidades podrán arrancar solas.

Asegúrese de que su configuración de Grub no codifique discos rígidos (hd0), sino que busque los UUID de los sistemas de archivos de arranque y raíz.

No conozco el soporte en Grub para declarar dos discos como parte de una matriz RAID-1, de modo que grub-installse escriban automáticamente en ambos. Esto significa que deberá ejecutar grub-installnuevamente si reemplaza un disco; Es una cosa más que hacer además de agregar nuevos miembros a las matrices RAID.

Gilles 'SO- deja de ser malvado'
fuente
1
"Asegúrese de que su configuración de Grub no codifique discos duros como (hd0), sino que busque los UUID de los sistemas de archivos de arranque y raíz". ¿Cómo?
lifeofguenter
1
@lifeofguenter Withsearch
Gilles 'SO- deja de ser malvado'
1
gnu.org/software/grub/manual/grub/grub.html#GNU_002fLinux o mire el archivo de su distribución
Gilles 'SO- deje de ser malvado'
1
En algunos sistemas es en grub2-installlugar de grub-install.
ndemou
1
Tenga en cuenta que el RAID está a nivel de partición, no a nivel de disco; si lo fuera, no habría problema, ya que la duplicación también reflejaría el MBR.
Marcos Dione
3

Lo he hecho en varios servidores en el pasado y encontré problemas a veces, generalmente lo que hago es ejecutar lo siguiente

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

Los problemas con los que me he encontrado generalmente se muestran con mensajes de error como

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

Para resolver esto, he corrido

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

y esto parece haber resuelto el problema: como prueba, en algunos casos, he eliminado /sdv/sday solía /dev/sdbarrancar, ¡pero esto no es ideal y probablemente no sea posible en la mayoría de los entornos de producción!

Tony Doyle
fuente
0

Mi experiencia al instalar CentOS 5 y CentOS 6 es que durante la fase de instalación configuré el RAID-1 en ese momento, la instalación le da la opción de hacerlo. Lo que ocurrió fue lo siguiente: 1. Definido / dev / sda1 como 1 GB como una partición RAID 2. Definido / dev / sdb1 como 1 GB como una partición RAID 3. Dispositivo RAID creado / dev / md0 compuesto por / dev / sda1 y / dev / sdb1 4. Creé la partición / boot usando / dev / md0 5. Creé particiones adicionales usando los pasos 1 - 3. 6. Implementé LVM en particiones creadas en el paso 5 siguiendo las instrucciones.

Después del arranque inicial del sistema, en grub.conf alteré la entrada / dev / sda1 a / dev / md0. Luego copié la entrada de la línea splashimage the has (hd0,0) y agregué un # al principio y cambié (hd0,0) a (hd1,0). Mirando las respuestas anteriores que muestran cómo instalar grub en / dev / sdb, síguelas. Modifique el fstab para que el punto de montaje de arranque use / dev / md0 (al hacer esto, cuando realice una actualización de yum hay algo actualizado en la partición / boot, se escribirá tanto en / dev / sda1 como / dev / sdb1 ) Si tiene una falla en el disco duro / dev / sda, tendría que arrancar usando el rescate y comentar la línea (hd0,0) y descomentar la línea (hd1,0). Su sistema debe ser arrancable

Gene Poole
fuente