Cómo recuperar datos de Linux MD RAID 6 con cifrado LUKS y fscrypt
La recuperación de datos de Linux MD RAID 6, adicionalmente protegido por cifrado LUKS y fscrypt, es un proceso complejo de varias capas en el que es importante determinar correctamente el estado del conjunto RAID, la secuencia de conexión de los discos y las capas de cifrado. Un error en cualquier etapa, desde el ensamblado incorrecto del conjunto hasta el intento de montar un sistema de archivos dañado, puede complicar significativamente la recuperación posterior. En este artículo se describe un enfoque seguro para diagnosticar y reconstruir RAID 6, abrir el contenedor LUKS y trabajar posteriormente con datos protegidos por fscrypt.

- Configuración de RAID, LUKS2 y fscrypt
- Conexión de los discos del conjunto RAID
- Cómo recuperar datos de Linux RAID 6
- Conclusión
- Preguntas frecuentes
- Comentarios
La particularidad de esta configuración es que los datos pasan por varias capas de abstracción a la vez. Primero, los discos físicos se combinan en un conjunto RAID 6 mediante Linux MD; después, el conjunto resultante puede contener un contenedor LUKS cifrado; y dentro del sistema de archivos, directorios o archivos individuales pueden estar adicionalmente protegidos con fscrypt. Por lo tanto, incluso unos discos totalmente funcionales y un RAID ensamblado correctamente no garantizan todavía el acceso a los datos requeridos.
Durante el proceso de recuperación, es fundamental seguir la secuencia correcta de acciones. Antes de cualquier intento de escribir en las unidades, se debe evaluar su estado, identificar los parámetros del conjunto RAID, comprobar los metadatos y, si es posible, crear copias bit a bit de los discos problemáticos. Son especialmente peligrosos los reconstruidos automáticos del conjunto, las comprobaciones del sistema de archivos con corrección de errores o la reinicialización del contenedor LUKS: estas acciones pueden modificar las estructuras necesarias para una recuperación posterior.
El cifrado añade otra capa de complejidad. En el caso de LUKS, debe conservarse el acceso al encabezado del contenedor, a los espacios de claves y a las frases de contraseña o archivos de clave correspondientes. En el caso de fscrypt, el acceso al sistema de archivos por sí solo puede no ser suficiente: el descifrado de directorios específicos requiere las claves adecuadas y los metadatos de la política de cifrado. Si se pierde uno solo de estos elementos, las opciones de recuperación pueden verse significativamente limitadas.
A continuación, examinaremos el procedimiento para trabajar con un sistema de este tipo: desde el diagnóstico de las unidades físicas y el ensamblado manual de Linux MD RAID 6 en un modo que minimice el riesgo de escritura, hasta la apertura del contenedor LUKS, la comprobación del sistema de archivos y la restauración del acceso a los datos protegidos por fscrypt. El principio principal en cada etapa es preservar primero la mayor cantidad posible de información original y solo después proceder a los intentos de recuperación.
Cómo recuperar datos de Linux RAID 6 con LUKS2 y fscrypt | 2 discos faltantes
| Nivel / tecnología | Propósito | Característica principal | Aspectos importantes durante la recuperación |
|---|---|---|---|
| Linux MD RAID 6 | Combina varios discos en un conjunto tolerante a fallos | Utiliza doble paridad y tolera el fallo de hasta dos discos | Es necesario determinar correctamente el orden de los discos, los parámetros del conjunto, el UUID y el estado de los metadatos. No se debe iniciar una reconstrucción automática sin realizar un análisis previo. |
| LUKS2 | Cifrado de disco completo o a nivel de bloque | Cifra todo el volumen lógico o contenedor | El acceso requiere una cabecera LUKS válida y una frase de contraseña o una clave. Si la cabecera está dañada, los datos pueden quedar inaccesibles incluso cuando el RAID está intacto. |
| Sistema de archivos | Almacena directorios, archivos y metadatos | Se encuentra dentro del contenedor LUKS desbloqueado | Antes de reparar errores, es preferible trabajar sobre una copia. Las operaciones de reparación automática pueden modificar estructuras importantes. |
| fscrypt | Cifra directorios o archivos individuales | Opera a nivel del sistema de archivos y permite proteger únicamente los datos seleccionados | Se necesitan las claves adecuadas, las políticas de cifrado y los metadatos correspondientes. Desbloquear LUKS no proporciona automáticamente acceso a los datos protegidos por fscrypt. |
| Claves y metadatos | Permiten acceder a la información cifrada | Las claves pueden almacenarse por separado de los propios datos | La pérdida de la contraseña, del archivo de claves, de la copia de seguridad de la cabecera LUKS o de las claves de fscrypt puede limitar considerablemente las posibilidades de recuperación. |
| Orden de las capas | Define la secuencia de acceso a los datos | Esquema habitual: discos → MD RAID 6 → LUKS2 → sistema de archivos → fscrypt → archivos | La recuperación debe realizarse en el mismo orden, desde la capa inferior hasta la superior. |
| Riesgo de escritura | Afecta a la conservación de los datos originales | Cualquier reconstrucción, montaje con permisos de lectura y escritura o reparación puede modificar las estructuras de datos | Es preferible crear primero imágenes sector a sector de los discos y trabajar después en modo de solo lectura. |
| Complejidad del diagnóstico | Determina el número de posibles fuentes de error | El problema puede encontrarse en el disco, el RAID, LUKS2, el sistema de archivos o fscrypt | El fallo debe identificarse paso a paso, sin confundir problemas de distintas capas. |
Configuración de RAID, LUKS2 y fscrypt
Para probar Hetman RAID Recovery preparamos un servidor Dell PowerEdge R710 con un controlador RAID PERC H700 y Ubuntu Server 24.04 LTS instalado.
A partir de cuatro HDD de 60 GB, creamos un conjunto de software Linux MD RAID 6 con una capacidad total de aproximadamente 120 GB utilizando mdadm. El tamaño de chunk fue de 512 KB (en Hetman RAID Recovery, este parámetro se muestra como tamaño de bloque).

