Recuperar datos de una partición btrfs en una unidad cifrada LUKS cuando ha fallado el SSD
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…
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.
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.img
Lenguaje 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 $?
0
Lenguaje 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 miUnidad
Lenguaje 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.