Sunteți pe pagina 1din 9

PORTADA 10 Trucos Knoppix

Top 10 Trucos de Rescate con Knoppix

Al Rescate
La distro Live Knoppix viene con herramientas poderosas para arreglar sistemas rotos. Preguntamos al creador de Knoppix, Klaus Knopper, por sus trucos favoritos de rescate. POR KLAUS KNOPPER
a distribucin Live Knoppix est especializada en rescatar ficheros perdidos, sistemas, particiones y discos duros. Le hemos pedido a Klaus Knopper, el creador de Knoppix, que nombre los 10 escenarios de rescate ms importantes. Algunas de estas soluciones estn basadas en una nica herramienta y otras utilizan una combinacin de ellas o aplicaciones alternativas. Si llegamos a dominar estas 10 tcnicas, estaremos en el camino de convertirnos en los expertos en la oficina sobre el rescate de sistemas. Una advertencia: el anlisis de datos y su posible rescate no son tareas para un principiante. Deberamos estar familiarizados con el proceso antes de trabajar en un entorno real de trabajo. De otra forma, podramos acabar destruyendo ms datos de los que podramos recuperar.

rsync -HavP U <carpeta_original> U <carpeta_copia>

crea una copia idntica del fichero (o directorio), incluyendo el tipo de fichero, fecha y permisos de acceso (opcin -a). La opcin -H asegura que los enlaces duros son recreados en la copia y -v y -P muestran el progreso de la copia. Si se interrumpe, rsync retomar la copia donde se dej en el intento anterior y rsync incluso permite copiar slo las partes que se han cambiado. Cuando usamos la sintaxis
<usuario>@<host>:U <fichero>

como fuente o destino, se utiliza SSH para la transferencia de ficheros entre ordenadores. Hay que decir que rsync NO leer el contenido de un archivo de dispositivo de bloques, como /dev/sda. En vez de eso, crear un archivo de bloques especial y leer la copia. Para leer y escribir datos desde y hacia dispositivos de bloques, hay que utilizar dd o dd_rescue.

