8 votos

Cómo arreglar la partición del disco duro de Mac que aparece como FDisk_partition_scheme

Mi situación es muy similar a la de cómo arreglar el disco duro GUID corrompido a MBR pero con las suficientes diferencias como para que no haya sido capaz de poner una solución segura.

Tengo una unidad Toshiba de 3TB en una carcasa USB que se utiliza en un Mac con OS X El Capitain 10.11.3.

La unidad estaba configurada con una sola partición. El disco no era arrancable y no tenía un sistema instalado, por lo que asumo que tampoco tendría una partición de recuperación. No puedo asegurar que nunca haya tenido un sistema instalado, pero no lo creo. No se ha utilizado con Bootcamp ni en ningún ordenador que no sea Mac.

La unidad funcionó con normalidad durante mucho tiempo, pero hace poco dejó de ser reconocida. 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 típico defecto de Mapa de partición GUID formateado como OS X Extended (Journaled) .

No se me ocurre ningún uso o evento específico que pueda haber causado el cambio.

Aquí está la información que he recogido 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.

Start of drive in wxHexEditor

Empecé a buscar la cadena HFSJ comenzando en un offset de 409642, como se sugiere en otras respuestas, pero no la encontré cerca de allí. Así que busqué empezando por el principio de la unidad y encontré la primera ocurrencia en el offset 314598400.

Sin embargo, si sigo buscando ocurrencias de HFSJ, encuentro muchas que son exactamente iguales y con mucho espacio cero alrededor, como la primera. Esos comienzan en 360424448 y están espaciados 32768. Por ejemplo, en los desplazamientos 360424448 360457216 360489984 360522752 360555520

Utilicé el Buscar todo búsqueda en wxHexEditor y se detuvo después de unos minutos. Había encontrado un par de miles en ese momento. No estoy seguro de qué hacer con ellos, si es que hay algo que hacer.

También he podido encontrar una sección denominada Partición del sistema EFI en el desplazamiento 3000592961536. Eso también muestra el nombre que tenía la unidad, "Rosie".

Aquí hay capturas de pantalla de la primera partición HFSJ y de la partición del sistema EFI. Añadido una captura de pantalla del offset 8192 basado en los comentarios.

First HFSJ partition, EFI partition at end, and offset 8192.

Gracias por cualquier ayuda.

0 votos

Parece que su disco tenía un tamaño de bloque de 4096 bytes y ahora tiene un tamaño de 512 bytes. Dado que el tamaño de bloque no se almacena en el propio disco, mi pregunta sería: ¿Ha cambiado el hardware de alguna manera? Además, si el tamaño de bloque era de 4096 bytes, entonces deberías poder leer las antiguas entradas de la tabla GPT a partir de 8192 bytes. Hasta ahora, sólo has publicado la cabecera de la GPT a partir de 4096 bytes. El volcado hexadecimal se puede convertir de nuevo a los valores decimales correctos utilizando la información dada aquí .

0 votos

@DavidAnderson, El hardware cambió en el sentido de que la unidad está en una caja USB diferente. Podría conseguir la caja original si eso ayuda en algo.

0 votos

@DavidAnderson He cambiado la captura de pantalla para añadir una para el offset 8192. Se muestra un Partición del sistema EFI allí.

11voto

klanomath Puntos 19587

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 del disco es disk6

  • desmontar el disco:

    diskutil umountDisk disk6
  • Sobrescribir 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úrese de que el tamaño del bloque del dispositivo sigue siendo de 512 Bytes

    También puede utilizar

    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

    usted tiene un disco y un controlador de disco que reportan 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

    usted tiene un disco y un controlador de disco que reportan un tamaño de bloque lógico de 4096 Bytes. Por favor, deténgase aquí y añada un comentario.

  • Primero reconstruya la entrada EFI con:

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

    Dependiendo del tamaño del disco y de la versión del sistema, se construyen volúmenes EFI de diferente tamaño si se particiona con la Utilidad de Discos: uno con el tamaño de 200 MiB o uno con 300 MiB. Aquí es obvio que tu disco contiene una EFI de 300 MiB y probablemente 4096 bytes de espacio de disco sin asignar: (314598400-1024)/512=614448 (=bloque inicial del volumen principal) 614448-40-8=614400 (=tamaño de la 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 (corrupta y antigua) de la segunda tabla GPT: (3000592961536/512)=5860533128 es su número de bloque. A continuación, el tamaño se calcula mediante 5860533128-614448=5859918680 bloques. Dado que 5859918680 se puede dividir entre 8 (4096 bloques físicos/512 bloques lógicos), es una buena estimación del tamaño del volumen.

    La mejor suposición 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 monte ahora. Verifique el volumen con:

    diskutil verifyVolume disk6s2

    Si es necesario, intente reparar el volumen.

    diskutil repairVolume disk6s2

Desde que moviste el disco "corrupto" a una caja y controlador de disco diferentes, el tamaño de bloque lógico fue modificado. El antiguo mapa de particiones probablemente se basa en un tamaño de bloque lógico de 4096 Bytes.

Para recuperar el mapa de particiones en el caso antiguo (4096b) tendría que introducir lo siguiente para restaurar el GPT (basado en la respuesta de David Anderson):

  • Crear un nuevo gpt:

    sudo gpt create /dev/disk6
  • Primero reconstruya 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 tiene el siguiente aspecto:

     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

Basado en la parte de 4096b esto "retraduce" después de instalar el disco en un caso de tamaño de bloque lógico de 512b a:

  • Crear un nuevo gpt:

    sudo gpt create /dev/disk6
  • Primero reconstruya 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 la EFI está realmente "vacía" y los 262144 bloques no asignados contienen sólo ceros, la respuesta "primera y en cierto modo errónea" no afecta a la operatividad del volumen.

2voto

David Anderson Puntos 2189

Esto no es una respuesta, sino un ejemplo de cómo extraer la información de la partición GPT a partir de los datos que has presentado. Se utilizaron las entradas de la partición GPT secundaria (de respaldo) porque no publicaste el contenido de las entradas de la partición GPT primaria. El documento " Tabla de partición GUID " se utilizó para interpretar los datos.

El último LBA utilizable se encuentra en la cabecera de la 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 reserva) comienzan 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, encontrado 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 tendrán que multiplicarse por un valor de 8 para convertirlos en 512 bytes/bloque.

0 votos

+1 Obtenemos un tamaño y un bloque de inicio idénticos para el EFI y un bloque de inicio idéntico pero un tamaño diferente del volumen principal.

0voto

becker Puntos 101

¿lo has recuperado al final? Estoy teniendo el mismo después de que traté de usar MacDrive para tirar algunos archivos grandes a un win10 a través de USB se congeló y me quedé con mi hdd mac confianza golpeado exactamente como su con la partición 0xEE

ACTUALIZACIÓN: Arreglé mi problema con pasos más sencillos hay una herramienta testDisk que lista el punto de inicio, final y tamaños de las particiones en el HD, luego el pdisk (la opción c) me permitió introducir esos datos y de repente pude leer mi HD completamente como antes me sale una advertencia pero todos los datos están de vuelta

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