0 votos

Recuperar una partición entera que ha sido algo formateada (he estropeado seriamente el sistema de archivos de un HD externo)

Tengo un problema embarazoso pero muy urgente. Un amigo me pidió que configurara su nuevo disco duro externo tanto para Time Machine como para el almacenamiento de archivos, y que transfiriera los archivos de su antiguo disco duro. Empecé a particionar el nuevo disco con la Utilidad de Discos, pero la opción de partición estaba en gris. Todo el disco estaba formateado como exFat, así que pensé en reformatearlo como HFS+. Empecé a hacerlo con diskUtil: diskUtil erasedisk hfs+ External /dev/disk2 (Nota: esto es en un Macbook Pro con El Capitan)

Sin embargo, he escrito mal. La nueva unidad no era el disco 2, sino el disco 3. Había empezado a borrar el disco antiguo, que tiene datos importantes. Me di cuenta de mi problema en un instante y ^C Salí de allí, pero el daño estaba hecho. Esta es la situación:

  • La salida de la terminal dice:

    Starting erase on disk2
    Unmounting disk
    diskutil:interrupted
    $ diskUtil list
    ...
    /dev/disk2 (external, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *1.0 TB     disk2
       1:                        EFI EFI                     209.7 MB   disk2s1
       2:                  Apple_HFS                         999.8 GB   disk2s2
  • Como puede ver, OSX reconoce la unidad como GPT y la partición como HFS+. Sin embargo, la unidad no aparece en el Finder.

  • Windows (10) reconoce que tengo un disco duro externo conectado, pero no aparece nada en "Volúmenes" cuando veo su dispositivo en el Administrador de dispositivos.

  • Linux (Arch) reconoce la unidad y la partición, al igual que OSX. Intenté ejecutar ntfsfix, pero fue en vano. (Me dio una advertencia que decía algo así como que no se podía arreglar y que intentara usar chkdsk).

  • No estoy 100% seguro de cuál era el estado de este HD antes de formatearlo a medias. Se usó y formateó por primera vez en un portátil barato con Windows cuando Vista era el sistema operativo más nuevo de Windows, así que creo que era NTFS en un esquema MBR antes de que lo violara. (Tal vez estoy equivocado y alguien sabe mejor, pero eso es lo que me hace creer).

De todos modos, aquí estoy. Necesito recuperar unos 700 GB de datos, quizás NTFS/MBR, en una unidad que cree que es HFS+/GPT. Todos los datos tienen que estar ahí, más o menos, pero necesito ayuda para acceder a ellos. Si tienes alguna idea o conocimiento que pueda ayudarme, te lo agradecería de verdad.

(Por último, he descargado e instalado un software de recuperación de datos de Easeus. Está ejecutando un "escaneo" en la unidad, y sospecho que solucionará mi problema si desembolso más o menos 90 dólares. Sin embargo, esto es sólo un último recurso. Realmente prefiero que este dolor de cabeza no se convierta en uno costoso, y ya que está recogiendo muchos datos, sé que tiene que haber una manera de resolver esto con un poco de grasa del codo).

1voto

klanomath Puntos 19587

Debería poder restaurar al menos los límites del antiguo volumen NTFS:

Windows (al igual que OS X) utiliza algunos esquemas de partición por defecto para particionar y formatear un disco.

Un disco MBR/NTFS suele tener un MBR en el primer bloque (bloque 0). La primera partición suele comenzar en el límite de 1 MB (es decir, el bloque2048) con un bloque especial -el sector de arranque de NTFS- y termina con un bloque especial. Ambos bloques comienzan con EB 52 90 4E 54 46 53 20 (hex) o ∂RENTFS(x20) . Los últimos 4096 bloques (2 MiB) suelen ser espacio vacío.

Dependiendo de la cantidad que se haya escrito al crear ("borrar") el nuevo volumen HFS+ principal (normalmente unos 120 - 160 MB una vez terminado el proceso) el éxito de una recuperación de datos puede variar.


Desconecte cualquier unidad externa excepto la rota.

Para recuperar los antiguos límites del volumen NTFS hay que eliminar la tabla de particiones GUID y restaurar un esquema de particiones MBR:

Para eliminar el GUIDpt, primero abre Terminal.app y obtén una visión general (abajo asumo que el identificador del disco falsamente formateado es disk2):

diskutil list
sudo gpt -r show disk2

El resultado es similar al de abajo (su tamaño total - aquí 1953525760 bloques y el volumen principal - aquí 1952853936 bloques - puede diferir ligeramente):

         0          1         PMBR
         1          1         Pri GPT header
         2         32         Pri GPT table
        34          6         
        40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
    409640 1952853936      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
1953263576     262151         
1953525727         32         Sec GPT table
1953525759          1         Sec GPT header

Retire el GUIDpt:

diskutil umountDisk disk2
sudo gpt destroy disk2 
dd if=/dev/zero of=/dev/disk2 bs=512 count=1

Busca en el disco la cadena ∂RENTFS(x20) en los últimos sectores del disco:

hexdump -s 930g /dev/rdisk2  | grep "eb 52 90 4e 54 46 53 20"

-s: Omite los bytes de desplazamiento desde el principio de la entrada. El tamaño es KiB/MiB/GiB. En mi ejemplo, el disco tiene un tamaño de 931,51 GiB, por lo que busqué sólo los últimos 1,51 Gib.

El resultado es e8e0bffe00 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 con e8e0bffe00 siendo el desplazamiento en hexadecimal. Convertido con un servicio hex2dec esto significa un desplazamiento de 1000203091456 (dividiendo esto por 512, el resultado es igual al bloque 1953521663).

Como este bloque es el último del volumen anterior, se puede determinar el tamaño del volumen antiguo: 1953521663 (último bloque) - 2048 (probable bloque de inicio) + 1 (la cuenta empieza por 0). ¡El resultado tiene que ser divisible por 8!

También puede comprobar los primeros bloques del disco con:

hexdump /dev/rdisk2  | grep "eb 52 90 4e 54 46 53 20"

Deberías obtener al menos una línea como esta: 800 eb 52 90 4e 54 46 53 20 20 20 20 00 02 08 00 00 . Este es el Sector de Arranque NTFS en el bloque 2048 - el límite de 1 MB - ya que estos bloques normalmente no son borrados por la Utilidad de Discos. Introduzca ctrlC para detener hexdump.

Ahora teniendo el primer bloque y el último bloque del volumen NTFS deberías poder restaurar la antigua partición MBR con fdisk:

fdisk -e /dev/disk2
Would you like to initialize the partition table? [y] y
fdisk:*1> auto dos
fdisk:*1> edit 1
     Starting       Ending
#: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
*1: 0C    0   1   1 - 1023 254  63 [        63 - 1953525697] Win95 FAT32L
Partition id ('0' to disable)  [0 - FF]: [C] (? for help) 07
Do you wish to edit in CHS mode? [n] n
Partition offset [0 - 1953525760]: [63] 2048 #probable start of the NTFS volume
Partition size [1 - 1953523712]: [1953523712] 1953519616 #use the probable size of YOUR NTFS volume found previously here.
fdisk:*1> write
Writing MBR at offset 0.
fdisk: 1> q

Ahora puede que tengas suerte y el volumen NTFS simplemente aparezca o que tengas que utilizar una herramienta de recuperación de datos.

0voto

Joel Puntos 145

Puede probar CGSecurity testdisk ?) https://www.cgsecurity.org

Sólo porque tengo mucho tiempo para restaurar los datos en este programa Este proyecto tiene - testdisk app para recuperar la partición y los datos en las particiones - photorec app para recuperar datos perdidos de la unidad flash

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X