3 dd y dd_rescue
Tanto dd (comando estndar del sistema Unix) y dd_rescue (especialidad de res-

Reglas para el Camino


La mayora de las herramientas de reparacin de discos totalmente automticas que prometen que no necesitas conocimientos mienten. Estas herramientas tienen tendencias a despedazar tus datos y simplemente recuperar los ltimos fragmentos de datos y dirs que es un gran xito. Leer datos desde un medio parcialmente defectuoso lo hace incluso peor, as que es una buena idea mantener el estrs mecnico en los discos duros lo ms bajo posible. El software no tiene manera de conocer si hay ruidos extraos de metal saliendo de nuestro ordenador, pero nosotros s, as que tenemos que planear nuestros pasos con cuidado y no confiar en nadie que no sepa el valor real de nuestros datos. Algunas reglas generales adecuadas para tareas de recuperacin: Leer o escribir slo las veces necesarias (especialmente si creemos que el medio puede estar defectuoso). Cuando leemos un sector parcialmente defectuoso una y otra vez, la corrupcin del disco empeora por efectos mecnicos y eventualmente, perderemos el disco por completo. Copia el disco por completo no slo las partes que suponemos que son relevantes (a menos que no tengamos tiempo para una copia completa) a un disco nuevo o a un almacenamiento en red y siempre trabaja con una copia cuando se vuelvan a escribir los cambios. No intentemos reparar un disco defectuoso. Adems, hay que asegurarse que el sistema de ficheros destino pueda manejar ficheros del tamao del disco original que queremos recuperar. FAT32, por ejemplo, slo puede manejar ficheros de hasta 4GB cada uno, ext3 o ReiserFS son buenos para almacenar ficheros grandes. Puede que necesitemos comprar un disco nuevo antes de comenzar las tareas de rescate. Paciencia. La transferencia de datos por USB 2.0 no es muy rpida. Podemos esperar sobre los 5MBps, as que hay que asegurarse de tener tiempo suficiente para esperar la copia total de una enorme cantidad de datos que seguramente encontraremos en un disco duro. Con estos simples consejos, las herramientas descritas en el artculo y la distro Knoppix en el DVD, podremos encontrar el camino en una gran variedad de posibles escenarios de recuperacin.

1 dmesg y Sistemas de Ficheros /proc y /sys


El comando dmesg revela mucha informacin sobre la secuencia en la que el hardware ha sido detectado e inicializado por el kernel y, adems, muestra errores que de otra forma no son visibles. dmesg puede ser la primera forma de detectar un error en el disco duro (Listado 1). La salida de dmesg muestra que el error de lectura en el fichero test.data fue causado por un error de lectura fsico e irrecuperable en el disco duro (lo que significa que hay partes del disco que no se pueden leer).

2 rsync
rsync es una buena eleccin para hacer copias de seguridad y para copiar directorios complejos y tipos de ficheros mezclados. La utilidad rsync incluso soporta cifrado y autenticacin por SSH. El comando

10

Nmero 92

WWW.LINUX- MAGAZINE.ES

10 Trucos Knoppix PORTADA

4 Copiar MBR
Algo comn es necesitar rescatar una particin incorrecta o perdida. Tanto si la BIOS no puede encontrar la particin del sistema operativo en el momento del arranque o si los datos de la particin desaparecen. Estos sntomas pueden ser causados por problemas relacionados con Windows, como que un virus pueda intentar instalarse en el sistema de arranque maestro (MBR) o intente crear particiones ocultas, pero puede ser tambin resultado de operaciones de reparticionado, intentos de cambiar el tamao de algunas particiones o defectos de hardware en los primeros 512 bytes del disco. En el caso de defectos de hardware, copiar el disco duro a un fichero de imagen, como se ha mencionado anteriormente, es una obligacin. En una particin estilo PC, las cuatro primeras particiones estn definidas directamente en los primeros 512 bytes y son, por lo tanto, las denominadas particiones primarias, donde las particiones extendidas son definidas en diferentes sectores posteriores. Crear un copia de seguridad de la tabla de particin primaria /dev/sda es tan simple como escribir:

cate derivada de dd) copian datos en forma de bloques. La diferencia principal, aparte de la sintaxis, es que dd_rescue puede omitir los errores de lectura eficientemente y reemplazarlos con ceros sin truncar el resultado del fichero final. Cuando copiemos un disco bueno a una imagen de fichero, usaremos dd:
dd if=/dev/sda U of=sda.img bs=1M

Este comando copiar todo el contenido del disco de /dev/sda al fichero de imagen sda.img. Sin embargo, dd no parar en los errores o al menos no cambiar la disposicin de los datos si se lanza con conv=noerror. Para leer discos parcialmente defectuosos, dd_rescue es la herramienta a utilizar (ver Listado 2). La imagen resultante, sdb.img, contiene lo que se pudo leer en el disco original, /dev/sdb, con todos los datos que no se pudieron leer a ceros, as que tendr el mismo tamao y, en el mejor de los casos, se podr incluso montar. En algunos casos, especialmente en los que no disponemos de tiempo para leer

disco entero, utilizar la opcin -r para dd_rescue puede ser muy til. La opcin -r hace que dd_rescue lea el disco al revs (p.ej., desde el ltimo bloque al primero). El fichero de salida se crear con el tamao del disco fuente. Si sabemos que la tabla de particiones del dispositivo fuente est todava correcta y coincide con el tamao del sisdd if=/dev/sda U tema de ficheros actual, podemos copiar of=sda.mbr U la particin de inters reemplazando sdb bs=512 count=1 por sdb1 en el comando. Si somos conscientes de que estamos Si queremos recuperar la tabla de partiponiendo mucho estrs en la cabeza de ciones posteriormente, sin sobrescribir el lectura de un disco duro ya defectuoso, sistema de arranque que reside en los pripodemos manualmente omitir posiListado 1: Buscando un Error de Disco con ciones utilizando dmesg
dd_rescue -s U <posicionini cial>
knopper:~# md5sum test.data md5sum: test.data: Input-/output error knopper:~# dmesg|tail ide: failed opcode was: unknown end_request: I/O error, dev hda, sector 119422514 hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=119422536, high=7, low=1982024, sector=119422522

el

para empezar despus de las reas defectuosas.

Listado 2: Lectura de Disco Parcialmente Defectuoso


