Guía de tecnologías

Reemplazo y prueba de disco en RAID1

7 min read Sistemas Actualizado 28 Sep 2025
Reemplazo y prueba de disco en RAID1
Reemplazo y prueba de disco en RAID1

Introducción

Este documento explica paso a paso cómo probar el reemplazo de un disco duro fallado en un arreglo RAID1 software (mdadm). Incluye los comandos, salidas de ejemplo, comprobaciones y procedimientos de recuperación y verificación. Está orientado a administradores de sistemas que ya conocen comandos básicos de Linux y RAID.

Nota: RAID1 replica datos entre discos; sustituir un disco consiste en marcarlo como fallado, quitarlo, preparar el nuevo disco y dejar que el array se resincronice.

Requisitos previos

  • Acceso root o privilegios sudo.
  • mdadm instalado y configurado en el sistema.
  • Un disco nuevo (o imagen) para reemplazar el fallado.
  • Copias de seguridad válidas si los datos son críticos.

1. Simular un fallo de disco

Puedes simular un fallo físico quitando el disco del equipo o, más cómodamente, marcar las particiones como falladas y retirarlas del array (soft-remove):

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2

Luego apaga el sistema para intercambiar el disco si haces un reemplazo físico:

shutdown -h now

Arranca de nuevo (con el disco fallado ya retirado o físicamente sustituido). El sistema debería iniciar normalmente porque RAID1 tiene redundancia.

2. Comprobar el estado degradado del array

Ejecuta:

cat /proc/mdstat

Ejemplo de salida esperada cuando un disco falta:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0]
104320 blocks [2/1] [U_]

md1 : active raid1 sda2[0]
10377920 blocks [2/1] [U_]

unused devices: 
[root@server1 ~]#

La marca [U_] indica que en cada array falta un miembro.

3. Verificar particiones y discos

Comprueba la tabla de particiones y el estado de los discos:

fdisk -l

Salida de ejemplo (resumida):

[root@server1 ~]# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   fd  Linux raid autodetect
/dev/sda2             14        1305    10377990   fd  Linux raid autodetect

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/md1: 10.6 GB, 10626990080 bytes
2 heads, 4 sectors/track, 2594480 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md1 doesn't contain a valid partition table

Disk /dev/md0: 106 MB, 106823680 bytes
2 heads, 4 sectors/track, 26080 cylinders
Units = cylinders of 8 * 512 = 4096 bytes

Disk /dev/md0 doesn't contain a valid partition table
[root@server1 ~]#

En este ejemplo /dev/sdb no tiene tabla de particiones porque se ha retirado o es nuevo.

4. Clonar la tabla de particiones de /dev/sda a /dev/sdb

Copia la tabla de particiones exacta desde el disco sano (/dev/sda) al disco nuevo (/dev/sdb):

sfdisk -d /dev/sda | sfdisk /dev/sdb

Si surge un error relacionado con firmas de sector, puedes forzar la escritura:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Ejemplo de interacción:

