Recuperar partición cifrada
RECORDATORIO
Esto es el típico recordatorio, una anotación en un papel que siempre extravías.
Fuera de su contexto puede no tener ningún sentido.
09/06/2011
Contents
Recuperar partición cifrada
Imaginemos que hipotéticamente destrozas los primeros sectores de el disco duro de tu portátil. La recuperación del contenido que no haya sido afectado puede ser larga y tediosa, pero si adem;as tienes una partición cifrada, el proceso puede complicarse.
Esto es una pequeña receta para intentar solucionar algunos de estos males.
Herramientas utilizadas
Para realizar éste proceso de recuperación se ha utilizado SystemRescueCd
Realizando una imagen
Cuando se hacen pruebas de recuperación, la prueba y el error no suelen ser buenas compañeras, porque cuando hay un error los datos no pueden volverse a regenerar. Para poder realizar todas las pruebas sin miedo a las consecuencias, primero realizamos una imagen del disco duro afectado:
dd if=/dev/sda of=/mnt/backup/imagen.dd
Esto nos puede llevar muuuchoooo tieeemmmpooooo. Recordad que esos discos duros que caben en un bolsillo no son un ejemplo de velocidad.
Buscando la partición
Buscamos una partición que, por suerte, hemos creado con LUKS. Para localizarla utilizaremos hexedit, buscando la cadena hexadecimal 4C554B53BABE. Seguro se puede afinar más 'esta búsqueda, pero me ha sido suficiente.
Como vemos en la imagen, hemos encontrado la partición requerida en la dirección 0x4B4530000
Convertimos a decimal
Para poder asignar una offset al fichero de imagen y utilizar la partición, se requiere convertir la dirección conseguida a decimal, para lo que utilizaremos bc:
$ bc ibase=16 4B4530000 20205207552
El numero que nos interesa es 20205207552
Configuramos el dispositivo para el montaje
Ahora vamos a generar un dispositivo que apunte a la imagen generada con el número de offset necesario para apuntar a la partición que deseamos. La utilidad que necesitamos es losetup:
losetup -o 20205207552 /dev/loop3 imagen.dd
Podemos comprobar que todo funciona correctamente con el comando file:
# file -s /dev/loop3 /dev/loop3: LUKS encrypted file, ver 1 [aes, cbc-essiv:sha256, sha1] UUID: 5522e5d2-db18-4848-1722-8396eab1ed10
Montaje de la partición LUKS
Ya tenemos todo preparado. Sólo nos queda montar el dispositivo y tener suerte.
- Abrimos el dispositivo LUKS
# cryptsetup luksOpen /dev/loop3 LUKS Enter passphrase for /dev/loop3:
- Montamos el dispositivo LUKS
mount /dev/mapper/LUKS /mnt/recuperar
Resultado
Si habéis tenido mucha, mucha suerte, puedes recuperar toda la información. Si no sólo te queda intentar recuperar lo que se pueda como si /dev/mapper/LUKS fuera un filesystem más.