Cómo arreglar la partición del disco duro de Mac que se muestra como Fdsik_partition_scheme

8

Mi situación parece muy similar a cómo solucionarlo El disco duro GUID está dañado para MBR pero con suficientes diferencias como para no haber podido encontrar una solución confiable.

Tengo una unidad Toshiba de 3TB en una caja USB que se usa en una Mac con OS X El Capitain 10.11.3.

La unidad se configuró con una sola partición. La unidad no era de arranque y no tenía un sistema instalado, así que supongo que tampoco tendría una partición de recuperación. No puedo decir con seguridad que nunca haya instalado un sistema, pero no lo creo. No se ha utilizado con Bootcamp ni en ninguna computadora que no sea Mac.

La unidad funcionó normalmente durante mucho tiempo pero luego no se reconoció recientemente. Al investigar con la Utilidad de Discos, muestra que tiene un tipo de partición de FDisk_partition_scheme . Estoy seguro de que originalmente era el valor predeterminado típico de Mapa de partición GUID formateado como OS X Extended (Journaled) .

No puedo pensar en ningún uso o evento específico que pueda haber causado el cambio.

Aquí está la información que he recopilado de la unidad.

diskutil list / dev / disk6

/dev/disk6 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *3.0 TB     disk6
   1:                       0xEE                         375.1 GB   disk6s1

diskutil info / dev / disk6

   Device Identifier:        disk6
   Device Node:              /dev/disk6
   Whole:                    Yes
   Part of Whole:            disk6
   Device / Media Name:      DT01ABA300

   Volume Name:              Not applicable (no file system)

   Mounted:                  Not applicable (no file system)

   File System:              None

   Content (IOContent):      FDisk_partition_scheme
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 USB
   SMART Status:             Not Supported

   Total Size:               3.0 TB (3000592982016 Bytes) (exactly 5860533168 512-Byte-Units)
   Volume Free Space:        Not applicable (no file system)
   Device Block Size:        512 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (no file system)

   Device Location:          External
   Removable Media:          No

   Virtual:                  No
   OS 9 Drivers:             No
   Low Level Format:         Not supported

fdisk / dev / disk6

Disk: /dev/disk6    geometry: 97451/255/63 [1565565872 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -  732566645] <Unknown ID>
 2: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 3: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 4: 00    0   0   0 -    0   0   0 [         0 -          0] unused

gpt recover / dev / disk6

gpt recover: /dev/disk6: no primary or secondary GPT headers, can't recover

gpt -r -vv show / dev / disk6

gpt show: /dev/disk6: mediasize=3000592982016; sectorsize=512; blocks=5860533168
gpt show: /dev/disk6: PMBR at sector 0
       start        size  index  contents
           0           1         PMBR
           1  5860533167

gdisk / dev / disk6

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Aquí hay una captura de pantalla de la primera parte de la unidad en wxHexEditor. La PARTE EFI comienza en 4096.

ComencéabuscarlacadenaHFSJapartirdeundesplazamientode409642,comosesugiereenotrasrespuestas,peronolaencontrécercadeallí.Asíquerealicébúsquedasdesdeelprincipiodelaunidadyencontrélaprimeraaparicióneneldesplazamiento314598400.

Sinembargo,sisigobuscandolasaparicionesdeHFSJ,encuentromuchasdeellasqueparecenexactamenteigualesyconunagrancantidaddeespacioceroasualrededor,comolaprimera.Losquecomienzanen360424448yestánseparadospor32768.Porejemplo,enlascompensaciones.360424448360457216360489984360522752360555520

UsélabúsquedaBuscartodosenwxHexEditorymedetuvedespuésdeunosminutos.Habíaencontradounpardemilesenesemomento.Noestoysegurodequéhacerconellos,entodocaso.

TambiénpudeencontrarunasecciónetiquetadaEFISystemPartitioneneloffset3000592961536.Esotambiénmuestraelnombrequeteníalaunidad,"Rosie".

Aquí hay capturas de pantalla de la primera partición HFSJ y la partición del sistema EFI. Se agregó una captura de pantalla de offset 8192 basada en los comentarios.

Gracias por cualquier ayuda.

    
pregunta Doug Smith 05.03.2016 - 22:15

2 respuestas

7