dd_rescue -A /dev/sdb sdb.img dd_rescue: (info): ipos: 1667072.0k, opos: 1667072.0k, xferd: 1667072.0k errs: 0, errxfer: 0.0k, succxfer: 1667072.0k +curr.rate: 5270kB/s, avg.rate: 5808kB/s, avg.load: 8.1%

WWW.LINUX- MAGAZINE.ES

Nmero 92

11

PORTADA 10 Trucos Knoppix

meros bytes del disco, el comando correspondiente dd para hacerlo sera:


dd if=sda.mbr U of=/dev/sda U bs=1 count=64 skip=446 U seek=446

como de las extendidas. La salida del comando sfdisk mostrada en el Listado 3 contiene el disco particionado en unidades por sector. sda.sfdisk puede recrear la tabla de particiones fcilmente de esta forma:
sfdisk < sda.sfdisk

el tamao lgico del sector ser de 4096 en vez de los habituales 512 bytes. En este caso, copiar los primeros 512 bytes no ser suficiente. Necesitaremos copiar el GPT y la copia de seguridad GPT al final de la particin. Gparted o gdisk son de mucha ayuda para este tipo de tareas.

6 losetup y cryptoloop
Trabajar con copias de un disco en la forma de fichero de imagen tiene ms sentido si podemos decirle a Linux que gestione el fichero como si fuera un disco real incluyendo los controles de entrada y salida que son utilizados para leer la geometra de discos y tamaos de las particiones. Esta capacidad nos permite utilizar partes del fichero como si fueran particiones de discos duros. Para esta caracterstica, el mdulo de kernel loopback device (que por supuesto no tiene nada que ver con loopback network lo 127.0.0.1) viene muy bien. La funcionalidad loopback mapea un fichero a uno o ms bloques en /dev/loop*, as que nuestro sistema ve particiones y discos adicionales una vez que el fichero est enlazado. El comando
losetup /dev/U loop0 sda.img

fsdisk es probablemente la mejor herramienta en lnea de comandos para tareas interactivas de particiones y tiene un formato de salida muy fcil de leer (Listado 4). Cuando se ejecuta de forma interactiva, como aqu:
fdisk /dev/sda

fdisk proporciona un men simple de lnea de comandos que nos permite cambiar particiones y parmetros de disco que se escriben al disco cuando abandonamos el programa con el comando de fdisk w. Abandonar el programa con q deja la tabla de particiones sin cambios, as que es mejor establecer todos los cambios primero, comprobar los resultados con p (imprimir tabla de particiones) y entonces decidir si es adecuado proce(s)fdisk y gdisk der. La herramienta sfdisk se utiliza a Tanto fdisk como sfdisk pueden trabamenudo en scripts por consola para comjar con ficheros en vez de discos, aunque probar y reparticionar un disco duro de para los ficheros, necesitamos decir a manera no interactiva. Este comando fdisk la geometra del disco deseada tambin puede crear copias de seguridad debido a que no puede ser obtenida legibles tanto de las particiones primarias desde un dispositivo de bloque cuando se est trabajando con una copia de un Listado 3: Salida de sfdisk fichero. sfdisk -uS -d /dev/sda > sda.sfdisk Si tenemos un # partition table of /dev/sda disco de 2TB o ms unit: sectors grande, es probable /dev/sda1 : start= 63, size=160649937, Id=83, bootable que tenga una tabla /dev/sda2 : start=160650000, size= 8032500, Id=82 de particin GUID /dev/sda3 : start=168682500, size=319709565, Id=83 /dev/sda4 : start= 0, size= 0, Id= 0 (GPT), por lo que

adjuntar el fichero sda.img al dispositivo loopback si est libre. Despus de eso, herramientas como testdisk o fdisk podrn trabajar en el disco adicional. Para acceder a particiones dentro de la imagen (o en un dispositivo de bloques que carezca de particiones, pero que sepamos dnde estn las particiones localizadas), usaremos el parmetro offset:
losetup /dev/U loop0 U sda.img -o U offset_in_bytes

Listado 4: Salida de fdisk


fdisk -l /dev/sda Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xabf319e9 Device Boot /dev/sda1 * /dev/sda2 /dev/sda3 Start 1 10001 10501 End Blocks Id System 10000 80324968+ 83 Linux 4016250 82 Linux swap / Solaris 10500 30401 159854782+ 83 Linux

