Instalar y preparar GRUB2 para un RAID1 en un sistema LVM en vivo
Objetivo principal y variantes relacionadas
Este artículo explica cómo preparar e instalar GRUB2 en un sistema en ejecución con LVM y RAID1 por software (mdadm), de modo que el sistema pueda arrancar desde cualquiera de los discos. Variantes relacionadas: instalación de GRUB con RAID en particiones /boot, GRUB en GPT vs MBR, recuperación de arranque tras fallo de disco, configuración de mdadm.conf y regeneración de initramfs.
6 Preparar GRUB2
A continuación debemos asegurarnos de que el cargador de arranque GRUB2 esté instalado en ambos discos duros, /dev/sda y /dev/sdb:
grub-install /dev/sda
grub-install /dev/sdb
Ahora reiniciamos el sistema y comprobamos que arranca correctamente desde nuestros arrays RAID:
reboot
Important: instala GRUB en ambos discos para evitar dependencia de un único dispositivo. Si usas UEFI, los pasos de instalación de GRUB y las particiones EFI cambian (ver sección de alternativas).
7 Preparar /dev/sda
Si todo va bien, ahora deberías encontrar /dev/md0 en la salida de:
df -h
Ejemplo de salida esperada:
root@server1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/server1-root
4.5G 722M 3.6G 17% /
tmpfs 249M 0 249M 0% /lib/init/rw
udev 244M 128K 244M 1% /dev
tmpfs 249M 0 249M 0% /dev/shm
/dev/md0 236M 18M 206M 8% /boot
root@server1:~#
La salida de:
cat /proc/mdstat
debería ser similar a la siguiente:
root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda5[2] sdb5[1]
4989940 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sdb1[1]
248820 blocks super 1.2 [2/1] [_U]
unused devices:
root@server1:~#
Y las salidas de pvdisplay, vgdisplay y lvdisplay deberían mostrar tus volúmenes físicos, grupos de volúmenes y volúmenes lógicos tal como en el ejemplo:
pvdisplay
root@server1:~# pvdisplay
--- Physical volume ---
PV Name /dev/md1
VG Name server1
PV Size 4.76 GiB / not usable 1012.00 KiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 1218
Free PE 0
Allocated PE 1218
PV UUID W4I07I-RT3P-DK1k-1HBz-oJvp-6in0-uQ53KS
root@server1:~#
vgdisplay
root@server1:~# vgdisplay
--- Volume group ---
VG Name server1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 4.76 GiB
PE Size 4.00 MiB
Total PE 1218
Alloc PE / Size 1218 / 4.76 GiB
Free PE / Size 0 / 0
VG UUID m99fJX-gMl9-g2XZ-CazH-32s8-sy1Q-8JjCUW
root@server1:~#
lvdisplay
root@server1:~# lvdisplay
--- Logical volume ---
LV Name /dev/server1/root
VG Name server1
LV UUID 8SNLPE-gHqA-a2LX-BO9o-0QQO-DV2z-3WvTYe
LV Write Access read/write
LV Status available
# open 1
LV Size 4.51 GiB
Current LE 1155
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Name /dev/server1/swap_1
VG Name server1
LV UUID kYaKtb-vkkV-TDDE-me1R-nnER-dzN8-BcVTwz
LV Write Access read/write
LV Status available
# open 1
LV Size 252.00 MiB
Current LE 63
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
root@server1:~#
Cambiar tipo de partición de /dev/sda1
Ahora debemos cambiar el tipo de partición de /dev/sda1 a Linux raid autodetect:
fdisk /dev/sda
Ejemplo de sesión interactiva:
root@server1:~# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): <-- t
Partition number (1-5): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Command (m for help): <-- w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
root@server1:~#
Nota: si fdisk advierte que la tabla no se pudo releer, ejecuta partprobe o reinicia para que el kernel use la nueva tabla.
Añadir /dev/sda1 a /dev/md0
Ahora podemos añadir /dev/sda1 al array RAID /dev/md0:
mdadm --add /dev/md0 /dev/sda1
Comprueba el estado con:
cat /proc/mdstat
Salida esperada tras añadir la partición:
root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda5[2] sdb5[1]
4989940 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[2] sdb1[1]
248820 blocks super 1.2 [2/2] [UU]
unused devices:
root@server1:~#
Actualizar mdadm.conf y eliminar scripts antiguos de GRUB
Ajusta /etc/mdadm/mdadm.conf a la nueva situación:
cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
/etc/mdadm/mdadm.conf debería ahora contener definiciones de arrays similares a las siguientes:
cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
# This file was auto-generated on Tue, 24 May 2011 21:11:37 +0200
# by mkconf 3.1.4-1+8efb9d1
ARRAY /dev/md/0 metadata=1.2 UUID=6cde4bf4:7ee67d24:b31e2713:18865f31 name=server1.example.com:0
ARRAY /dev/md/1 metadata=1.2 UUID=3ce9f2f2:ac89f75a:530c5ee9:0d4c67da name=server1.example.com:1
Ahora eliminamos el script heredado que ya no necesitamos:
rm -f /etc/grub.d/09_swraid1_setup
… y actualizamos la configuración del cargador GRUB2 y el initramfs:
update-grub
update-initramfs -u
Si inspeccionas /boot/grub/grub.cfg, deberías encontrar que las entradas (menuentry) en la sección ### BEGIN /etc/grub.d/10_linux ### están configuradas para arrancar desde /dev/md0 en lugar de (hd0) o (hd1). Por eso ya no es necesario /etc/grub.d/09_swraid1_setup.
Finalmente, asegúrate de que GRUB2 esté instalado en ambos discos (repetido intencionadamente para confirmar la redundancia):
grub-install /dev/sda
grub-install /dev/sdb
Reinicia el sistema:
reboot
Debería arrancar sin problemas.
Resumen rápido de pasos (mini-metodología)
- Verifica que /dev/md0 y LVM están activos (df -h, cat /proc/mdstat, pv/vg/lvdisplay).
- Cambia el tipo de partición en /dev/sda1 a fd (Linux raid autodetect).
- Añade /dev/sda1 al array md0 con mdadm –add.
- Regenera /etc/mdadm/mdadm.conf con mdadm –examine –scan.
- Elimina scripts obsoletos de GRUB y actualiza grub + initramfs.
- Instala GRUB en ambos discos y reinicia.
Criterios de aceptación
- /dev/md0 aparece en df -h y está montado en /boot.
- cat /proc/mdstat muestra ambos miembros como [UU] (o al menos el array en proceso de sincronización sin errores).
- /etc/mdadm/mdadm.conf contiene entradas ARRAY para /dev/md0 y /dev/md1.
- grub.cfg contiene menuentry configuradas para arrancar desde /dev/md0.
- El sistema arranca en modo normal desde cualquiera de los discos tras un reinicio.
Pruebas recomendadas (casos de aceptación)
- Reinicio normal: el sistema arranca sin intervención.
- Extraer temporalmente uno de los discos (o marcarlo como fallido) y reiniciar: el sistema debe seguir arrancando desde el otro disco.
- Restaurar el disco y verificar que la sincronización de mdadm completa correctamente.
- Arranque desde un entorno de rescate y comprobar que los dispositivos /dev/md* y LVM están accesibles.
Runbook de incidentes: el sistema no arranca
- Arranca desde un Live-CD/USB que soporte LVM y mdadm.
- Monta los dispositivos RAID: mdadm –assemble –scan
- Activa volúmenes LVM: vgchange -ay
- Chroot al sistema (mount /dev/mapper/
-root /mnt; mount –bind /dev /mnt/dev …). - Reinstala GRUB en ambos discos: grub-install /dev/sda; grub-install /dev/sdb.
- Regenera initramfs: update-initramfs -u
- Sal del chroot, desmonta y reinicia.
Nota importante: si el sistema usa UEFI, en lugar de grub-install tradicional necesitas montar la partición EFI y usar grub-install –target=x86_64-efi –efi-directory=/boot/efi.
Checklist por rol
- Administrador (responsable de configuración): confirmar diseño de particiones, policy de backup, verificar mdadm.conf y UUIDs.
- Operaciones (ejecución): ejecutar comandos en orden, monitorizar mdstat, coordinar reinicios en ventana de mantenimiento.
- Soporte SRE (recuperación): conocer runbook de arranque, preparar Live-USB y credenciales de consola fuera de banda.
Alternativas y casos donde no aplica
- Si tu sistema usa UEFI exclusivamente con particiones ESP, los pasos de grub-install cambian: instala a la partición EFI y registra entradas en el firmware.
- Si /boot está en una partición separada no replicada por RAID, este enfoque de RAID1 para /boot no aplica.
- Para entornos con ZFS o btrfs, el manejo del gestor de arranque y del initramfs puede diferir.
Riesgos y mitigaciones
- Riesgo: perder ambos cargadores si no se instaló GRUB en ambos discos.
Mitigación: siempre ejecutar grub-install en ambos dispositivos y verificar. - Riesgo: interrupción por reinicio durante cambios en la tabla de particiones.
Mitigación: programar ventana de mantenimiento y tener acceso a consola física/virtual.
Pequeño glosario (1 línea cada término)
- mdadm: herramienta de Linux para gestionar RAID por software.
- RAID1: espejo de dos o más discos para redundancia.
- LVM: gestor de volúmenes lógicos que permite flexibilidad en discos y particiones.
- initramfs: imagen inicial usada por el kernel para montar root y preparar el arranque.
Notas finales
Si has seguido todos los pasos y comprobaciones, has completado la preparación de GRUB2 y la integración de /dev/sda en el RAID1 sobre LVM. Mantén copias de seguridad recientes y documenta los UUIDs y la configuración de mdadm.conf para facilitar futuras recuperaciones.
Resumen: has configurado la redundancia de arranque instalando GRUB2 en ambos discos, ajustado particiones para RAID, añadido la partición al array, actualizado la configuración del sistema y verificado que el sistema arranque correctamente.
Materiales similares

Instalar Linux en Android paso a paso

Sincronizar archivos entre equipos sin la nube

Solución: Hogwarts Legacy se cierra en PC

Montaje y puesta en marcha de tu PC — guía práctica
