Se eliminaron los primeros 512 bytes de disco; ¿Cómo puedo recuperar mis datos?

12

Accidentalmente escribí un binario de 512 bytes en el disco USB incorrecto ddy el dispositivo ya no muestra particiones fdisk.

Pensé que todos los datos se habían ido, pero dd if=/dev/sdx | stringsmuestra que los datos parecen estar allí, ya que ddafortunadamente se limitó a los primeros 512 bytes. ¿Hay alguna forma de recuperarlo ?

El disco tenía dos particiones: una ext4 (~ 4GB) y las restantes de 16GB fueron formateadas como NTFS.

edmz
fuente

Respuestas:

13

Depende de lo que había exactamente antes, pero podría ser fácil (-ish) recuperarse de esto.

  1. Úselo ddpara crear una imagen completa de su unidad USB en un lugar seguro.

  2. Úselo ddpara crear una imagen completa de su unidad USB en un lugar seguro.

  3. Sí, por favor mantenga una imagen completa. Las operaciones de recuperación de datos a menudo pueden causar más daños de los que cabría esperar.

  4. Intente recordar cómo era el diseño de la partición en esa unidad USB. Anotarla . Puede ser útil si tiene registros del sistema desde que el núcleo de Linux detecta ese disco (antes de estropearse); con bastante frecuencia imprimirá algunos datos sobre las particiones detectadas.

  5. Use fdisk para recrear el MBR con la misma tabla de particiones. No formatee ni fsck ninguna partición .

  6. Intente montar sus particiones con la opción de solo lectura ( -o ro) mount.

  7. Si tiene éxito, intente copiar todos los archivos a una ubicación segura y vigile su terminal y los registros de errores de E / S: la forma típica de expresar los errores de límite de partición es a través de accesos fuera del límite en el dispositivo subyacente.

  8. Si la copia falla, restaure la imagen y regrese al paso 4.

  9. ¿Mencioné tener una imagen completa de la unidad USB antes de hacer otra cosa?

PD: También es posible que desee echar un vistazo a herramientas como TestDisk , que intentan automatizar el proceso de recuperación. Pero aún debe obtener una imagen completa primero.

PS2: si te sientes lo suficientemente cómodo, también puedes experimentar un poco. Si puede hacer una suposición razonable para el punto de partida de la primera partición, puede usarla tune2fs -lpara obtener el tamaño exacto de la primera partición, lo que le permitiría buscar el inicio de la segunda.

thkala
fuente
# 1: dd if=/dev/sdx of=backup.img¿verdad?
edmz
@ Black: Sí. Es posible que desee poner una bs=...opción para aumentar el tamaño del bloque y acelerarlo un poco.
thkala
Un buen tamaño de bloque para usar es bs=64K. Definitivamente vale la pena probar TestDisk, y puede funcionar tanto en archivos de imagen de disco como en discos reales. ¡Buena suerte!
PM 2Ring
Correr cat /dev/sdx >backup.imgsería más rápido que dden muchas circunstancias y ciertamente no más lento en este caso.
roaima 01 de
6

Para restaurar la ext4partición y sus datos, pensé en crear una partición ext4 en todo el disco. Esto me permitió obtener acceso a los datos y recuperar información sobre la partición con tune2fs -l, como lo sugirió @thkala. Esta información parece muy factible y, por lo tanto, inalterada.

Muy interesante, gparted es de alguna manera capaz de calcular el tamaño real de la partición como resulta de esta advertencia que muestra:

10.96 GiB de espacio no asignado dentro de la partición. Para hacer crecer el sistema de archivos para llenar la partición, seleccione la partición y elija el elemento del menú:

porque 11GiB era aproximadamente la dimensión de la partición NTFS.

ingrese la descripción de la imagen aquí

Observe el espacio no utilizado que, IIRC, era el espacio que el ext4 todavía tenía libre. El espacio no asignado que gparted reconoce parece ser una partición NTFS; ahora, ¿cómo puedo restaurar ese también , tal vez descubriendo dónde termina la primera partición, es decir, su recuento total de bytes?


Finalmente TestDisk manejó eso sin esfuerzo.

edmz
fuente
Excelente. Por favor le acepte su propia respuesta así que está claro que tenía una solución aceptable a su pregunta.
roaima 01 de
@roaina Sí, lo haré cuando expire la duración mínima de apertura de dos días.
edmz