Para calcular correctamente el offset (desplazamiento), necesitaremos tener acceso a la informacin de la particin. Por ejemplo, si el registro de la particin se obtiene desde testdisk o gpart, necesitaremos multiplicar la localizacin de inicio desde sfdisk -uS o fdisk -lu por 512 para obtener el offset en bytes (Listado 5). En el Listado 5, el comienzo de la primera particin es el sector 8192, as que

12

Nmero 92

WWW.LINUX- MAGAZINE.ES

PORTADA 10 Trucos Knoppix

losetup mapear correctamente la particin uno con:


losetup /dev/U sda.img U -o $((512 * 8192))

Podemos utilizar el constructor $(()) en la consola de comandos para hacer clculos aritmticos. Ya debera ser posible montar la particin. El sistema de ficheros debera saber donde empieza y donde acaba, as que no importa realmente si el tramo de la particin mapeada con losetup est sobre el resto del disco. Hay que utilizar:
mount /dev/U loop0 /mnt

cloop device (o cualquier otro dispositivo libre cloop), donde el fichero de imagen es una imagen comprimida cloop. Sin embargo, la opcin de slo lectura (-r) para montar puede ser obligatoria, dependiendo de la versin de losetup y mount. losetup soporta la extensin cryptoloop, que est presente en el kernel con las siguientes opciones:
-e tipo cifrado -k longitud de la clave en bits -N utilizar la frase de U contrasea como clave real, U no utilizar algoritmo hash

module/$m ] U || modprobe $m done

No olvidemos separar el archivo de loopback despus umount, de otra forma no podramos librarnos de las referencias y el dispositivo de loopback permanecera bloqueado. El comando
losetup -d /dev/loop0

separar el fichero de /dev/loop0.

7 mount
Ya hemos descrito la mayora de las caractersticas extendidas de mount en la seccin anterior en conexin con losetup. El ltimo recurso, para el caso poco comn donde ni gpart ni testdisk puedan encontrar particiones, es el (lento) script de Bash en el Listado 6, que intenta montar cada sector comenzando por un offset hasta el final del disco e intentado todos los posibles sistemas de archivos conocidos por el kernel. Se escribe un registro en mount.log. Debido a que utiliza llamadas de privilegios de sistema, el script debe ser ejecutado con permisos de root.

Por ejemplo:
losetup -e aes U -k 256 -N U /dev/loop0 partition.img

o
mount -t U tipo de sistema de ficheros U /dev/loop0 /mnt

Si nuestra distribucin utiliza una versin especial de losetup del paquete loop-aes, las opciones son diferentes:
-e tipo cifrado -H algoritmo de hash para U trastear frases claves

si queremos especificar el sistema de ficheros manualmente y no utilizar la auto deteccin. La utilidad de Linux mount tiene una interfaz para retornar el bucle, as que podemos adjuntar el fichero al dispositivo loopback y montar la particin inmediatamente:
mount -o loop,offset=$U ((512 * 8192)) sda.img /mnt

El primer ejemplo se parecer a esto,


losetup -e AES256 U -H unhashed2 U /dev/loop0 partition.img

8 hexedit
En ciertas ocasiones, ninguna de las herramientas mencionadas anteriormente pueden descubrir un fichero debido a que la mayora del contenido de las particiones est sobrescrito o no se puede leer, siendo cuando nos enfrentamos a la posibilidad real de decir adis a nuestros datos. An as, puede que seamos capaces de obtener al menos algunos fragmentos de ficheros que contengan informacin importante que no queramos perder. hexedit es la herramienta a utilizar para comprobar textos conocidos o combinaciones de bytes, para intentar averiguar si merece la pena examinar el disco para recuperar datos. hexedit puede trabajar tanto en imgenes de discos basadas en ficheros como en discos o particiones. Podemos utilizar hexedit interactivamente y cambiar entre la vista binaria (hexadecimal) en el lado izquierdo y la representacin textual en el lado derecho con la tecla Tabulador. Esto es especialmente importante si buscas por fragmentos de texto utilizando el comando de bs-

Los ficheros ya podrn ser copiados desde (y hacia, si no la montamos en slo lectura con -r) la particin montada. Si mount no puede encontrar el dispositivo por s mismo, podemos especificar cul utilizar reemplazando loop por loop=/dev/loop1. Esto tambin funciona con los ficheros comprimidos en cloop (tpico de Knoppix), si utilizamos loop=/dev/cloop1free

