Guía de tecnologías

Prueba y reemplazo de un disco fallido en RAID1

6 min read Sistemas Actualizado 11 Oct 2025
Reemplazo de disco en RAID1: guía práctica
Reemplazo de disco en RAID1: guía práctica

Objetivo principal

Reemplazar un disco fallido en un arreglo RAID1 y devolver la redundancia sin pérdida de datos.

Variantes relacionadas (intención de búsqueda)

  • Reemplazar disco RAID1
  • Reconstruir RAID1 tras fallo de HDD
  • Copiar tabla de particiones entre discos SATA
  • mdadm fail/remove/add sfdisk guía

Importante

Antes de operar en discos y arreglos RAID, asegúrese de tener copias de seguridad recientes y un plan de restauración. Si trabaja en producción, realice estas tareas en ventana de mantenimiento o en un sistema de pruebas idéntico.

1. Concepto breve

RAID1 mantiene una copia espejo de los datos entre dos (o más) discos. Si un disco falla, el sistema sigue funcionando en modo degradado hasta que el disco reemplazado sea agregado y sincronizado.

Preparación y comprobaciones previas

  1. Verifique qué discos forman el RAID:
cat /proc/mdstat
  1. Compruebe las particiones y discos:
fdisk -l
  1. Asegúrese de que sabe cuál disco (por ejemplo, /dev/sda o /dev/sdb) fallará o será reemplazado. En el ejemplo usamos /dev/sdb como el disco fallido.

Notas rápidas:

  • Trabajar con nombres de dispositivo (sda, sdb) puede cambiar después de reinicios o al conectar discos; considere usar identificadores persistentes (/dev/disk/by-id/…) para producción.
  • Muchos comandos requieren privilegios de root.

2. Simular una falla de disco (opcional)

Puede simular la falla del disco de dos maneras:

  • Físicamente: apagar el sistema, retirar el disco.
  • Lógicamente (sin apagar): marcar las particiones del disco como fallidas y eliminarlas del arreglo con mdadm.

Ejemplo para simular la falla de /dev/sdb:

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

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

Si decide apagar el equipo para reemplazar físicamente el disco, use:

shutdown -h now

Después de reinsertar el disco nuevo (o colocar el disco sustituto en la posición correcta), arranque el sistema. Debe iniciar en modo degradado.

Ejemplo del estado degradado (salida de ejemplo):

root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda5[2]
4989940 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[2]
248820 blocks super 1.2 [2/1] [U_]

unused devices: 
root@server1:~#

Y la salida de fdisk -l de ejemplo:

root@server1:~# fdisk -l

Disk /dev/sda: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003717c

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          32      248832   fd  Linux raid autodetect
Partition 1 does not end on cylinder boundary.
/dev/sda2             32         653     4990977    5  Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5             32         653     4990976   fd  Linux raid autodetect

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

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

Disk /dev/md0: 254 MB, 254791680 bytes
2 heads, 4 sectors/track, 62205 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

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

Disk /dev/md1: 5109 MB, 5109698560 bytes
2 heads, 4 sectors/track, 1247485 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

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

Disk /dev/dm-0: 4844 MB, 4844421120 bytes
255 heads, 63 sectors/track, 588 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 264 MB, 264241152 bytes
255 heads, 63 sectors/track, 32 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/dm-1 doesn't contain a valid partition table
root@server1:~#

3. Copiar la tabla de particiones del disco sano al disco nuevo

Si el disco nuevo aparece sin tabla de particiones válida, copie la tabla desde el disco sano (/dev/sda) a /dev/sdb usando sfdisk:

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

Ejemplo de salida al aplicar sfdisk (salida de ejemplo):

root@server1:~# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Checking that no-one is using this disk right now ...
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
OK

Disk /dev/sdb: 652 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   *      2048    499711     497664  fd  Linux raid autodetect
/dev/sdb2        501758  10483711    9981954   5  Extended
/dev/sdb3             0         -          0   0  Empty
/dev/sdb4             0         -          0   0  Empty
/dev/sdb5        501760  10483711    9981952  fd  Linux raid autodetect
Warning: partition 1 does not end at a cylinder boundary
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:~#

Notas:

  • sfdisk recreará particiones idénticas. Verifique start/end y tipos (Id) antes de proceder en entornos productivos.
  • Si usa esquemas GPT en lugar de MBR, use herramientas adecuadas (gdisk/sgdisk).

4. Limpiar restos de superbloque RAID en el disco nuevo

Antes de añadir las particiones al arreglo, elimine cualquier rastro de superblock RAID en las particiones nuevas:

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb5

Esto evita conflictos si el disco fue previamente parte de otro arreglo.

5. Añadir el disco nuevo al arreglo RAID y monitorizar la reconstrucción

Añada las particiones recién creadas al RAID:

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

Verifique el estado de la reconstrucción:

cat /proc/mdstat

Ejemplo de reconstrucción en progreso:

root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb5[3] sda5[2]
4989940 blocks super 1.2 [2/1] [U_]
[========>............]  recovery = 44.7% (2233024/4989940) finish=0.2min speed=159501K/sec

