RAID1 Tutorial · 3 min read · Dec 25, 2025

Reemplazo de un Disco Duro Fallido en un Array RAID1 de Software

Reemplazo de un Disco Duro Fallido en un Array RAID1 de Software. Esta guía muestra cómo quitar un disco duro fallido de un array RAID1 de Linux (RAID de software) y cómo agregar un nuevo disco duro al array RAID1 sin perder datos.

NOTA: Hay una nueva versión de este tutorial disponible que utiliza gdisk en lugar de sfdisk para soportar particiones GPT.

1 Nota Preliminar

En este ejemplo tengo dos discos duros, /dev/sda y /dev/sdb, con las particiones /dev/sda1 y /dev/sda2 así como /dev/sdb1 y /dev/sdb2.

/dev/sda1 y /dev/sdb1 constituyen el array RAID1 /dev/md0.

/dev/sda2 y /dev/sdb2 constituyen el array RAID1 /dev/md1.

/dev/sda1 + /dev/sdb1 = /dev/md0
/dev/sda2 + /dev/sdb2 = /dev/md1

/dev/sdb ha fallado, y queremos reemplazarlo.

2 ¿Cómo Puedo Saber Si Un Disco Duro Ha Fallado?

Si un disco ha fallado, probablemente encontrarás muchos mensajes de error en los archivos de registro, por ejemplo, /var/log/messages o /var/log/syslog.

También puedes ejecutar

cat /proc/mdstat

y en lugar de la cadena [UU] verás [U_] si tienes un array RAID1 degradado.

3 Eliminando El Disco Fallido

Para eliminar /dev/sdb, marcaremos /dev/sdb1 y /dev/sdb2 como fallidos y los eliminaremos de sus respectivos arrays RAID (/dev/md0 y /dev/md1).

Primero marcamos /dev/sdb1 como fallido:

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

La salida de

cat /proc/mdstat

debería verse así:

server1:~# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
md0 : active raid1 sda1[0] sdb1[2](F)  
      24418688 blocks [2/1] [U_]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      24418688 blocks [2/2] [UU]  
  
unused devices: 

Luego eliminamos /dev/sdb1 de /dev/md0:

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

La salida debería ser así:

server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1  
mdadm: hot removed /dev/sdb1

Y

cat /proc/mdstat

debería mostrar esto:

server1:~# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
md0 : active raid1 sda1[0]  
      24418688 blocks [2/1] [U_]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      24418688 blocks [2/2] [UU]  
  
unused devices: 

Ahora hacemos los mismos pasos nuevamente para /dev/sdb2 (que es parte de /dev/md1):

mdadm --manage /dev/md1 --fail /dev/sdb2
cat /proc/mdstat
server1:~# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
md0 : active raid1 sda1[0]  
      24418688 blocks [2/1] [U_]  
  
md1 : active raid1 sda2[0] sdb2[2](F)  
      24418688 blocks [2/1] [U_]  
  
unused devices: 
mdadm --manage /dev/md1 --remove /dev/sdb2
server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2  
mdadm: hot removed /dev/sdb2
cat /proc/mdstat
server1:~# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
md0 : active raid1 sda1[0]  
      24418688 blocks [2/1] [U_]  
  
md1 : active raid1 sda2[0]  
      24418688 blocks [2/1] [U_]  
  
unused devices: 

Luego apaga el sistema:

shutdown -h now

y reemplaza el viejo disco duro /dev/sdb con uno nuevo (debe tener al menos el mismo tamaño que el viejo; si es solo unos pocos MB más pequeño que el viejo, entonces la reconstrucción de los arrays fallará).

4 Agregando El Nuevo Disco Duro

Después de haber cambiado el disco duro /dev/sdb, arranca el sistema.

Lo primero que debemos hacer ahora es crear la misma partición que en /dev/sda. Podemos hacer esto con un simple comando:

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

Puedes ejecutar

fdisk -l

para verificar si ambos discos duros tienen la misma partición ahora.

A continuación, agregamos /dev/sdb1 a /dev/md0 y /dev/sdb2 a /dev/md1:

mdadm --manage /dev/md0 --add /dev/sdb1
server1:~# mdadm --manage /dev/md0 --add /dev/sdb1  
mdadm: re-added /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2
server1:~# mdadm --manage /dev/md1 --add /dev/sdb2  
mdadm: re-added /dev/sdb2

Ahora ambos arrays (/dev/md0 y /dev/md1) se sincronizarán. Ejecuta

cat /proc/mdstat

para ver cuándo se ha terminado.

Durante la sincronización, la salida se verá así:

server1:~# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
md0 : active raid1 sda1[0] sdb1[1]  
      24418688 blocks [2/1] [U_]  
      [=>...................]  recovery =  9.9% (2423168/24418688) finish=2.8min speed=127535K/sec  
  
md1 : active raid1 sda2[0] sdb2[1]  
      24418688 blocks [2/1] [U_]  
      [=>...................]  recovery =  6.4% (1572096/24418688) finish=1.9min speed=196512K/sec  
  
unused devices: 

Cuando la sincronización haya terminado, la salida se verá así:

server1:~# cat /proc/mdstat  
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
md0 : active raid1 sda1[0] sdb1[1]  
      24418688 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      24418688 blocks [2/2] [UU]  
  
unused devices: 

¡Eso es todo, has reemplazado exitosamente /dev/sdb!

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.