Introducción
En este artículo se describen los pasos a realizar para recuperar una partición en un RAID 1 degradada en Linux. Es conveniente revisar siempre el estado de los RAIDs para ver el estado de todas las particiones asociadas. Para ello, podemos utilizar el comando mdadm.
Un ejemplo sería:
mdadm --detail /dev/md[0-9]
En la mayoría de los casos aparecerá una información como la siguiente:
Version : 1.2
Creation Time : Thu Jun 8 19:06:32 2023
Raid Level : raid1
Array Size : 1953381440 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953381440 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Sun Oct 11 10:02:40 2026
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : server_example:2 (local to host server_example)
UUID : abc12345:6789abcd:ef012345:6789abcd
Events : 500000
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 49 1 active sync /dev/sdd1
Pero algunas veces, se pueden obtener estos resultados:
Version : 1.2
Creation Time : Sat Mar 7 21:58:44 2015
Raid Level : raid1
Array Size : 974867264 (929.71 GiB 998.26 GB)
Used Dev Size : 974867264 (929.71 GiB 998.26 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Sun Oct 11 11:20:16 2026
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : servidor_example:1
UUID : abc12345:6789abcd:ef012345:6789abcd
Events : 500000
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 20 1 active sync /dev/sdb4
En estos casos, el RAID está en un estado de degradación y no está sincronizando los datos entre todas las particiones que debería. En tales casos, este es un proceso limpio para solucionarlo:
Verificación del estado del disco duro
La primera operación a realizar es la verificación del estado del disco duro que está causando problemas.Para ello, comprobamos el estado de los discos duros en el núcleo del sistema con el comando:
sudo dmesg -T | grep -iE 'ata|sd[a-z]|error|i/o'
Que obtendrá algún resultado similar a:
md: kicking non-fresh sda4 from array!
[Sat Oct 10 13:39:18 2026] EXT4-fs (md1): mounted filesystem abc12345-6789abcd-ef012345-6789abcd r/w with ordered data mode. Quota mode: none.
Tras ello, utilizamos el comando smartctl:
sudo smartctl -H /dev/sda
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Verificamos los valores de errores que pueda detectar el núcleo:
sudo smartctl -A /dev/sda | grep -E 'Reallocated_Sector|Current_Pending|Offline_Uncorrectable|UDMA_CRC'
Con un resultado:
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
197 Current_Pending_Sector 0x0012 051 051 000 Old_age Always - 8176
198 Offline_Uncorrectable 0x0010 051 051 000 Old_age Offline - 8176
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
En donde:
- Reallocated_Sector_Ct: Lo ideal es que el valor sin procesar sea 0.
- Current_Pending_Sector: Debe ser 0 (cualquier valor distinto de cero indica sectores ilegibles).
- Offline_Uncorrectable: Debe ser 0.
- UDMA_CRC_Error_Count: Si aumenta, indica un cable SATA/SAS o conexión de placa posterior defectuosa en lugar de un disco defectuoso.
Finalmente, verificamos que todos los sectores de la partición se puedan leer correctamente:
sudo badblocks -sv /dev/sda4
Checking blocks 0 to 976562175
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)
Verificación del estado del RAID
Examinamos el estado de la metadata vinculada al RAID de esa partición:
sudo mdadm --examine /dev/sda4
/dev/sda4:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : abc12345:6789abcd:ef012345:6789abcd
Name : server_example:2
Creation Time : Sat Mar 7 21:58:44 2015
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1949734912 sectors (929.71 GiB 998.26 GB)
Array Size : 974867264 KiB (929.71 GiB 998.26 GB)
Used Dev Size : 1949734528 sectors (929.71 GiB 998.26 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262064 sectors, after=384 sectors
State : active
Device UUID : abc12345:6789abcd:ef012345:6789abcd
Update Time : Sun Aug 2 00:10:38 2026
Checksum : def56789
Events : 500000
Device Role : Active device 0
Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
Reconstrucción del RAID
Una vez que todo parece correcto (en este caso no hay que añadir la partición de nuevo) procedemos a reconstruir el RAID. Para ello, en primer lugar, paramos el proceso de sincronización si está activo y ejecutamos uno de los dos siguiente comandos :
# Reconstrucción del RAID 1
sudo mdadm --manage /dev/md1 --re-add /dev/sda4 ó
# Volver a añadir la partición al RAID 1
sudo mdadm --manage /dev/md1 --add /dev/sda4
mdadm: hotplug add /dev/sda4 from /sys/devices/pci0000:00/0000:00:11.0/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda4
mdadm: adding component drives to /dev/md1
Tras añadir de nuevo la partición al RAID, la reconstrucción comenzará automáticamente. Podemos ver el proceso con uno de los comandos siguientes:
sudo tail -f /proc/mdstat
sudo watch -n 1 cat /proc/mdstat
Mostrará entre otros datos que el RAID se encuentra en reconstrucción
md1 : active raid1 sda4[3] sdb4[2]
976430912 blocks super 1.2 [2/1] [_U]
[=>...................] recovery = 6.7% (66208448/976430912) finish=93.5min speed=162227K/sec