md0 : active raid1 sdb1[3] sda1[2]
248820 blocks super 1.2 [2/2] [UU]

unused devices: 
root@server1:~#

Espere hasta que la sincronización termine. El estado final esperado:

root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb5[3] sda5[2]
4989940 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[3] sda1[2]
248820 blocks super 1.2 [2/2] [UU]

unused devices: 
root@server1:~#

6. Reinstalar el cargador de arranque en ambos discos

Para asegurarse de que el sistema pueda arrancar si uno de los discos falla, instale GRUB en ambos discos físicos:

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

En sistemas con UEFI o configuraciones distintas, adapte el paso a su cargador/entorno (ej.: efibootmgr, grub2-install con –target=x86_64-efi, etc.).

7. Verificación final

  • Compruebe /proc/mdstat para confirmar [UU] en los arreglos.
  • Verifique que las particiones y volúmenes lógicos (LVM) estén intactos.
  • Pruebe el arranque desde cada disco si es posible (arranque en modo BIOS por prioridad o desconectando temporalmente un disco en entorno de pruebas).

8. Problemas comunes y cómo solucionarlos

  • sfdisk falla por firma MBR/GPT: si el disco tiene una firma corrupta, sfdisk puede advertir. Verifique el tipo (MBR vs GPT) y use sgdisk/gdisk para GPT.
  • mdadm no admite la partición: compruebe que las particiones tienen el tipo correcto (fd para Linux raid autodetect en MBR) y que los tamaños coinciden o son compatibles.
  • Reconstrucción lenta: la velocidad depende de I/O y tunables del sistema. Puede ajustar /proc/sys/dev/raid/speed_limit_min y speed_limit_max, pero hágalo con precaución.
  • arranque fallido tras reinstalar GRUB: verifique que /boot y el MBR/EFI estén correctamente instalados y que las entradas de fstab / UUID no dependan de un disco específico. Use blkid para comprobar UUIDs.

9. Lista de verificación rápida (SRE/Operaciones)

  • Copia de seguridad y ventana de mantenimiento definida.
  • Identificar disco sano y disco a reemplazar (/dev/sda vs /dev/sdb).
  • Simular fallo (o retirar físicamente el disco) si aplica.
  • Confirmar estado degradado en /proc/mdstat.
  • Copiar tabla de particiones con sfdisk (o sgdisk para GPT).
  • Zero superblock con mdadm –zero-superblock.
  • Añadir particiones al arreglo con mdadm -a.
  • Monitorizar reconstrucción en /proc/mdstat.
  • Reinstalar GRUB en ambos discos.
  • Pruebas de arranque y verificación final.

10. Criterios de aceptación

  • El arreglo RAID muestra [UU] en /proc/mdstat para todas las matrices involucradas.
  • El sistema arranca correctamente con cada disco individualmente (prueba en entorno controlado).
  • No hay errores de sincronización ni entradas de disco remanentes en mdstat.

11. Comprobaciones de seguridad y privacidad

  • Evite transmitir datos sin cifrar si copia particiones o realiza backups remotos.
  • Proteja accesos root y registros de operaciones.

12. Plantilla de comandos (cheat sheet)

  • Simular fallo y remover particiones del RAID:
mdadm --manage /dev/mdX --fail /dev/sdYYn
mdadm --manage /dev/mdX --remove /dev/sdYYn
  • Copiar tabla de particiones (MBR):
sfdisk -d /dev/sdX | sfdisk --force /dev/sdY
  • Borrar superblock RAID:
mdadm --zero-superblock /dev/sdYn
  • Añadir partición al RAID:
mdadm -a /dev/mdX /dev/sdYn
  • Monitorizar:
cat /proc/mdstat
  • Reinstalar GRUB:
grub-install /dev/sdX
grub-install /dev/sdY

13. Resumen

Reemplazar un disco en RAID1 consiste en detectar el estado degradado, preparar el disco de reemplazo (copiar la tabla de particiones), limpiar restos RAID previos, añadir las particiones al arreglo, esperar a la sincronización completa y reinstalar el cargador de arranque. Mantenga siempre copias de seguridad y valide el arranque en un entorno controlado.

Notas finales:

  • En entornos con LVM encima de RAID, la reproducción es equivalente: asegúrese de que los PV/ VG sigan intactos y que no existan dispositivos huérfanos.
  • Para arreglos más complejos o con más discos, adapte los comandos y valide los identificadores persistentes.

Enlaces útiles

Autor
Edición

Materiales similares

Instalar y usar ADB y Fastboot en Mac
Android Tools

Instalar y usar ADB y Fastboot en Mac

Arreglar "system repair pending" en Windows
Soporte técnico

Arreglar "system repair pending" en Windows

Crear una app Android sin programar: mejores herramientas
Apps móviles

Crear una app Android sin programar: mejores herramientas

Añadir barra lateral a Windows 11 y 10
Productividad

Añadir barra lateral a Windows 11 y 10

Recuperar archivos eliminados en Microsoft Teams
Soporte

Recuperar archivos eliminados en Microsoft Teams

Descargar apps de pago gratis en iPhone sin jailbreak
Guías

Descargar apps de pago gratis en iPhone sin jailbreak