RAID Debian · 6 min read · Nov 14, 2025

Expandiendo un RAID de software en Debian migrando a nuevos discos duros grandes

La configuración: dos discos físicos de un RAID 1 (espejo) serán reemplazados por dos discos más capaciosos, haremos un reemplazo “en caliente” directamente desde el sistema operativo en funcionamiento, sin necesidad de arrancar desde un medio de arranque externo. Esta guía ha sido probada en distribuciones de Debian 6, 7, 8 tanto de 32 como de 64 bits.

Asumimos que los dos discos están particionados con una partición raíz y una partición de intercambio y que estas dos particiones construyen los dos dispositivos RAID md0 y md1:

  • La partición sda1 y sdb1 que componen el volumen md0 (raíz)
  • Las particiones sda2 y sdb2 que componen el volumen md1 (intercambio)

Primero, haz una copia de seguridad de todos tus datos, incluso si la guía ha sido probada varias veces, la mala suerte siempre está presente… Proporcionamos (en mi opinión, la mejor solución) para un reemplazo, desconectamos uno de los dos discos viejos con la máquina apagada, luego conectamos un nuevo disco temporal, luego resincronizamos, así que aún tendremos el RAID funcionando y un solo disco (con RAID en modo degradado) y aún puedes recrear un RAID funcional si algo no funciona. Para hacer esto, solo escribe estos comandos después de reemplazar el disco completo por el vacío:

sfdisk -d /dev/hd source | sfdisk —force /dev/hd empty  
mdadm —zero-superblock /dev/hd empty  
mdadm —add /dev/md(raid) /dev/hd(empty)

Repite las dos últimas líneas para cada RAID / partición en el sistema