[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK

Disk /dev/sdb: 1305 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot    Start       End   #sectors  Id  System
/dev/sdb1   *        63    208844     208782  fd  Linux raid autodetect
/dev/sdb2        208845  20964824   20755980  fd  Linux raid autodetect
/dev/sdb3             0         -         0   0  Empty
/dev/sdb4             0         -         0   0  Empty
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
[root@server1 ~]#

5. Borrar restos de metadatos RAID en el disco nuevo

Antes de añadir el disco al array, elimina cualquier superblock de mdadm que pudiera existir:

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2

Esto evita conflictos por metadatos antiguos.

6. Añadir el disco nuevo al array y comprobar la sincronización

Añade las particiones del disco nuevo al array RAID1:

mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2

Comprueba el progreso de la reconstrucción con:

cat /proc/mdstat

Salida de ejemplo durante la recuperación:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[2] sda2[0]
10377920 blocks [2/1] [U_]
[======>..............]  recovery = 32.3% (3360768/10377920) finish=1.5min speed=74238K/sec

unused devices: 
[root@server1 ~]#

Es normal que la reconstrucción tarde, dependiendo del tamaño del array y la velocidad de los discos. Espera a que ambos arrays muestren [UU].

7. Reinstalar GRUB en ambos discos

Para garantizar que la máquina arranque aunque falle un disco, instala el cargador de arranque en ambos discos (hd0 y hd1). Inicia grub y ejecuta:

grub

Dentro del prompt de grub:

root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit

En sistemas modernos con grub2 o distribuciones distintas, usa grub-install en cada dispositivo, por ejemplo:

grub-install /dev/sda
grub-install /dev/sdb

(adapta según la versión y la configuración del sistema).

8. Verificación final

Tras la reconstrucción y la reinstalación del bootloader, comprueba:

  • cat /proc/mdstat muestra [UU] para cada array.
  • fdisk -l muestra particiones idénticas en ambos discos.
  • El sistema arranca con cada disco individualmente (prueba opcional en entorno controlado).

Ejemplo de estado final:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
10377920 blocks [2/2] [UU]

unused devices: 
[root@server1 ~]#

Criterios de aceptación

  • Ambos arrays RAID muestran estado [UU] en /proc/mdstat.
  • No hay errores en dmesg relacionados con md/particiones después de la operación.
  • GRUB está instalado en ambos discos y el sistema arranca desde cada uno (si se prueba).
  • Las particiones en /dev/sda y /dev/sdb coinciden en tamaño y tipo.

Lista de comprobación por rol

Administrador:

  • Verificar backups antes de empezar.
  • Confirmar identificación correcta de discos (/dev/sda vs /dev/sdb).
  • Revisar logs (dmesg, /var/log/messages).

Operador de sala/técnico:

  • Apagar el equipo si se va a cambiar el disco físicamente.
  • Reemplazar hardware y conectar cables correctamente.
  • Verificar leds y estado SMART del disco nuevo (si aplicable).

Soporte/Respaldos:

  • Asegurar que existe una copia reciente y validada de datos críticos.
  • Coordinar ventanas de mantenimiento si la reconstrucción afecta rendimiento.

Playbook (pasos rápidos)

  1. Marcar particiones como falladas y removerlas del array (o retirar el disco físicamente).
  2. Apagar e insertar disco nuevo si se requiere reemplazo físico.
  3. Iniciar sistema y verificar array degradado.
  4. Clonar tabla de particiones: sfdisk -d /dev/sda | sfdisk /dev/sdb.
  5. Borrar superblocks: mdadm –zero-superblock /dev/sdb1 /dev/sdb2.
  6. Añadir particiones al array: mdadm -a /dev/md0 /dev/sdb1 ; mdadm -a /dev/md1 /dev/sdb2.
  7. Esperar sincronización: monitorizar /proc/mdstat.
  8. Reinstalar GRUB en ambos discos.
  9. Comprobaciones finales y cerrar incidente.

Comprobaciones y soluciones a problemas comunes

  • Error: “sector 0 does not have an msdos signature” al usar sfdisk

    • Es habitual en discos recién formateados. Usa –force si estás seguro de clonar la tabla.
  • Error: el array no reconstruye o está en estado “resync stuck”

    • Revisa dmesg por errores de I/O. Puede haber problemas físicos o cables defectuosos.
    • Ejecuta smartctl en los discos para comprobar salud SMART.
  • Problema: GRUB no instala en uno de los discos

    • Usa grub-install explícito; verifica partición de arranque (flag boot) y tipo de tabla (msdos vs gpt).
  • Riesgo de confundir discos (sda vs sdb):

    • Usa identificadores por UUID o consulta lsblk -o NAME,UUID,SERIAL antes de escribir tablas.

Matriz de riesgos y mitigaciones

  • Riesgo: escribir tabla de particiones en el disco equivocado.

    • Mitigación: comprobar serial del disco y usar etiquetas físicas en el chasis.
  • Riesgo: falla durante la reconstrucción causando pérdida temporal de rendimiento.

    • Mitigación: programar mantenimiento fuera de horas pico, y limitar velocidad de reconstrucción si es necesario.
  • Riesgo: GRUB mal instalado y equipo no arranca.

    • Mitigación: mantener un medio de rescate/LiveUSB y probar arranque desde cada disco en entorno controlado.

Mini-cheat sheet de comandos

  • Ver estado RAID: cat /proc/mdstat
  • Marcar partición como fallada: mdadm –manage /dev/mdX –fail /dev/sdXN
  • Remover partición del array: mdadm –manage /dev/mdX –remove /dev/sdXN
  • Borrar superblock: mdadm –zero-superblock /dev/sdXN
  • Añadir a array: mdadm -a /dev/mdX /dev/sdXN
  • Clonar tabla: sfdisk -d /dev/sda | sfdisk /dev/sdb
  • Reinstalar GRUB: grub-install /dev/sda

Nota sobre compatibilidad y versiones

Las instrucciones usan utilidades clásicas (mdadm, sfdisk, grub). En sistemas con GPT/UEFI o con Grub2, algunos comandos cambian (por ejemplo, gdisk para GPT, efibootmgr para UEFI, grub2-install). Adapta según la arquitectura y la distribución.

Glosario (una línea)

  • RAID1: modo de RAID que mantiene una copia idéntica de datos en dos o más discos.
  • mdadm: herramienta de administración de arreglos RAID software en Linux.
  • sfdisk: utilidad para gestionar particiones en discos (tabla msdos/MBR).
  • GRUB: cargador de arranque utilizado en sistemas Linux.

Enlaces y recursos

Resumen final

Has aprendido a simular un fallo de disco en RAID1, clonar la tabla de particiones al disco de reemplazo, limpiar metadatos antiguos, añadir el disco al array, monitorizar la reconstrucción y reinstalar el cargador de arranque. Sigue la lista de comprobación y los criterios de aceptación para validar una recuperación completa.

Importante: siempre confirma la identidad del disco antes de escribir tablas o metadatos y asegúrate de disponer de copias de seguridad actualizadas.

Autor
Edición

Materiales similares

Cómo usar Dropbox en Android
Productividad

Cómo usar Dropbox en Android

Cómo evitar que Gemini recuerde tus chats
Privacidad

Cómo evitar que Gemini recuerde tus chats

Almowafir: cupones y descuentos en Dubái
Compras

Almowafir: cupones y descuentos en Dubái

Reemplazo y prueba de disco en RAID1
Sistemas

Reemplazo y prueba de disco en RAID1

Búsqueda inversa de imágenes en WhatsApp
WhatsApp

Búsqueda inversa de imágenes en WhatsApp

Recuperar datos Android sin root
Recuperación de datos

Recuperar datos Android sin root