Migración y arranque desde RAID con mdadm y GRUB
Objetivo y alcance
Este procedimiento describe los pasos finales de una migración en los que:
- Se obtienen los UUID de los sistemas de archivos en los dispositivos RAID.
- Se actualiza /mnt/raid/etc/fstab para apuntar a UUID en lugar de particiones físicas.
- Se copia y adapta la configuración de GRUB desde la copia en el array RAID hacia /boot.
- Se reinicia el equipo, se comprueba el arranque desde el nuevo disco y se convierte el disco antiguo en miembro del RAID.
- Se instala el registro de arranque en ambos discos para tolerancia a fallos (GRUB clásico).
Audiencia: administradores de sistemas Linux con experiencia básica en mdadm, montaje de sistemas de archivos y GRUB.
Nota importante: estas instrucciones asumen GRUB clásico (legacy). Si usas GRUB2, sigue las instrucciones específicas para GRUB2 en otra guía.
Antes de empezar
Requisitos mínimos:
- Acceso como root o sudo en la máquina.
- mdadm instalado y arrays activos (/dev/mdX).
- Disco nuevo (ya sincronizado en RAID) montado temporalmente en /mnt/raid.
- Copia de seguridad previa de /etc/fstab y /boot/grub/menu.lst si lo deseas.
Importante: no borres discos ni ejecutes comandos destructivos sin confirmar las rutas. Verifica dos veces las particiones con fdisk -l.
1) Obtener los UUID de los sistemas de archivos RAID
Abre otra consola y ejecuta:
blkid | grep /dev/md
Verás el UUID de cada sistema de archivos en los dispositivos md. Debe lucir similar a:
/dev/md0: UUID="0b0fddf7-1160-4c70-8e76-5a5a5365e07d" TYPE="ext2"
/dev/md1: LABEL="/ROOT" UUID="36d389c4-fc0f-4de7-a80b-40cc6dece66f" TYPE="ext4"
/dev/md2: UUID="47fbbe32-c756-4ea6-8fd6-b34867be0c84" TYPE="ext4"
/dev/md3: LABEL="/VAR" UUID="f92cc249-c1af-456b-a291-ee1ea9ef8e22" TYPE="ext4"
Apunta o copia el UUID correspondiente a /dev/md0 (normalmente /boot) y al /dev/md1 (root) para actualizar fstab.
2) Montar la copia RAID y editar /etc/fstab
Monta el array donde tienes la copia del sistema:
mount /dev/md1 /mnt/raid
Abre /mnt/raid/etc/fstab y reemplaza la línea que monta /boot por la referencia a UUID del nuevo /dev/md0. Por ejemplo:
UUID=0b0fddf7-1160-4c70-8e76-5a5a5365e07d /boot ext2 defaults 1 1
Luego repite lo mismo para la línea que monta la raíz (/), usando el UUID de /dev/md1:
UUID=36d389c4-fc0f-4de7-a80b-40cc6dece66f / ext4 defaults 1 1
Nota: por ahora conserva comentadas las líneas alternativas si las vas a usar más adelante; el ejemplo que seguiremos deja las actuales líneas para /var y /home intactas, y añade nuevas entradas físicas comentadas para referencia.
Ejemplo para /var (añadir la nueva entrada física y mantener la UUID comentada):
/dev/sdb5 /var ext4 defaults 1 2
#UUID=47fbbe32-c756-4ea6-8fd6-b34867be0c84 /var ext4 defaults 1 2
Ejemplo para /home:
/dev/sdb6 /home ext4 defaults 1 2
#UUID=f92cc249-c1af-456b-a291-ee1ea9ef8e22 /home ext4 defaults 1 2
Cuando termines, desmonta la copia:
umount /mnt/raid
3) Actualizar la entrada del kernel en GRUB dentro del RAID
Monta /dev/md0 de nuevo en /mnt/raid si necesitas editar grub en la copia:
mount /dev/md0 /mnt/raid
Edita /mnt/raid/grub/menu.lst y cambia la entrada de kernel para que apunte al root sobre el dispositivo RAID:
kernel PATH-TO-KERNEL ro root=/dev/md1 SOME OPTIONS
Asegúrate de que no exista una opción que excluya dispositivos md. Para confirmar que el sistema arrancará desde el array, copia los archivos:
cp /mnt/raid/grub/menu.lst /boot/grub/menu.lst
cp /mnt/raid/etc/fstab /etc/fstab
Nota: puedes hacer copias de seguridad antes de sobrescribir—es seguro, pero opcional.
4) Reiniciar y seleccionar el disco de arranque en BIOS
Reinicia la máquina:
reboot
Entra en la BIOS del sistema y elige el disco nuevo (el que contiene la copia RAID o el disco designado) como el dispositivo de arranque primario. Guarda la configuración y arranca.
5) Convertir el disco antiguo a particiones RAID
Si el reinicio fue correcto y el sistema arrancó desde el RAID, convierte las particiones del disco antiguo para que sean del tipo RAID (0xfd). Primero identifica qué disco es el antiguo:
fdisk -l
Localiza el disco que todavía muestra particiones tipo 83 (Linux) —ese será el disco antiguo.
Con fdisk, cfdisk o parted cambia el tipo de partición a 0xfd en las particiones correspondientes (por ejemplo sdb1, sdb2, sdb5, sdb6). Asumimos que el disco antiguo aparece como /dev/sdb.
Después ejecuta:
partprobe
A continuación, añade esas particiones al RAID para completar los arrays:
mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2
mdadm /dev/md2 -a /dev/sdb5
mdadm /dev/md3 -a /dev/sdb6
Para monitorizar el progreso en otra consola como root:
watch -n 5 cat /proc/mdstat
Salida de ejemplo actualizada cada 5 segundos:
Personalities : [raid1]
md1 : active raid1 sdb3[1] sda3[0]
473792 blocks [2/2] [UU]
[===>.................] recovery 25.0% (118448/473792) finish=2.4min speed=2412
md2 : active raid1 sdb5[1] sda5[0]
4980032 blocks [2/2] [UU]
resync=DELAYED
md3 : active raid1 sdb6[1] sda6[0]
3349440 blocks [2/2] [UU]
resync=DELAYED
md0 : active raid1 sdb1[1] sda1[0]
80192 blocks [2/2] [UU]
unused devices:
Cuando todos los dispositivos md hayan terminado la recuperación/resincronización, el sistema será completamente redundante y funcional.
6) Instalar el registro de arranque en el segundo disco (GRUB clásico)
Para que el sistema pueda arrancar si el primer disco falla, instala el MBR de GRUB en el otro disco. Abre un shell de grub como root:
# grub
En el prompt de grub:
grub> root (hd1,0)
Deberías ver un mensaje del tipo:
Filesystem type is ext2fs, partition type is 0xfd
Luego ejecuta:
grub> setup (hd1)
Salida de ejemplo (resumen):
Checking if "/boot/grub/stage1" exists ... no
Checking if "/grub/stage1" exists ... yes
Checking if "/grub/stage2" exists ... yes
Checking if "/grub/e2fs_stage1_5" exists ... yes
Running "embed /grub/e2fs_stage1_5 (hd1)" ... 16 sectors embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+16 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
Repite el proceso en el primer disco:
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
Reinicia para comprobar:
reboot
Si el arranque funciona, prueba desconectando el disco primario (por ejemplo sda) y confirma que el sistema arranca únicamente desde el segundo disco. Luego viceversa: reconecta sda y desconecta sdb para verificar que también arranca desde el otro disco.
7) Mejoras posteriores: rendimiento y redundancia
Sugerencias prácticas:
- Ajusta read-ahead y scheduler si buscas rendimiento (ej.: tune2fs, blockdev –setra).
- Revisa /etc/mdadm/mdadm.conf y actualiza el ARRAY con –detail –scan para persistencia.
- Configura alertas por correo o monitoring para eventos mdadm (mdadm –monitor).
- Considera usar GRUB2 si necesitas características modernas (mejor gestión de UUID, soporte para LVM, RAID más complejo).
Nota: cambios avanzados requieren pruebas en entorno de staging.
Lista de comprobación rápida (para el administrador)
- Copia de seguridad de /etc/fstab y /boot/grub/menu.lst
- UUIDs verificados con blkid
- fstab en /mnt/raid actualizado y copiado a /etc/fstab
- menu.lst actualizado y copiado a /boot/grub/menu.lst
- BIOS apuntando al disco esperado
- Particiones del disco antiguo cambiadas a tipo 0xfd
- Particiones añadidas a md con mdadm -a
- Sincronización de md en /proc/mdstat completada
- MBR de GRUB instalado en ambos discos
- Pruebas de desconexión de discos realizadas
Runbook de incidentes rápido
Si el sistema no arranca después de estas operaciones:
- Arranca desde un LiveCD o modo rescate.
- Monta la partición raíz del array: mount /dev/md1 /mnt/raid
- Comprueba /mnt/raid/etc/fstab por errores de UUID o sintaxis.
- Revisa /mnt/raid/boot/grub/menu.lst y /boot/grub/menu.lst para rutas de kernel incorrectas.
- Reinstala GRUB en el disco que quieras que arranque: grub -> root (hdX,0) -> setup (hdX).
- Si md no está activo, reconstruye arrays con mdadm –assemble –scan.
Mini-metodología para migraciones RAID seguras
- Preparación: inventario de particiones y UUIDs, copia de seguridad.
- Prueba en staging: simular corte de disco y recuperación.
- Ejecución en producción: montar copia, actualizar fstab y grub, reiniciar.
- Validación: comprobar arranque, sincronización y redundancia.
- Documentación: anotar cambios, guardar mdadm.conf y copias de seguridad.
Glosario (una línea cada término)
- mdadm: herramienta para gestionar arrays RAID en Linux.
- UUID: identificador universal único para sistemas de archivos.
- MBR: registro de arranque maestro, necesario para arrancar sistemas con BIOS.
- GRUB clásico: gestor de arranque legacy; distinto de GRUB2.
Riesgos y mitigaciones
- Riesgo: error en /etc/fstab que impide el arranque. Mitigación: mantener una copia y probar con LiveCD.
- Riesgo: partición equivocada modificada. Mitigación: verificar con fdisk -l antes y después, y usar nombres persistentes si es posible.
- Riesgo: fallo al instalar GRUB. Mitigación: probar instalación en ambos discos y comprobar con desconexiones controladas.
Resumen
Sigue los pasos descritos para apuntar /etc/fstab a UUIDs del array RAID, actualizar GRUB en la copia RAID, convertir el disco antiguo en miembro del RAID y asegurar que el MBR de GRUB esté instalado en ambos discos. Verifica sincronización en /proc/mdstat y realiza pruebas de desconexión para confirmar tolerancia a fallos.
Notas: si tu sistema usa GRUB2 o LVM, adapta los pasos a las peculiaridades de esas configuraciones.
Materiales similares

Cómo encontrar dirección y teléfono en línea

Actualizar tu Chromebook: guía rápida y segura

Búsqueda inversa de vídeo: cómo encontrar un clip

Solución al error Connecting Services en FAU-G