Se configuró un volumen LUKS2 cifrado sobre el conjunto y dentro de él se creó un sistema de archivos EXT4. Una carpeta adicional en esta partición se cifró con fscrypt utilizando su propia frase de contraseña.

Después de preparar el almacenamiento, se escribieron archivos de prueba y luego se eliminaron algunos datos normales de EXT4 y algunos archivos del directorio protegido por fscrypt.
Conexión de los discos del conjunto RAID
MÉTODO 1. Conexión de discos físicos.
Los discos del conjunto RAID pueden conectarse mediante:
- SATA;
- SAS;
- Fibre Channel;
- HBA;
- controlador RAID.
Sin embargo, es importante que el controlador proporcione al programa acceso a cada disco físico por separado.
También puede utilizar:
- adaptadores USB;
- estaciones de acoplamiento;
- carcasas externas.
Para el análisis a largo plazo, es mejor usar una conexión directa mediante SATA, SAS, HBA o el controlador correspondiente; por lo general, es más rápida y estable.

No siempre es necesario conectar todos los discos del conjunto. Hetman RAID Recovery tendrá en cuenta los discos ausentes y podrá reconstruir sus datos si el nivel de RAID lo permite y las unidades restantes en buen estado son suficientes para restaurar el conjunto. Por ejemplo, RAID 5 permite la ausencia de un disco, y RAID 6 permite dos.
Después de conectar los discos, Windows puede solicitarle que los inicialice o formatee. No acepte: cierre este mensaje para evitar modificar los datos del RAID y la información de servicio.
MÉTODO 2. Trabajo con imágenes de disco
Trabajar con imágenes es útil si no hay suficientes puertos para conectar todos los discos al mismo tiempo, o si las unidades tienen indicadores SMART deficientes, errores de lectura o funcionamiento inestable.
Para crear una imagen en Hetman RAID Recovery, seleccione el disco físico requerido en la ventana principal del programa y haga clic en Guardar disco.

En el asistente de guardado, elija crear una imagen de todo el disco, especifique la carpeta y el nombre del archivo, y luego inicie la copia.
Es preferible guardar la imagen en otra unidad en buen estado y con suficiente espacio libre.
Para continuar el trabajo, haga clic en Montar disco – Imágenes de disco RAW. Seleccione los archivos de imagen creados y añádalos al programa.

Después de eso, Hetman RAID Recovery trabajará con ellas como con discos físicos normales y podrá utilizarlas para la reconstrucción automática o manual del RAID.

MÉTODO 3. Conexión de discos mediante SSH
Si el servidor Linux sigue siendo accesible a través de la red, los discos pueden añadirse de forma remota mediante Herramientas – Conectar mediante SSH.

Especifique la dirección del servidor, el puerto y los datos de autenticación, y luego seleccione los discos físicos o volúmenes requeridos. Se añadirán a Hetman RAID Recovery y estarán disponibles para el análisis y la reconstrucción del RAID sin necesidad de una conexión física al ordenador.