(por ejemplo:

mdadm -add /dev/md0 /dev/sdb1 

y luego

mdadm -add /dev/md1 /dev/sdb2

etc..

De esta manera, forzamos la tabla de particiones del disco fuente al disco vacío de destino, luego agregamos esto al RAID.

Obviamente, debes esperar hasta el final del proceso de reconstrucción, monitoreado por:

watch cat / pro / mdstat

(Y, por supuesto, CTRL + C para salir del proceso)

Apaga la máquina en este punto, agregamos dos nuevos discos, que se convierten respectivamente en sdc y sdd, luego inicia el servidor y ejecuta el comando:

fdisk -l

El resultado debería parecerse a esto:

Disco /dev/sda: ……MB , ………….Bytes  
… cabezas, …sectores/pista , ….. cilindros  
Tamaño de I/O (mínimo/óptimo): 512 bytes / 512 bytes  
Disco: identificador : ………..
Dispositivo arranque Inicio Fin Bloques Id   Sistema
/dev/sda2        970           1044 602437+ fd   Linux raid autodetect
/dev/sda2            1 969 7783461 fd   Linux raid autodetect 
……
/dev/sdb1     *       1 969 7783461 fd   Linux raid autodetect 
/dev/sdb2            970        1044 602437+ fd   Linux raid autodetect 
……
Disco /dev/sdc: …Mb, …….Bytes
……
Disco /dev/sdd: …Mb, …….Bytes
……
Disco /dev/md0: …Mb, …….Bytes
…...
Disco /dev/md1: …Mb, …….Bytes

Ahora, escribe:

fdisk /dev/sdc

creamos una nueva partición con el comando n,

seleccionamos p partición primaria,

seleccionamos el número de partición ( 1,2,3, etc …),

seleccionamos el cilindro de inicio ( 1),

seleccionamos el tamaño de la partición primaria escribiendo el símbolo + seguido del tamaño en GB y GB de letras (por ejemplo: +480GB)

la hacemos arrancable con el comando a, seleccionando el mismo número de partición.

cambiamos el ID de partición a “ fd “ (Linux Raid Autodetect) con t, y escribiendo como código Hex, solo “ fd

Luego repetimos TODOS los comandos para la segunda partición (la partición será el intercambio).

Guardaremos los cambios con w.

Obviamente, presta atención al tamaño de las particiones. La mejor solución es restar el tamaño actual del intercambio del total del espacio libre para crear la partición de trabajo con el mayor espacio posible.

Ahora realizaremos exactamente las mismas operaciones en el disco SDD, asegurándonos de crear la misma partición con los mismos tamaños que usamos anteriormente.

En este punto hacemos un intercambio entre el primer disco “completo” y el primer nuevo disco, agregando este último como un repuesto al RAID:

mdadm -add /dev/md0 /dev/sdc1

Luego deberíamos verificar la situación del disco RAID, debería ser así:

md0: active raid 1 sdc1[S] sda1[2] sdb1[3]
 ………bloques super 1.2 [2/2] [UU]

Luego colocamos en el disco original:

mdadm -f /dev/md0 /dev/sda1

y lo eliminamos del RAID:

mdadm -r /dev/md0 /dev/sda1

Ahora verificamos que la reconstrucción comenzó automáticamente y esperamos hasta que se complete monitoreando nuevamente con:

watch cat /proc/mdstat

(Y, por supuesto, CTRL + C para salir del proceso)

Al final instalamos el gestor de arranque (grub) en el nuevo disco (/ dev / sdc):

grub-install /dev/sdc

El mismo proceso solo tiene que repetirse para cada una de las particiones del sistema:

mdadm -add /dev/md0 /dev/sdd1
mdadm -f /dev/md0 /dev/sdb1
mdadm -r /dev/md0 /dev/sdb1

Y esperamos nuevamente hasta que la reconstrucción esté terminada:

watch cat /proc/mdstat

(Y, por supuesto, CTRL + C para salir del proceso)

A continuación, hacemos el mismo procedimiento para la primera partición de intercambio de los dos nuevos discos:

mdadm -add /dev/md1 /dev/sdc2
mdadm -f /dev/md0 /dev/sda2
mdadm -r /dev/md0 /dev/sda2

Esperamos nuevamente hasta que haya terminado la reconstrucción:

watch cat /proc/mdstat

(Y, por supuesto, CTRL + C para salir del proceso)

Y el último disco:

mdadm -add /dev/md1 /dev/sdd2
mdadm -f /dev/md0 /dev/sdb2
mdadm -r /dev/md0 /dev/sdb2

Esperamos nuevamente hasta que haya terminado la reconstrucción:

watch cat /proc/mdstat

(Y, por supuesto, CTRL + C para salir del proceso)

En este punto reinstalamos el gestor de arranque en ambos discos:

grub-install /dev/sdc
grub-install /dev/sdd

En este punto nos encontramos con el viejo disco expulsado del RAID, y los nuevos discos están instalados y operativos. Pero con el espacio utilizable por debajo del máximo permitido por la partición

Luego procedemos con el aumento de la partición y la verificación de la misma, como de costumbre para ambos volúmenes:

mdadm —grow —raid-devices=2 /dev/md0
mdadm -A —scan
mdadm —grow /dev/md0 —size=max
mdadm —examine —scan
e2fsck -f /dev(md0
resize2fs /dev/md0
mdadm —grow —raid-devices=2 /dev/md1
mdadm -A —scan
mdadm —grow /dev/md1 —size=max
mdadm —examine —scan
e2fsck -f /dev/md1
resize2fs /dev/md1

Cuando termine, apaga la PC, desconecta los discos viejos y reinicia la máquina.

Incluso si el reinicio funcionó, reconstruimos el grub por razones de seguridad ya que el lanzamiento del nuevo disco habrá tomado el nombre del antiguo (sda y sdb):

mv /boot/grub/device.map/boot/grub/device.map.old
grub-mkdevicemap
update-grub2 && grub-install /dev/sda && grub-install /dev/sdb

Si quieres estar absolutamente seguro de que la nueva configuración del RAID está funcionando, apaga la máquina, desconecta uno de los nuevos discos y vuelve a encender. Debería arrancar sin problemas. Después, apaga nuevamente, conecta el disco y arranca. Puedes usar este comando para verificar el estado del RAID.

watch cat /proc/mdstat

(Y, por supuesto, CTRL + C para salir del proceso)

Terminamos el trabajo, celebramos.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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