¿Técnicas avanzadas de recuperación de archivos de partición NTFS para unidades dañadas (errores de E/S)?

¿Técnicas avanzadas de recuperación de archivos de partición NTFS para unidades dañadas (errores de E/S)?

Recientemente sufrí un daño exasperantemente pequeño pero bastante importante en un disco duro de un host ESXi que afectó a un par de máquinas virtuales. Hay un archivo que me gustaría mucho recuperar y, por supuesto, de alguna manera quedó fuera de mi copia de seguridad habitual. Las copias más recientes tienen 6 meses. Resulta que necesito eso... Ups.

Detalles:

1) He utilizado ddrescue (herramienta IMPRESIONANTE) dentro de un ISO de arranque de Parted Magic para recuperar el 99,98% del disco de la VM en cuestión. Desafortunadamente, los errores parecen ser casi en su totalidad de escrituras de archivos RECIENTES... así que, por supuesto, son exactamente los sectores que más necesito recuperar.

2) La unidad genera errores de E/S en lecturas de sectores defectuosos, ¡pero ocasionalmente TIENE ÉXITO en la lectura de un sector previamente defectuoso! Por tanto, la recuperación todavía es posible. Un poco más a menudo se producirá algún tipo de mal funcionamiento importante y la unidad hará girar hacia abajo y hacia arriba. Ah, y aproximadamente 1/4 de esos giros no volverán a aparecer. (Se requiere un ciclo de energía fuerte, el apagado no funcionará) Por último, casi cada lectura de sector defectuoso viene con un agradable sonido de clic audible.

3) El disco VM importante tiene formato NTFS.

4) Puedo (normalmente) montar el volumen NTFS dañado como de solo lectura y puedo (un poco menos a menudo) navegar hasta la carpeta que contiene el archivo que necesito. Sin embargo, el archivo en cuestión parece dar siempre un error de IO cuando hago un 'ls' de la carpeta. Los otros archivos de la carpeta no dan un error de IO.

5) Intenté usar ntfsinfo/etc... que parece exactamente lo que necesito... pero no abre la partición en absoluto. (Frustrante, ya que 'montar' generalmente lo hará)

6) El archivo es un archivo XLS de la era Excel 2003, por lo que no estoy seguro de poder encontrar ninguna cadena para buscar la imagen del disco sin formato. (¿Posiblemente partes de la versión de hace 6 meses?)

Realmente me gustaría usar algo como las funciones de debugfs. Sin embargo, en las páginas de manual parece que las herramientas ntfs podrían hacer el trabajo si pudieran abrir la partición. En particular, me pregunto si los errores de E/S podrían estar exclusivamente dentro de los metadatos del archivo y si el registro del directorio podría restaurarse lo suficientemente bien como para copiar el contenido del archivo. Como último recurso, cualquier contenido parcial del archivo que pueda recuperar sería fantástico.

He escrito módulos de kernel (relativamente simples) antes, por lo que podría compilar un módulo NTFS especial con más información de depuración habilitada (o agregada). (Vale la pena dedicar al menos unos días de retoque al archivo para intentar recuperarlo... además, estoy aprendiendo cosas interesantes en el proceso)

¿Algún consejo?

EDITAR:

Más información sobre errores de unidad:

/var/log/messages muestra muchos errores NTFS-fs, por supuesto... pero finalmente me molesté en traducir el mensaje de código de detección no controlado que normalmente recibo: clave de detección 0x3, ASC=0x11, ASCQ=0x4. (que parece traducirse como ERROR DE LECTURA NO RECUPERADO - FALLÓ LA REALASIGNACIÓN AUTOMÁTICA).

Cuando la unidad deja de girar, veo un "scsi0:*Mensaje "BusLogic BT-958 Inicializado". No estoy seguro de si es el controlador SCSI de Linux, el controlador ESXi o la unidad misma la que decide apagar la unidad. Si fuera el controlador de Linux, entonces tal vez podría modificar el controlador. para evitar que gire hacia abajo. Todo este asunto del ddrescue se vuelve enormemente más doloroso debido a estos giros que requieren ciclos de energía.

EDITAR2:

Usando el mensaje de registro "end_request: error de E/S, dev sda, sector 7238859" justo después de encontrar el directorio que contiene el archivo en cuestión, he dirigido mi operación de ddrescue a ese sector. Actualmente planeo arriesgarme y ESCRIBIR ese sector nuevamente en el disco en vivo si esto tiene éxito. Quizás pueda reconstruir lentamente mi camino hacia el archivo en cuestión de esta manera. Aún así, la mayoría de los sectores defectuosos recuperables se recuperan en menos de 20 reintentos... este tiene más de 150 hasta ahora... *suspiro*

EDITAR3:

El error de sector de 'ls' en el archivo que necesito no coopera en absoluto (más de 1000 intentos durante la noche y sin suerte). Espero que sean solo metadatos cuando haces un 'ls'. :)

Tengo la mayor parte de una copia de ddrescue, pero no se monta (o se monta sin archivos). La unidad dañada se monta correctamente la mayor parte del tiempo... ¿quizás los errores de E/S en la unidad dañada fuerzan el "montaje" para volver al espejo que funciona?

** EDITAR4: **

Me he rendido por ahora, a la espera de más sugerencias. Quité la unidad y reconstruí la caja. Seguiré conduciendo por si surge algo.

Respuesta1

Algunas notas de mi experiencia:

  1. (la causa)Si escucha un sonido inusual durante los intentos de acceso al disco duro y los problemas no ocurren en ubicaciones (más o menos) aleatorias del disco, entonces la causa principal probablemente esté en la superficie del disco (no en los componentes electrónicos); desafortunadamente, eso es lo triste. guión. Si se tratara "sólo" de los componentes electrónicos, es posible que hubiera tenido la oportunidad de recuperar la mayoría o incluso todos sus datos.
  2. (malos sectores)Si aún no lo ha hecho, busque en la web la herramienta de recuperación/diagnóstico de arranque del fabricante del disco, descárguela, inicie, ejecute una prueba profunda y deje que intente reasignar los sectores defectuosos; ese es el mejor método gratuito. Tenga en cuenta que los sectores defectuosos tienen una tendencia a crecer, por lo que incluso si logra capturar una parte de su archivo después de un intento de lectura número 2314, es probable que esos intentos hayan hecho que los sectores defectuosos cercanos crezcan, disminuyendo efectivamente las posibilidades de recuperar otras partes. del archivo.
  3. (recuperando NTFS)Nada puede arreglar un sistema de archivos NTFS tan bien como las herramientas nativas de MS Windows. Si la imagen NTFS no se puede montar (¡asegúrese también de que estaba intentando montar la partición, no todo el disco!), puede intentar cosas como testdisken Linux, pero si fallan, Windows chkdiskpuede ayudar. Si tiene Windows instalado en una máquina virtual, puede convertir la imagen sin formato obtenida ddrescuea un formato compatible con esa máquina virtual (como VDIo VMDK), agregarla a la VM e iniciar Windows en modo de línea de comandos para reparar el sistema de archivos.Si usa VirtualBox, el comando para convertir dicha imagen es VBoxManage convertfromraw <filename> <outputfile>opcional para --format VDI|VMDK|VHDobtener el formato de salida especificado.

Respuesta2

Esto puede aplicarse o no a su caso, pero una medida de último recurso es el "truco del congelador". VerRecuperar datos de un disco duro dañado: el "truco del congelador"para una discusión del método.

información relacionada