permitiendo montar la misma particin cifrada. El montaje se realiza como antes:


mount /dev/loop0 /mnt

Listado 5: Obteniendo la Inicial


sfdisk -uS -d sda.img # partition table of sda.img unit: sectors sda.img1 : start= sda.img2 : start= ...

A continuacin, los datos se leen y almacenan slo en el disco duro cifrado, donde el punto de montaje es una vista descifrada del sistema de ficheros. Si losetup produce errores slo cuando se utiliza cifrado, puede que antes tengamos que cargar los Localizacin mdulos de cifrado:
for m in loop U cryptoloop U aes_generic U aes_i586 cbc; do [ -d /sys/U

8192, size= 7736320, Id= b 0, size= 0, Id= 0

14

Nmero 92

WWW.LINUX- MAGAZINE.ES

PORTADA 10 Trucos Knoppix

9 ntfsprogs y ntfs-3g
Desde la disponibilidad de ntfs-3g, un controlador libre de espacio de usuario para sistemas de archivos NTFS [1], NTFS se ha convertido en una buena opcin para intercambiar datos entre sistemas Linux y Windows. NTFS, al contrario que FAT32, soporta ficheros mayores de 4GB y tiene algunas caractersticas similares a Unix, como atributos y permisos de ficheros extendidos. Al instalar el paquete ntfs-3g (que ya est presente en Knoppix), el asistente de sistemas de ficheros para el comando mount se extiende a un nuevo tipo, -t ntfs-3g , que utiliza la misma sintaxis en los comandos mount y ntfs-3g. Al contrario que el controlador interno de NTFS en el kernel, ntfs-3g tiene soporte completo de escritura. Para montar un sistema de ficheros NTFS hay que utilizar datos que queremos mantener y guardar en un nuevo fichero. Si no sabemos exactamente dnde empieza y acaba el fichero, simplemente seleccionaremos un rango holgado y almacenaremos todo lo que necesitemos. Podemos cortar el fichero al tamao correcto despus. hexedit tambin puede ser utilizado como editor de estructuras internas, como tablas de particin, en modo binario y, si sabemos algo del cdigo binario de la mquina de una arquitectura especfica, podemos incluso alterar el comportamiento de programas de arranque o de herramientas directamente editndolos en el disco y guardando los cambios. Cambiar ASCII es fcil, lo que nos permite cambiar etiquetas de disco y renombrarlas.
ntfs-3g /dev/particion U /puntomontaje

Figura 1: Un volumen NTFS en hexedit.

queda /. Antes de buscar texto, tenemos que pulsar Tabulador hacia el lado derecho (text), de otra forma, el modo de bsqueda ser binario/hexadecimal. La Figura 1 muestra a un volumen NTFS siendo editado con hexedit. Buscar por fragmentos de texto puede ayudarnos a encontrar ficheros de texto o copias de seguridad antiguas. Los sistemas de ficheros diarios (Journal) tienden a no sobrescribir versiones antiguas de un fichero una vez que una nueva versin del mismo fichero es almacenado, as que la particin puede tener un montn de copias de seguridad por ah, incluso si el fichero ha sido borrado de mientras. Si se encuentra un fragmento, podemos marcar el comienzo y el final de los

o, de modo alternativo:
mount -t ntfs-3g U /dev/particion /puntomontaje

Si el sistema de ficheros est en un estado inconsistente, ntfs-3g intentar reparar algunas de las estructuras NTFS automticamente, hasta un grado en el que pueda ser montado normalmente. Se hace una excepcin para particiones que contengan un fichero de Windows 8 en hibernacin. Cambiar contenidos en esta particin podra hacer que Windows fallara o podra destruir los datos de Windows en modo arranque rpido, as

Listado 6: Buscando Particiones


01 #!/bin/bash 02 03 # Este es la imagen generada por dd o dd_rescue 04 DEV=disk.img 05 06 # Punto de montaje destino, existiendo un directorio sin uso 07 MNT=/mnt 08 09 # Valores alto aceleran la bsqueda, pero pueden perder el comienzo actual del sistema de ficheros 10 # Mnimo es 512 y el valor debe ser un mltiplo de 512, que es el tamao del sector. 11 SKIP=4096 12 13 # ltimo offset a probar 14 final_offset=$(du -b $DEV | cut -f 1) 15 16 # Un bucle de dispositivo libre 17 LOOP=/dev/loop2 18 19 # Comienzo 20 offset=0 21 22 while [ $offset -lt $final_offset ]; do 23 echo -n -e \rIntentando $offset... 24 if mount -o loop=$LOOP,ro,offset=$offset $DEV $MNT >>mount.log 2>&1 ; then 25 echo -e \nSistema de ficheros encontrado, montado en $MNT 26 break 27 fi 28 losetup -d $LOOP >/dev/null 2>&1 29 let offset+=$SKIP 30 done

16

Nmero 92

WWW.LINUX- MAGAZINE.ES

10 Trucos Knoppix PORTADA

que ntfs-3g simplemente rechazar reparar y montar la particin en modo lectura-escritura. Podemos intentar montarlo como slolectura utilizando la opcin -o ro o podemos decidir destruir el fichero de hibernacin con la opcin ntfs-3gs remove_hiberfile, que forzar a Windows a hacer un reinicio completo la prxima vez. La utilidad ntfsfix es ahora parte del paquete ntfs-3g. Todo lo que hace es reiniciar el diario NTFS y marcar el sistema de archivos para ser comprobado en el prximo reinicio de Windows. Aunque esto puede ayudar a arreglar errores de Windows en el inicio, montar el sistema de archivos con ntfs-3g requiere ntfsfix para acceder a volmenes de NTFS defectuosos. Una vez tuve un caso en el que fue necesario para poder montarlo correctamente. La herramienta ntfsclone crea una copia exacta de un sistema de archivos NTFS y almacena todo en un fichero parco, lo que implica que slo los datos que realmente se utilizan para los ficheros son copiados fsicamente y se reserva un espacio para el fichero destino. El comando ntfsclone analiza la estructura del sistema de archivos y omite los sectores que no estn en uso. Un simple cp o rsync en el nivel del sistema de archivos montado har bsicamente lo mismo, pero no mantendr los atributos extendidos de NTFS intactos, por lo que el sistema de ficheros copiados puede que no se inicie correctamente en Windows. Si ntfs-3g falla al reparar y montar un volumen defectuoso de NTFS por alguna razn, podemos intentar probar la opcin de slo lectura, el sistema de archivos NTFS interno del kernel aadiendo la opcin -i al comando mount,
mount -r -i -t ntfs U /dev/sda1 /mnt

pierde cuando la tabla de asignacin de ficheros es borrada. Es posible detectar y restablecer los datos de los ficheros conociendo las firmas de los contenidos. Muchos tipos de ficheros contienen una cabecera con informacin sobre el contenido y tamao del fichero. Esta informacin, junto con el comienzo de la firma de otros ficheros, puede ser utilizada por PhotoRec [2] para copiar datos de los archivos en nuevos ficheros, sin conocimiento (o con poco) sobre la estructura original del sistema de archivos (Listado 7). Despus de que finalice PhotoRec, la mayora de los ficheros del disco flash formateado e incluso de los ficheros previamente borrados en el mismo medio (a pesar del hecho de que fue reformateado a ext2), tienen una copia localizada en el directorio final especificado en el dilogo. Desafortunadamente, los nombres de ficheros originales y sus rutas desaparecen y adems, tendremos un montn de ficheros con nombres divertidos como f2933584.jpg. Sin embargo, con algo de orden manual y comprobacin de los contenidos de los ficheros (algo que es fcil mirando las miniaturas del navegador de ficheros), podremos restablecer todo al estado inicial. TestDisk puede que haga incluso un trabajo mejor. La utilidad TestDisk [3] es la primera eleccin para situaciones donde es necesario restaurar datos al

mismo directorio y renombrar la estructura como antes. Christophe Grenier escribi inicialmente TestDisk como una herramienta de reparacin de particiones bajo DOS, lo que explica la sintaxis tipo DOS, con opciones formateadas como /flag en vez de --longflag o -shortflag. La versin actual en Knoppix es TestDisk 6.13. Cuando introducimos
testdisk /dev/sdb1

TestDisk encontrar la firma del sistema de archivos ext2 anterior y especificar el super bloque de copia de seguridad y el tamao de bloque que se debe utilizar para intentar reparar el sistema de ficheros (Listado 8). Es recomendable copiar la particin en cuestin en una nueva imagen del sistema de archivos (TestDisk tiene una opcin para hacer esto) y a continuacin hacer la comprobacin en el sistema de ficheros actual en esa copia, con lo que la particin original permanecer sin cambios para una posible investigacin posterior. Nota: no hay que intentar reparar el disco original, debido a que en cada byte que se sobrescribe podemos perder informacin valiosa que podra haber sido utilizada por otras herramientas forenses. Es mejor trabajar en una copia (fichero de imagen). Al ejecutar una comprobacin del sistema de archivos:

Listado 7: Buscando Tipos de Ficheros Conocidos


PhotoRec 6.13-WIP, Data Recovery Utility, November 2011 Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org Disk /dev/sdb1 - 2003 MB / 1911 MiB (RO) - SD CARD Partition Start End Size in sectors P FAT32 0 0 1 1018 8 40 3913728 Pass 1 - Reading sector 113154/3913728, 11 files found Elapsed time 0h00m45s - Estimated time to completion 0h25m11 png: 9 recovered jpg: 5 recovered ...

que evitar que mount llame a mount.ntfs (que es un alias de ntfs-3g).

Listado 8: Buscando Copias de Superbloques


Particin Comienzo Fin Tamao en secotres ext2 0 0 1 1018 8 40 3913728 superblock 32768, blocksize=4096 [] superblock 98304, blocksize=4096 [] superblock 163840, blocksize=4096 [] superblock 229376, blocksize=4096 [] superblock 294912, blocksize=4096 [] Para reparar el sistema de ficheros utilizando un superbloque alternativo, ejecutar fsck.ext2 -p -b superblock -B blocksize device

10 TestDisk y PhotoRec
Afortunadamente, formatear o crear el sistema de ficheros (mkfs), no sobrescribe la mayora de los datos. Una operacin de formateo crea un fichero de ndice vaco, as que la conexin entre un nombre de fichero y su contenido se

WWW.LINUX- MAGAZINE.ES

Nmero 92

17

PORTADA 10 Trucos Knoppix

Adems, TestDisk conoce suficiente sobre los TestDisk 6.13-WIP, Data Recovery Utility, November 2011 metadatos de ext2 Christophe GRENIER <grenier@cgsecurity.org> para detectar al http://www.cgsecurity.org P ext3 0 0 1 6 95 25 102400 propietario del Directory / fichero, fechas y permisos. (TestDisk >drwxr-xr-x 1000 100 1024 9-Nov-2011 15:39 . drwxr-xr-x 1000 100 1024 9-Nov-2011 15:39 .. puede acceder a los drwx-----0 0 12288 9-Nov-2011 15:37 lost+found metadatos del sis-rw-r--r-- 1000 100 0 9-Nov-2011 15:39 AskKlaus.odt -rw-r--r-- 1000 100 735989 9-Nov-2011 15:38 klaus-1.png tema de ficheros -r-xr-xr-x 1000 100 2067683 9-Nov-2011 15:38 Image0001.jpg NTFS a travs de libntfs o ntfs-3g.) Utilice Derecha para cambiar de directorio, h para ocultar ficheros eliminados Tambin podeq para salir, : para seleccionar el fichero actual, a para mos utilizar Photoseleccionar todos C para copiar los ficheros seleccionados, c para copiar el Rec y TestDisk para fichero actual recuperar ficheros borrados. Para algunos sistemas de Listado 10: Escanear Espacio Libre archivos, es relaticon PhotoRec vamente sencillo PhotoRec 6.13-WIP, Data Recovery Utility, November 2011 recuperar ficheros Christophe GRENIER <grenier@cgsecurity.org> http://www.cgsecurity.org que han sido borrados utilizando las P ext3 0 0 1 6 95 25 102400 tcnicas convencionales. Los sistemas Por favor elija si todo el espacio necesita ser analizado: FAT* (incluyendo >[ Libre ] Escanear solo un fichero del espacio sin asignar de ext2/ext3 exFAT), NTFS y [ Todo ] Extraer ficheros de toda la particin ext2, simplemente marcan como fsck.ext2 -b 294912 -B U borrado a sus ficheros en sus estructuras 4096 /dev/sdb1 de asignacin (en FAT, cambiando 1 byte) y actualizan la lista de bloques libres dos Vemos que el directorio MisFotos est operaciones que son bastante triviales de ubicado en el directorio lost+found en el revertir. Por lo tanto, podemos recuperar sistema de ficheros ext2 restablecido, con ficheros por completo si los datos actuales lo que puede ser montado otra vez. no han sido sobrescritos por un nuevo Con un poco ms de suerte y con fichero en operaciones posteriores. unos puntos de comienzo ligeramente La deteccin de ficheros en ext3 y ext4 desplazados que revelen ms de la es diferente de ext2. Para borrar un estructura de ficheros ext2 anterior, fichero, primero se ponen sus punteros TestDisk puede que sea capaz de de bloque a cero (pero no el fichero de encontrar los datos del sistema de datos), para recuperarse correctamente archivos directamente y puede que en caso de error y a continuacin, su acceda a los datos con un navegador de referencia es eliminada de la estructura ficheros interno. de asignacin del sistema de ficheros. En la navegacin por las particiones del Listado 11: Seleccionando el sistema con TesDirectorio Destino tDisk, se obtuvo la PhotoRec 6.13-WIP, Data Recovery Utility, November 2011 salida que se puede Por favor seleccione el destino para guardar los ficheros ver en el Listado 9. recuperados. Se puede apreciar No seleccione escribir los ficheros en la misma particin donde que un fichero eliestaban almacenados. Teclas: Flechas para seleccionar otro directorio minado, AskKlaus. C cuando el destino es correcto odt, est declarado Q para salir como que ocupa Directory /tmp/recover >drwxr-xr-x 1000 100 40 9-Nov-2011 20:44 . cero, pero por su drwxrwxrwt 0 0 660 9-Nov-2011 20:44 .. puesto este no fue

Listado 9: Identificando un Fichero Eliminado

el caso antes de ser borrado. Aparte de copiar un fichero de tamao cero con al menos el nombre correcto, no hay mucho ms que podamos hacer aqu con TestDisk, por lo que cambiamos a PhotoRec para recuperar los datos del fichero (Listado 10). Especificar el sistema de archivos ayuda a PhotoRec a obtener ms informacin sobre el fichero, especialmente para detectar fragmentos de archivo discontinuos en trozos enlazados. Debido a que slo queremos detectar el fichero, hay que escanear el rea sin asignar del sistema ext3 (Listado 10). A continuacin viene un selector que preguntar por el destino de los datos rescatados (Listado 11). PhotoRec gestiona el disco fuente como slo de lectura por lo que se necesita un directorio con permisos de escritura en un segundo disco en el que copiar todos los ficheros recuperados. Despus de seleccionar el destino, PhotoRec comenzar a escanear la particin y almacenar una copia de todos los ficheros que pueda identificar. Actualmente, PhotoRec puede detectar unos 300 tipos de ficheros y sabe como gestionarlos correctamente. Podemos activar o desactivar su deteccin de ficheros en el men de Opciones de Archivos. El fichero eliminado, de LibreOffice, est entre los tipos de ficheros conocidos, as que podemos encontrarlo en la carpeta destino seleccionada /tmp/recover/, junto con un informe en formato XML.

Conclusiones
No podemos detenerel fallo de un disco duro y tampoco podemos saber cuando un error de disco o una instalacin errnea har que nuestro sistema no sea capaz de arrancar. Lo mejor que podemos hacer es coger algo de experiencia con las herramientas que necesitaremos en el momento de rescatar nuestro sistema. Hay que mantener una copia de Knoppix a mano e iniciar con Knoppix DVD o con la versin en USB cuando el problema llegue. Los consejos descritos en este artculo cubren la mayora de los escenarios de rescate ms comunes.

RECURSOS
[1] Tuxera: http://www.tuxera.com [2] PhotoRec: http://www.cgsecurity. org/wiki/Photorec [3] TestDisk: http://www.cgsecurity.org/ wiki/TestDisk

18

Nmero 92

WWW.LINUX- MAGAZINE.ES

S-ar putea să vă placă și