Actualmente estoy ejecutando ddrescue
una unidad que falló. Ha estado funcionando durante aproximadamente 16 horas y todavía está en la etapa de división de bloques fallidos, pero ha estado funcionando a 0 B/s desde hace algún tiempo. Estoy copiando directamente en otra unidad, no creando una imagen.
¿Puedo verificar qué progreso se ha logrado o eso alterará algo? Solo hay un proyecto en la unidad fallida que realmente necesito, solo quiero verificar si esos archivos ya se han copiado.
El comando que ejecuté fue:
ddrescue -d -f -v /dev/sda5 /dev/sdc2 /media/username/USB/rescue.logfile
Estoy ejecutando Ubuntu y el sistema operativo de las unidades antiguas era Arch, si eso importa.
Respuesta1
En teoría, puede terminar ( ctrl+ C) ddrescue
y ejecutarlo más tarde con el mismo archivo de registro para que continúe en lugar de comenzar de nuevo. He visto algunas publicaciones que afirman que este método no siempre funciona; en estos casos, ddrescue
ignoré el trabajo anterior y comencé desde el principio por motivos desconocidos.
Intente montar la partición de destino en modo de solo lectura:
sudo mount -o ro /dev/sdc2 /mnt/foo
Como es de solo lectura, no debería afectar ddrescue
la operación. Existe el riesgo de que los datos cruciales para el sistema de archivos aún no se recuperen; en este caso, mount
fallarán. Con un poco de suerte, es posible que pueda montar y luego leer los archivos que necesita, pero es posible que los archivos estén dañados incluso si no obtiene ningún error de mount
y (p. ej.) cp
. Inspeccionarlos o sus copias. No finalice ddrescue
a menos que se asegure de que los archivos sean válidos y sin fragmentos no recuperados/estropeados en su interior.
En caso de algún problema, puede esperar para ddrescue
recuperar más datos (si los hay). No esperaría a que aparezcan los archivos no dañados bajo el punto de montaje, porque el sistema puede almacenar en caché los metadatos o los archivos mismos, etc. Espere umount
a que se recuperen más datos mount
nuevamente y verifique los archivos.
Editar: respondiendo preguntas adicionales.
¿Hay alguna manera de decirle a ddrescue que especifique una carpeta en particular?
No. La herramienta funciona a nivel de bloque. No sabe nada sobre el sistema de archivos y los archivos. Su declaración "ddrescuelog dice que el 99,73% de mis archivos se han recuperado" debería decir "99,73% de los bloques".
Además, ¿es posible que los datos se hayan recuperado, ya que dice que se rescataron el 99,73%, pero están demasiado dañados para ser reconocidos como archivos? Si este es el caso, ¿hay algún programa para ver archivos dañados? Tal vez pueda recuperar algunos manualmente.
Posible escenario: el contenido del archivo se recupera pero la entrada correspondiente al sistema de archivos no (nota: en general, también es posible lo contrario, pero obviamente no es su caso). Dijiste que toda la carpeta desapareció. Creo que algunos de los archivos pueden aparecer lost+found
después fsck
(o de forma similar dependiendo de su sistema de archivos; no sé qué es).
Más información aquí:¿Cuál es el propósito de la carpeta perdidos+encontrados en Linux y Unix?
Esta fsck
operación no es de sólo lectura, no debe realizarse cuando ddrescue
está funcionando. Terminar ddrescue
, ejecutar fsck
y reanudar ddrescue
también es algo malo. Es mejor esperar a ddrescue
que termine. Puede llevar algún tiempo – leeresteyeste.
En general, deberías trabajar con fsck
(o cualquier otra herramienta que no sea de solo lectura) en una copia de tus datos recuperados. Buen camino a seguir, para referencia futura:
- Escriba en un archivo, no en un dispositivo. Utilice un sistema de archivos concopia en escritura (COW)característica.
- Hacer unaVACAcopia con
cp --reflink=always
. Puede hacer esto duranteddrescue
la operación. Esta copia es como una instantánea de su archivo de destino. - Utilice cualquier herramienta en la copia, incluidas las que no son de solo lectura.
- En caso de falla, todavía tiene el archivo de destino original (tal vez con más datos recuperados, si
ddrescue
todavía está ejecutándose) para comenzar de nuevo con otroVACAcopiar (y tal vez con diferentes herramientas).
También puedes intentar buscar archivos eliminados y recuperarlos. La elección de una herramienta depende del sistema de archivos.
Otra pista: tal vez su software estaba usando archivos temporales en algún otro lugar de la jerarquía del sistema de archivos. Controlar /tmp/
, /var/tmp/
.
Editar, respondiendo preguntas adicionales.
Cuando ddrescuelog dice que el 99,73% de los bloques han sido rescatados, ¿qué significa eso exactamente? Parece que debería esperar algunos resultados, no un viaje a casa vacío.
Nota: el siguiente ejemplo no pretende cubrir todos los problemas y escenarios del sistema de archivos, ni distinguir los sectores del disco de las unidades de asignación del sistema de archivos; es solo para responder la pregunta.
Imagine que su partición es un libro, una enciclopedia, no una novela con un argumento. Los archivos son artículos dentro. El bloque de disco (o sector) es como una página de un libro. El sistema de archivos es una forma general de colocar artículos en páginas. Algunas páginas contienen elTabla de contenidos (ToC)que es un problema del sistema de archivos en nuestra imagen y puede verse así:
artículo #289: páginas 2076, 2077, 2078, 402, 403.
Tenga en cuenta que este artículo está tan fragmentado como puede estarlo un archivo. En otra página, pero aún dentroToCtenemos algo así como estructura de carpetas:
…
people/
: verToCen la página 43.
…
(página 43)
mathematicians/
: consulteToCen la página 80.
famous Poles/
: verToCen la página 82.
Adam and Eve
: consulte el artículo n.º 14.
…
(página 80)
Euclid
: ver artículo #289.
Banach Stefan
: ver artículo #4380.
…
(página 82)
Banach Stefan
: consulte el artículo n.º 4380.
Kościuszko Tadeusz
: ver artículo #2208.
…
Esta estructura es un ejemplo de archivos vinculados. Hay al menos dos caminos que apuntan a un único artículo: ./people/mathematicians/Banach Stefan
y ./people/famous Poles/Banach Stefan
. Aquí coloqué el punto al principio de cada ruta porque mi ejemplo oculta deliberadamente la información: ¿a qué sección pertenece people/
la sección? (también puede ser /people/
o /full articles/people/
o /stubs/people/
o /foo/bar/people/
).
ElToCTambién puede tener una sección que diga:
Páginas "vacías": 567, 568, 569, 2070, 2071…
Una página determinada tiene texto (es decir, datos) incluso si no pertenece a ningún artículo existente en ese momento. Esto se debe a que el proceso de eliminación de un artículo afecta sóloTabla de contenido. ElToCes la única forma segura de saber si una página determinada pertenece a un artículo, a qué artículo, o puede tratarse como vacía y sobrescrita. Además: no hay forma de detectar una "página vacía" sinToC. Se siente extraño en una enciclopedia tener una página en blanco para ser parte de un artículo, pero el sector lleno de 0
espacios o cualquier otra cosa puede ser parte de un archivo. Se trata deToC.
Algunas de sus páginas (bloques) no han sido rescatadas (aún). Cualquiera de ellas puede ser una página con datos de artículo oToc-metadatos. Posibilidades:
- El bloque que falta es el bloque de datos (digamos, página 2078). Conoces la ruta al artículo sobre Euclides y en qué páginas se encuentra, pero una de las páginas está en blanco cuando no debería. El artículo no es válido.
- El bloque que falta es el bloque de metadatos. Algunos escenarios:
- Perdiste la noción del espacio libre.
- Sabes que hay
./people/mathematicians/Euclid
un camino pero te falta información en qué páginas se encuentra el artículo. Es imposible encontrar el artículo a menos que ya sepa algo sobre él (por ejemplo, una entrada sobre una persona probablemente tenga la palabra "nacido"; los archivos PDF comienzan con "%PDF"). - Sabes que hay un solo artículo en tal o cual página, pero no hay una ruta completa hasta él. En ese caso puedes colocarlo debajo
lost+found
y eso es lo quefsck
servirá. En nuestra imagen hay posibilidades (entre otras):- Falta la página 80: sabes (de la página 43) que hay
mathematicians
una sección (carpeta), pero no sabes que el artículo n.° 289 debería estar allí con el nombre "Euclides". - Falta la página 43: no sabes que debería haber el artículo #14 sobre Adán y Eva, ni secciones con matemáticos ni polacos famosos; pero puedes ver (en la página 80) que hay una sección con artículos sobre Euclides y Banach, y hay otra sección (página 82) con artículos sobre Banach y Kościuszko.Esto es lo que puede estar pasando con tu
/home
.Los artículos (archivos) están ahí y pueden ser válidos. No se puede llegar a ellos por camino porque no tienesTocde tu/home
.
- Falta la página 80: sabes (de la página 43) que hay
- Cualquier combinación de los problemas anteriores puede ocurrir si hay varios bloques no recuperados.
- El bloque faltante puede marcarse como vacío. En este caso no pierdes nada.