Gracias a HowtoForge en donde se puede encontrar un articulo muy completo donde se muestra como poder realizar un backup y la recuperación de un sistema de ficheros NTFS desde un Sistema Linux. De este modo podemos recuperar los tradicionales desastres que ocurren en equipos con windows XP, Windows Vista o Windows 7, que no arrancan, y queremos salvar los datos. Como en otras ocasiones, Linux le salva la vida a los datos guardados por Windows.
Para tal función utlizaremos un LiveCD de Ubuntu 9.10, sobre el que se realizan una serie de operaciones para de este modo poder realizar lo primero de todo un backup vía NFS y luego la recuperación de datos que sí que se hace mediante las herramientas de Windows XP, que es el sistema operativo corrupto en el ejemplo que se propone.
Lo primero que hay que hacer es una imagen del disco duro que tiene problemas, para no correr riesgos de perder mas datos y sobre esta aplicaremos el proceso de reparación.
- El Backup.
Arrancamos el ordenador con problemas desde el Live CD de Ubuntu. despues desde la consola de sistema creamos un directorio en /media/servidor y montamos un share para la copia de seguridad del disco duro estropeado.
Hemos configurado previamente /servidor con un share NFS, pero el LiveCD no tiene el cliente de NFS instalado. Afortunadamente en el LiveCD de Ubuntu podemos descargar e instalar programas desde el repositorio apt.
LiveCD$ sudo apt-get install portmap nfs-common
Ahora que el cliente de NFS está instalado y podemos montar el share disponiendo de un lugar donde poner la imagen de disco.
LiveCD$ sudo mount server:/storage/share /media/servidor
Ahora el share en el servidor se parece a una partición local montada en / media / servidor podemos crear nuestra imagen de disco
LiveCD$ sudo fdisk -l
Disk /dev/sda: 250.0 GB, 250000000000 bytes
255 heads, 63 sectors/track, 30394 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0×00000001
Device Boot Start End Blocks Id System
/dev/sda1 * 1 16708 134206978+ 7 HPFS/NTFS
fdisk-l nos muestra que nuestro disco duro es /dev/sda y que es una partición NTFS. Ahora podemos usar dd para crear una imagen del disco.
¡OJO!: dd nos permite leer y escribir en un dispositivo directamente. usar de forma descuidada un comando aquí puede destruir nuestros datos. Ves con cuidado y repasalo dos veces antes de lanzar una instrucción con dd.
LiveCD$ dd if=/dev/sda of=/media/server/laptop_disk.img
Normalmente, dd se toma su tiempo para hacer una imagen del disco, pero en este caso tendremos un error de disco, casi inmediatamente y abortará dd. Afortunadamente, existe ddrescue, en realidad hay dos programas ddrescue, aquí estamos utilizando el programa ddrescue GNU. ddrescue funciona casi exactamente como dd, salvo que se destina a trabajar en las unidades defectuosas y pueden compensar los errores de disco. ddrescue no viene en el LiveCD y no está disponible en el repositorio APT, pero se puede descargar desde la web, colócalo en la parte ya montada NFS e instalalo desde allí.
LiveCD$ sudo dpkg -i gddrescue_1.11-1_i386.deb
LiveCD$ sudo ddrescue -v /dev/sda mary_inspiron_6000.img mary_inspiron_6000.log
Te saldra ddrescue succesfully images the disk. La siguiente tarea es hacer una copia de la imagen de disco para que, en caso de que un intento de fijar la imagen de disco salga mal se pueda, al menos, volver a este punto con un mínimo esfuerzo. Vamos a hacer todo nuestro trabajo sobre la imagen (mary_inspiron_6000.img), y mantener el original (mary_inspiron_6000.img.orig) intacta como un archivo de referencia.
LiveCD$ cp -p mary_inspiron_6000.img mary_inspiron_6000.img.orig
Ahora viene la parte divertida, a ver lo que podemos salvar.
- La Recuperación.
La imagen que hemos extraído en formato IMG se monta como la unidad D: en una maquina virtual con Windows XP dentro de nuestro sistema Linux (el bueno, el que usamos dia a dia no el Live), y a partir de ahí ya podremos trastear con un par de herramientas de Windows para esta tarea Diskpart para mostrar la estructura de ese disco, y luego un chkdsk /r d: para tratar de recuperar todo lo que se pueda.
Abrimos una consola en windows y en ella escribimos diskpart
DISKPART>list disk
Disk ### Status Size Free Dyn Gpt
——– ———- ——- ——- — —
Disk 0 Online 12 GB 0 B
Disk 1 Online 56 GB 0 BDISKPART> select disk 1
De este modo ahora tenemos el disco 1 seleccionado.
DISKPART> detail disk
QEMU HARDDISK
Disk ID: 41AB2316
Type : IDE
Bus : 0
Target : 1
LUN ID : 0
Volume ### Ltr Label Fs Type Size Status Info
———- — ———– —– ———- ——- ——— ——–
Volume 2 D NTFS Partition 56 GB HealthyPara salir de DISKPART> exit
La herramienta que usaremos ahora será Chkdsk.exe, (para los que no lo sepais Chkdsk.exe es una herramienta de línea de comandos que comprueba la integridad lógica de un sistema de archivos en un volumen de Windows XP Professional).
En la consola de windows que sigue abierta escribimos
Documents and setting……> chkdsk /r d:
The type of the file system is NTFS.
CHKDSK is verifying files (stage 1 of 5)…
File verification completed.
CHKDSK is verifying indexes (stage 2 of 5)…
Correcting error in index $I30 for file 56146.
Correcting error in index $I30 for file 56146.
Sorting index $I30 in file 56146.
Index verification completed.
CHKDSK is recovering lost files.
Recovering orphaned file 6A82D2~1 (56129) into directory file 56146.
Recovering orphaned file 6A82D25B245A4B1D94281AC1E2272B77 (56129) into directory
file 56146.
Recovering orphaned file 3BEA32~1.DB3 (56145) into directory file 56146.
Recovering orphaned file 3bea32c5-d9da-4696-a242-338575562c22-inq.db3 (56145) in
to directory file 56146.
Recovering orphaned file 3BEA32~1.XML (56147) into directory file 56146.
Recovering orphaned file 3BEA32C5-D9DA-4696-A242-338575562C22.xml (56147) into d
irectory file 56146.
Recovering orphaned file 3BEA32~2.DB3 (56149) into directory file 56146.
Recovering orphaned file 3bea32c5-d9da-4696-a242-338575562c22-preinq.db3 (56149)
into directory file 56146.
Recovering orphaned file 3BEA32~3.DB3 (56150) into directory file 56146.
Recovering orphaned file 3bea32c5-d9da-4696-a242-338575562c22-errors.db3 (56150)
into directory file 56146.
Recovering orphaned file manifest.db3 (56151) into directory file 56146.
CHKDSK is verifying security descriptors (stage 3 of 5)…
Security descriptor verification completed.
CHKDSK is verifying Usn Journal…
Usn Journal verification completed.
CHKDSK is verifying file data (stage 4 of 5)…
File data verification completed.
CHKDSK is verifying free space (stage 5 of 5)…
Free space verification is complete.
CHKDSK discovered free space marked as allocated in the
master file table (MFT) bitmap.
Correcting errors in the Volume Bitmap.
Windows has made corrections to the file system.
58597055 KB total disk space.
32117188 KB in 48418 files.
18992 KB in 6501 indexes.
264 KB in bad sectors.
131935 KB in use by the system.
65536 KB occupied by the log file.
26328676 KB available on disk.
4096 bytes in each allocation unit.
14649263 total allocation units on disk.
6582169 allocation units available on disk.
Chkdsk reparará el volumen, ahora invertiremos el procedimiento de copia de seguridad y el uso de dd a través de la compartición NFS para copiar la imagen reparada en un disco duro nuevo. Ahora es el momento para poner a prueba la partición de reparación y ver si se puede arrancar con éxito. ¡EUREKA! arranca el disco y ahora tenemos un sistema de reparado.
Ahora que tenemos el sistema de reparado, es el momento de discutir este problema que he mencionado antes que tendríamos más adelante. La imagen ha sido colocada sobre un disco duro nuevo que es mucho más grande que la imagen que tenemos 93 GB de espacio libre espacio al cual nos gustaría ser capaces de acceder. Aunque Windows nos diga que la partición esta correcta, las herramientas de Linux que usamos nos informaron de un error que les impedia la ampliación de la partición.
Afortunadamente, Microsoft nos proporciona una herramienta con la que podemos extender una partición de disco. La anteriormente usada diskpart con la que extenderemos la partición existente en el espacio libre del disco, pero no se extienden las particiones del sistema. No hay problema, utilizando un cable USB para disco duro el disco se puede conectar a un sistema existente. Mientras está conectado al sistema y no sea la unidad del sistema que usamos se puede ampliar fácilmente y además con sorprendente rapidez.
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
———- — ———– —– ———- ——- ——— ——–
Volume 2 E NTFS Partition 56 GB HealthyDISKPART> select volume 2
DISKPART> extend
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
———- — ———– —– ———- ——- ——— ——–
* Volume 2 E NTFS Partition 149 GB Healthy
Tras terminar lo anteriormente mencionado obtenemos un disco totalmente reparado, que podemos volver a restaurar en el ordenador que estaba corrupto. Es posible y normal que la imagen resultante sea mas grande que el espacio original que teníamos antes de empezar por eso e explicado como redimensionar la partición con diskpart.
Pues bien, esto nos sirve para demostrar que desde Linux podemos solventar esos problemas a cualquierá que se quede colgado y sin poder acceder a sus datos en un disco duro formateado por windows, y solventarle la papeleta .
-Conclusión.
Linux nos proporciona un conjunto de herramientas muy versátiles para la reparación de averias en discos duros. Esto se logra, en muchos casos, pasando por alto la estructura de un sistema operativo y abordando el hardware directamente. Es la creación de redes lo que permite que la información se transmita entre las máquinas de manera rápida y eficiente y la virtualización permite enlazar con otros sistemas operativos y entornos. Con todos los puntos fuertes que tiene Linux, en algunas situaciones, no pasar por el sistema operativo no es la mejor solución y la consola de símbolo del sistema de Windows puede ser la herramienta adecuada para ese trabajo.
Mientras todo esto es muy emocinante y divertido desde un punto de vista técnico, lo importante es que a quien se lo reparemos, nos agradecerá (o debería hacerlo), el haberle salvado su sistema y los datos contenidos en el. De modo que pueda seguir trabajando sin haber perdido trabajo ya realizado.
Logicamente, este es el momento de aprovechar y sacar pecho y decir aquello de ….
“Esto con Linux no te habria pasado.” .
Fuente: Esto es una traducción-adaptación al Castellano del articulo original en ingles de HowToForge.