Recuperar datos de una partición btrfs en una unidad cifrada LUKS cuando ha fallado el SSD

15 de enero de 2023

Pues estaba trabajando, plácida y alegremente, haciendo nosequé cuando… ¡CLONCH! El equipo se quedó congelado. Ya hace un tiempo que me hubo dado unos problemas la RAM, unas celdas defectuosas fueron introduciendo errores al disco, hasta que, durante una actualización, esos errores afectaron al arranque.

En aquella ocasión, aproveché que tuve que hacer una nueva instalación para cifrar la unidad con LUKS. También conseguí marcar las direcciones de memoria erróneas pasando unos parámetros pasados al kernel desde el arranque.

Pensé que se trataba otra vez de la memoria, los síntomas eran parecidos. Pero al intentar reiniciar, y digo «intentar»… Esos mensajes de error de superbloque y algo del DMA, me hicieron pensar en el SSD.

Intentando encontrar una explicación

Buscando en interné

Parecía que el error podía deberse a varias causas: desde el cable de datos, hasta el controlador SATA de la placa madre, pasando porque simplemente fuese una corrupción de datos en la partición.

Intenté hacer una reinstalación, pero ni me dejaba formatear la unidad. Descartado, pues, que fuese solo corrupción de datos.

Pues es una putada. En la partición iban varios scripts útiles, algunas contraseñas, configuraciones de aplicaciones que habían sido optimizadas durante meses (en serio, piensa en ello; que se joda la partición, bueno, vuelves a instalar, pero perder esas personalizaciones… Yo nunca consigo que quede igual)

Por descartar, desmonté la unidad y la monté en mi equipo de sobremesa, a ver si, montando desde otro sistema podía, al menos, recuperar datos. Efectivamente, no hubo manera, error de escritura y nosequé más.

Después de intentar la recuperación del btrfs, siguiendo algunas guías, y basándome meramente en suposiciones, me acordé de la herramienta «Gestor de particiones de KDE». Por probar que no sea…

Gestor de particiones de KDE

Guardar una copia de seguridad de la partición

Después de intentar, sin éxito, corregir errores con esta herramienta gráfica de particionado, me di cuenta que permitía guardar una copia de la partición.

Bueno, si el problema es que el «disco» no permite escribir y por ello no puede restaurar el superbloque, quizás, en una unidad que sí sea escribible, pueda restaurarlo y recuperar datos.

Copia de respaldo con el gestor de particiones de KDE

Recuperando los datos de la partición

Un par de días más tarde, me puse a juguetear con la partición. Intenté, directamente recuperar el btrfs pero siempre daba error de que no encontraba nada… ¡Qué mal!

Hasta que pensé… «¿No me habré traído la unidad cifrada?»

Supongamos que el fichero de imagen se llama copiaParticon.img. Lo primero era intentar averiguar si se trataba de una unidad cifrada:

cryptsetup isLuks copiaParticion.imgLenguaje del código: CSS (css)

Y esto, no devolvía nada… Pero linux tiene la filosofía de no quejarse de aquello que va bien, que finaliza correcto. El resultado del último comando ejecutado, debería ser 0 si finalizó correctamente.

echo $?
0Lenguaje del código: PHP (php)

Ok, 0, asumo que esto quiere decir que SÍ es una unidad cifrada. Lo primero, entonces sería descifrarla:

Por comodidad: sudo su

Descifro y abro la unidad cifrada:

cryptsetup open copiaParticion.img miUnidadLenguaje del código: CSS (css)

Esto pide la contraseña de cifrado y, si le das la correcta, te crea la unidad accesible en, /dev/mapper/miUnidad.

Queda, entonces comprobar si se puede montar o hay que repararla.

mount -t btrfs -o loop /dev/mapper/miUnidad /mnt

En mi caso, se montó correctamente a la primera. Accedí a /mnt y listé los archivos.

cd /mnt
ls -a

¡Listo! Ahora solo queda copiar los ficheros que quiera recuperar donde los necesite.

Este fue mi caso, quizás no siempre sea recuperable, o quizás no siempre sea recuperable así. Pero si tienes la posibilidad de sacar copias de la partición de la unidad dañana, siempre puedes juguetear con ella y a ver qué sale.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.