Cómo recuperar datos de Linux RAID 6
PASO 1. Detección automática del conjunto RAID
Después de iniciar Hetman RAID Recovery, el programa analiza automáticamente las unidades disponibles y busca en ellas signos de conjuntos RAID. Si los discos necesarios ya están conectados al ordenador, el conjunto encontrado se muestra en la sección Conjuntos RAID inmediatamente después del inicio.
Si los discos se añaden más tarde —conectados físicamente, montados desde imágenes o agregados mediante SSH— el programa vuelve a analizar los miembros RAID disponibles y, si hay suficiente información, reconstruye automáticamente el conjunto.

Para el RAID detectado, Hetman RAID Recovery muestra sus parámetros principales:
- tipo y capacidad del conjunto;
- tamaño de sector y de bloque;
- esquema de distribución de datos;
- estado del RAID;
- lista de discos miembros, su orden y desplazamientos.

En nuestro caso, el programa detectó automáticamente un Linux MD RAID 6 de aproximadamente 118 GB y lo mostró como listo para análisis posterior. Revisaremos los parámetros detallados del conjunto más adelante durante la reconstrucción manual.
Si faltan algunos discos, el programa los muestra como Disco vacío y determina si las unidades disponibles son suficientes para la reconstrucción. En nuestra prueba, incluso con dos de los cuatro discos RAID 6 ausentes, el conjunto tiene el estado Recuperable y sigue disponible para el análisis y la recuperación de datos.
PASO 2. Análisis del RAID y descifrado de datos
Para comenzar la búsqueda de datos, haga doble clic en el conjunto RAID o en la partición encontrados. Si Hetman RAID Recovery determina que el volumen está cifrado con LUKS, el programa le solicitará inmediatamente que introduzca una contraseña o especifique un archivo de clave.

Para descifrarlo, se requiere una contraseña válida o una clave, así como datos de servicio LUKS intactos.
Después de desbloquear LUKS, seleccione el tipo de análisis. En primer lugar, puede ejecutar un Análisis rápido; a menudo es suficiente si la estructura de la partición y el sistema de archivos no se dañaron y solo necesita encontrar archivos eliminados recientemente.

Si se realizaron operaciones destructivas en el disco —eliminación o creación de particiones, formateo, cambios en el sistema de archivos, daño en la tabla de particiones u otras operaciones que puedan alterar la estructura de los datos— se recomienda utilizar Análisis completo. Durante el análisis completo, especifique el sistema de archivos utilizado en el conjunto. En nuestro caso, se trata de Ext2/3/4.
Si durante el análisis el programa detecta datos cifrados con fscrypt, le pedirá que introduzca la frase de contraseña correspondiente. Después del descifrado, podrá continuar la búsqueda tanto de archivos existentes como eliminados.

PASO 3. Visualización y guardado de los archivos recuperados
Una vez finalizado el análisis, revise los archivos encontrados. Utilice el modo de miniaturas, la vista previa, así como la búsqueda y los filtros para encontrar rápidamente los datos necesarios y comprobar su contenido.
El programa marca los archivos eliminados con una cruz roja. Seleccione los archivos y carpetas que desea guardar y haga clic en Recuperación.

No guarde los datos recuperados en los discos que son miembros del conjunto RAID. Escribir en ellos puede sobrescribir información que aún no se ha recuperado. Utilice una unidad física separada para guardar los datos.
En el asistente, especifique el destino e inicie el guardado de los archivos.
PASO 4. Reconstrucción manual del RAID
La detección automática del RAID puede ser imposible si la información de servicio del conjunto está dañada, sobrescrita, ausente o es inconsistente entre los discos.
Esto puede ocurrir después de operaciones directas sobre los discos miembros que podrían haber dañado o sobrescrito los metadatos del RAID:
- inicialización de discos en Windows;
- ejecución de mdadm –zero-superblock;
- creación de un nuevo RAID sobre uno antiguo;
- modificación de la tabla de particiones;
- sobrescritura parcial de las unidades;
- o un rebuild fallido.

La reconstrucción manual también puede ser necesaria si faltan o están dañados algunos discos, si permanecen en las unidades metadatos de distintos conjuntos RAID, si se cambió el orden o los desplazamientos de los discos, o si se creó de forma incompleta una imagen de una de las unidades.
Si Hetman RAID Recovery no pudo determinar automáticamente la configuración del conjunto, puede reconstruirse manualmente mediante RAID Constructor.
Abra RAID Constructor, seleccione Modo manual y especifique los parámetros conocidos del conjunto.

