Parcialmente sobrescrito / dev / sda, ¿puedo recuperar algo?

Estaba jugando con mi nuevo disco duro, que solo contiene algunos files personales, y para verificar su velocidad de escritura, escribí: sudo dd if=/dev/zero of=/dev/sda , /dev/sda/ siendo el nuevo 2 TB conectado a mi Raspberry Pi.

Con suerte, cancelé el command y solo se han escrito 11 MB. Ahora el contenido del disco no puede aparecer, y ahora parted dime que el tree de la partición es así:

 |--- unallocated 8.00 MB |--- unknown 1.82 TB |--- unallocated 9.08 MB 

Antes, era así:

 |--- ext4 1.82 TB 

No sé si dd sobrescribió los primeros 11 MB del disco, lo que significa que la tabla de particiones se ha sobrescrito por completo, o se han sobrescrito los bits aleatorios del disco duro.

Ahora el disco duro está conectado a mi computadora portátil Xubuntu 14.04 como /dev/sdb . Intenté gpart que aún se está ejecutando, y también testdisk sin éxito.

Sabiendo que todo el disco era ext4 y que el tamaño del sector era 4096, ¿es posible recuperar la tabla de particiones sin volver a formatear y hacer que pueda acceder a mis files nuevamente (incluso si algunos han sido dañados / eliminados)? ¿O la única solución que tengo es utilizar una herramienta de recuperación de files, que sería tedioso debido a la cantidad de datos para copyr almacenados en esta unidad?

Primero deberá rebuild la tabla de particiones como estaba. Esto no afectará el contenido de ninguna partición, solo la idea del sistema de dónde comienza y termina cada partición. Parece que ya ha hecho esto porque parece tener una partición que es "desconocida", pero exactamente del mismo tamaño que la partición anterior.

Si aún no lo ha hecho, puede intentar crear una partición grande usando el mismo progtwig de edición de particiones que se usó para crearla (por ejemplo, fdisk , gdisk , parted ) y aceptar la location sugerida pnetworkingeterminada, esperando que esos valores pnetworkingeterminados darán como resultado la misma location que antes. De nuevo, aquí, parece que sabes qué software de partición se utilizó: dividido.

Después de eso, el truco que necesitarás es fsck el sistema de files usando una supermanzana de respaldo. Una vez más aquí, tienes que esperar que el sistema de files se haya creado en primer lugar con las opciones pnetworkingeterminadas, o bien tienes que saber qué opciones no pnetworkingeterminadas se usaron para crear el sistema de files. (Diría que los filesystems generalmente se crean con opciones pnetworkingeterminadas).

  1. Ejecute mkfs con las mismas opciones que se usaron para crear el sistema de files en primer lugar (es decir, probablemente sin opciones, es decir, valores pnetworkingeterminados), excepto agregar -n , lo que significa que no crea el sistema de files de manera real.
  2. La salida de mkfs generará una list de superbloques alternos. Tendrá que usar uno de estos porque se ha sobrescrito la superbloque principal del sistema de files. Cuanto mayor sea la parte del dispositivo de bloque que se ha sobrescrito, más superbloques alternativos de la list se dañarán.
  3. Ejecute fsck con la opción -b para especificar un superbloque alternativo.

Tengo que advertirle que lo que sea que recupere probablemente sea un gran desastre y requerirá mucha limpieza manual. Espere un poco de pérdida y files perdidos vueltos a conectar en lost+found .