Por favor, intente lo siguiente:

  • Obtenga el identificador de disco de su unidad externa de 3 TB

    diskutil list
    

    A continuación, asumo que el identificador de disco es disk6

  • desmontar el disco:

    diskutil umountDisk disk6
    
  • Sobrescribe los primeros 40 bloques:

    sudo dd if=/dev/zero of=/dev/disk6 bs=512 count=40
    
  • Crear un nuevo gpt:

    sudo gpt create /dev/disk6
    
  • Comprueba la información del disco con:

    diskutil info /dev/disk6
    

    Asegúrate de que el tamaño del bloque del dispositivo aún sea de 512 bytes

    También puedes usar

    sudo gpt -r show /dev/disk6
    

    Si el gpt muestra:

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
    

    tienes un disco & Controlador de disco que informa un tamaño de bloque lógico de 512 bytes. Por favor continúe con el siguiente paso.

    Si el gpt muestra:

       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2           4         Pri GPT table
    

    tienes un disco & Controlador de disco que informa un tamaño de bloque lógico de 4096 bytes. Por favor, detente aquí y agrega un comentario.

  • Primero reconstruye la entrada EFI con:

    sudo gpt add -b 40 -i 1 -s 614400 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk6
    

    Según el tamaño del disco y la versión del sistema, los volúmenes EFI de diferentes tamaños se crean si se particionan con la Utilidad de Discos: ya sea uno con el tamaño 200 MiB o uno con 300 MiB. Aquí es obvio que su disco contiene un EFI de 300 MiB y probablemente 4096 bytes de espacio en disco no asignado: (314598400-1024) / 512 = 614448 (= volumen principal del bloque de inicio) 614448-40-8 = 614400 (= tamaño de EFI)

  • Reconstruye tu volumen principal con:

    sudo gpt add -b 614448 -i 2 -s SizeOfVolume1 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    

    El tamaño del volumen principal se puede determinar por la primera entrada (dañada y antigua) de la segunda tabla GPT: (3000592961536/512) = 5860533128 es su número de bloque. Luego, el tamaño se calcula mediante 5860533128-614448 = 5859918680 bloques. Dado que 5859918680 es divisible por 8 (tamaño de bloque físico 4096 / tamaño de bloque lógico 512) esta es una buena estimación para el tamaño del volumen.

    La mejor conjetura es finalmente:

    sudo gpt add -b 614448 -i 2 -s 5859918680 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    

    La segunda mejor suposición es:

    sudo gpt add -b 614448 -i 2 -s 5859918672 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    
  • Probablemente tu volumen perdido se monta ahora. Verifique el volumen con:

    diskutil verifyVolume disk6s2
    

    Si es necesario, intenta reparar el volumen.

    diskutil repairVolume disk6s2
    

Dado que movió el disco "dañado" a un caso diferente y un controlador de disco, se modificó el tamaño del bloque lógico. El antiguo mapa de partición probablemente se basa en un tamaño de bloque lógico de 4096 Bytes.

Para recuperar el mapa de partición en el caso anterior (4096b), tendría que ingresar lo siguiente para restaurar el GPT (basado en la respuesta de David Anderson):

  • Crear un nuevo gpt:

    sudo gpt create /dev/disk6
    
  • Primero reconstruye la entrada EFI con:

    sudo gpt add -b 6 -i 1 -s 76800 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk6
    
  • Reconstruye tu volumen principal con:

    sudo gpt add -b 76806 -i 2 -s 732457067 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    
  • el mapa de partición final se ve así:

     sudo gpt -r show disk1
           start        size  index  contents
               0           1         PMBR
               1           1         Pri GPT header
               2           4         Pri GPT table
               6       76800      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
           76806   732457067      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
       732533873       32768         
       732566641           4         Sec GPT table
       732566645           1         Sec GPT header
    

Sobre la base de la parte 4096b, esto "vuelve a traducirse" después de instalar el disco en un caso de tamaño de bloque lógico 512b para:

  • Crear un nuevo gpt:

    sudo gpt create /dev/disk6
    
  • Primero reconstruye la entrada EFI con:

    sudo gpt add -b 48 -i 1 -s 614400 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk6
    
  • Reconstruye tu volumen principal con:

    sudo gpt add -b 614448 -i 2 -s 5859656536 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk6
    

Esto difiere de la primera parte (aceptada) de mi respuesta, ¡pero es la correcta! Dado que el EFI en realidad está "vacío" y los 262144 bloques no asignados solo contienen ceros, la respuesta "primero y de alguna manera incorrecta" no afecta la operatividad del volumen.

    
respondido por el klanomath 05.03.2016 - 22:54
3

Esto no es una respuesta, sino un ejemplo de cómo extraer la información de la partición GPT de los datos que presentó. Las entradas de partición GPT secundarias (de respaldo) se utilizaron porque no publicó los contenidos de las entradas de partición GPT primarias. El documento " Tabla de partición GUID " se utilizó para interpretar los datos.

El último LBA utilizable se puede encontrar en el encabezado de GPT. Esto ocurre en la dirección 8244. El valor es

70 14 aa 2b 00 00 00 00 little endian = 0x2baa1470 = 732566640 @ 4096 bytes/block.

El inicio de las entradas GPT secundarias (de respaldo) comienza en el siguiente bloque. El valor es

(732566640 + 1) * 4096 = 3000592961536 bytes.  

Usando esto como el inicio de la entrada de la tabla de particiones EFI, obtengo los siguientes valores. El inicio de la partición EFI, que se encuentra en la dirección 3000592961568, es

06 00 00 00 00 00 00 00 little endian = 0x6 = 6 @ 4096 bytes/block.

El final de la partición EFI, que se encuentra en la dirección 3000592961576, es

05 2c 01 00 00 00 00 00 little endian = 0x12c05 = 76805 @ 4096 bytes/block.

Lo que da un tamaño de partición de

76805 - 6 + 1 = 76800 @ 4096 bytes/block.

El inicio de la partición HFS, que se encuentra en la dirección 3000592961696, es

06 2c 01 00 00 00 00 00 little endian = 0x12c06 = 76806 @ 4096 bytes/block.

El final de la partición HFS, que se encuentra en la dirección 3000592961704, es

70 94 a9 2b 00 00 00 00 little endian = 0x2ba99470 = 732533872 @ 4096 bytes/block.

Lo que da un tamaño de partición de

732533872 - 76806 + 1 = 732457067 @ 4096 bytes / block.

Si va a utilizar un tamaño de bloque de 512 bytes, los resultados anteriores deberán multiplicarse por un valor de 8 para convertir a 512 bytes / bloque.

    
respondido por el David Anderson 06.03.2016 - 03:22

Lea otras preguntas en las etiquetas