Para el Linux MD RAID 6 creado con mdadm en nuestra prueba con la distribución estándar, RAID Constructor utiliza el esquema Left Synchronous P+Q. En nuestro caso, el tamaño de bloque fue de 512 KB.

Para la mayoría de las unidades, utilice 512 bytes en el campo Bytes por sector. Si el disco utiliza un tamaño de sector lógico de 4K, elija 4096 bytes.
Para Linux MD RAID estándar, deje el parámetro Orden de bytes en Estándar, a menos que el conjunto haya sido creado con otros ajustes específicos.
A continuación, establezca la secuencia correcta de las unidades y especifique el desplazamiento de datos —Offset— para cada una de ellas. En nuestra prueba, fue de 34.603.008 bytes para cada disco.

Si una o más unidades no están disponibles, añada en su lugar un Disco vacío.
Una vez ensamblada la configuración, añada el RAID reconstruido a la ventana principal del programa haciendo clic en Añadir.

Después de eso, puede trabajar con él de la misma manera que con un conjunto detectado automáticamente: desbloquear LUKS, analizar el sistema de archivos y recuperar los archivos necesarios.

PASO 5. Cómo determinar parámetros desconocidos del conjunto
Si algunos parámetros del RAID son desconocidos, pueden determinarse a partir de la estructura de los datos almacenados en el conjunto. En nuestro caso, sabemos que se utilizó Linux MD RAID 6 y que directamente sobre él había un volumen LUKS2 cifrado.

Comencemos determinando el desplazamiento de datos —Offset. Abra cada disco del conjunto en HEX Editor, inicie una búsqueda por valor HEX e introduzca la firma LUKS: 4C 55 4B 53 BA BE. En la configuración de búsqueda, establezca la dirección en Down, la posición en Begin of sector, e inicie la búsqueda.

En nuestro conjunto de prueba, la firma LUKS se encontró en la dirección 34.603.008 bytes desde el inicio del disco. Este es el valor que utilizamos como Offset para todos los discos de nuestro conjunto.

El disco en el que se encontró la firma contiene el inicio del volumen lógico LUKS. Esto permite determinar el desplazamiento de datos y obtener un disco de referencia, pero la firma en sí no muestra la secuencia completa de todas las unidades. Por lo tanto, si se desconoce el orden de los discos, deje que la detección automática lo determine mediante Detectar automáticamente el orden de los discos.

A continuación, establezca los parámetros del RAID que ya se conocen. Si el conjunto fue creado con mdadm usando la configuración predeterminada, el esquema típico para RAID 5 es Left Synchronous, y para RAID 6 es Left Synchronous P+Q. En nuestro caso, el tamaño de bloque es de 512 KB. Si este parámetro se cambió durante la creación del RAID, puede tener otro valor, por ejemplo 64, 128, 256 KB o 1 MB.
Para los parámetros que pudieron determinarse, especifique valores exactos. Deje Detectar automáticamente solo para los parámetros desconocidos. Esto reduce significativamente el número de configuraciones posibles y acelera la búsqueda.
Después haga clic en Siguiente y espere a que finalice la validación de las variantes.
Durante la búsqueda, Hetman RAID Recovery muestra el progreso, el tiempo transcurrido y el número de configuraciones encontradas. Cuando finalice la búsqueda, seleccione la configuración más adecuada y añada el RAID reconstruido a la ventana principal del programa.
La corrección de los parámetros puede verificarse por la estructura de los datos resultantes. En nuestro caso, Hetman RAID Recovery debería detectar un volumen LUKS2 del tamaño esperado. Si se desbloquea correctamente con la contraseña adecuada y dentro se identifica el sistema de archivos EXT4, la configuración del RAID se ha seleccionado correctamente.

Conclusión
Hetman RAID Recovery detectó automáticamente el Linux MD RAID 6 de prueba, desbloqueó LUKS2 utilizando la contraseña conocida y, durante el Análisis rápido, encontró tanto archivos existentes como eliminados. Tras introducir la frase de contraseña de fscrypt, el programa también obtuvo acceso a los archivos existentes y eliminados en el directorio adicionalmente cifrado.
Si los metadatos del RAID son insuficientes, el conjunto puede reconstruirse manualmente en RAID Constructor utilizando los parámetros conocidos, o puede utilizarse la selección automática de valores desconocidos. La búsqueda de la firma LUKS2 en HEX Editor ayuda a determinar el desplazamiento de datos, y la corrección de la configuración puede verificarse mediante el desbloqueo correcto de LUKS y la detección del sistema de archivos EXT4.







