Recuperar SSHD dañado

3

Tenía un viejo MPB 2011 de 13 "con un SSD Samsung Evo 840 de 250 GB y, usando el mod de la bahía de expansión OWC, un SeaHD SSHD de 1 TB. El SSD era la unidad de arranque y el SSHD era solo para las copias de seguridad de Time Machine. almacenamiento de archivos y una partición de boot camp. Desafortunadamente, derramé agua en esa Mac y luego murió. Ayer finalmente conseguí una nueva Mac. Ahora tengo un modelo Retina 2013 de 15 "con almacenamiento flash de 500 GB. Utilicé el Asistente de Migración para transferir todos mis archivos desde el SSD como lo era la unidad de arranque y la unidad con mi cuenta de usuario. Sin embargo, después de eso conecté el SSHD de 1 TB, pero la Mac me dio este error:

"El disco que insertó no fue legible en esta computadora"

Así que abrí la Utilidad de Disco y corrí Primeros Auxilios, pero fue en vano.

Por lo general, soy muy técnico y puedo arreglar casi cualquier cosa, pero esta vez creo que ya no lo sé. Por favor, ayúdeme a resolver esto para poder obtener mis archivos del disco. Originalmente, la unidad tenía tres particiones: 2 de ellas eran GUID o HFS + (no recuerdo ... usé REFIt si eso importa) y una fue NTFS (mi partición Boot Camp).

Aquí hay una captura de pantalla de lo que informó la Utilidad de Disco:

Salida de diskutil list :

/dev/disk0 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:      GUID_partition_scheme                        *500.3 GB   disk0
       1:                        EFI EFI                     209.7 MB   disk0s1  
       2:          Apple_CoreStorage Macintosh SSD           499.4 GB   disk0s2  
       3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3  

/dev/disk1 (internal, virtual): 
       #:                       TYPE NAME                    SIZE       IDENTIFIER   
       0:                            Macintosh SSD          +499.0 GB   disk1  
                                 Logical Volume on disk0s2  
                                 F0B49497-24EC-4A50-818C-A7897F573B5D  
                                 Unencrypted  

/dev/disk2 (external, physical):  
       #:                       TYPE NAME                    SIZE       IDENTIFIER  
       0:     FDisk_partition_scheme                        *1.0 TB     disk2  
       1:                       0xEE                         1.7 GB     disk2s1  
       2:                  Apple_HFS                         998.5 GB   disk2s2  

Jons MacBook Pro:~ Jonathan$ gpt -r show disk2  
gpt show: unable to open device 'disk2': Permission denied  

Salida de sudo gpt -r show disk2 :

gpt show: disk2: Suspicious MBR at sector 0  
gpt show: error: bogus map  
gpt show: unable to open device 'disk2': No such file or directory  

Salida de sudo fdisk /dev/disk2 :

Disk: /dev/disk2    geometry: 15200/255/63 [244190646 sectors]
Sector size: 4096 bytes
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE 1023 254  63 - 1023 254  63 [         1 -     409639] <Unknown ID>
 2: AF 1023 254  63 - 1023 254  63 [    409640 - 1175509584] HFS+        
 3: AF 1023 254  63 - 1023 254  63 [1176181368 -  292707720] HFS+        
*4: 07 1023 254  63 - 1023 254  63 [1469151232 -  484372480] HPFS/QNX/AUX
    
pregunta Jon B 09.10.2016 - 08:16

1 respuesta

3

Su SSHD no está dañado en el sentido de que perdió datos, pero parte de la tabla de particiones GUID no se puede leer correctamente.

El SSHD perdió su tabla de particiones GUID o el controlador USB / SATA en el caso externo informa un tamaño de bloque de dispositivo de 4096 Bytes mientras que su disco tiene un tamaño de bloque de 512 Bytes. En el caso de este último, debe utilizar otro estuche externo para montar el SSHD.

Un GUID de tamaño de bloque de dispositivo de 512 bytes en comparación con un GUID de tamaño de bloque de dispositivo de 4096 bytes se diferencia de este modo:

             512 size number  4096 size number ("in block(512) numbers")
pMBR                1      0          1      0         0-7
Pri GPT header      1      1          1      1         8-15
Pri GPT table      32   2-33          4    2-5        16-47
1st "used" block          40                 6        48

Si monta un "dispositivo de 512 bytes" en un "caso de 4096 bytes", el sistema espera el encabezado GPT primario en el bloque (4096) 1 (que se "traduce" en bloques (512) 8-15) y el primario Tabla GPT en los bloques (4096) 2-5 (que "se traduce" en bloques (512) 16-47). Esto fallará porque el encabezado principal del disco (512) está en el bloque (512) 1 y la tabla principal comienza en el bloque (512) 2.

Es obvio que no puede volver a escribir un GPT (512) en un GPT (4096) porque el último bloque de la tabla GPT (4096) se superpondría al primer bloque utilizable del disco GPT (512).

Intente lo siguiente para restaurar la tabla de particiones GUID:

  • Abra Terminal.app e ingrese los siguientes comandos para obtener una visión general y datos fundamentales para recuperar las tablas de partición anteriores si fallan los siguientes comandos:

    disktutil list
    diskutil info diskX | grep "Device Block Size" # with diskX: the disk identifier of the SSHD
    

    Si el comando devuelve: Device Block Size: 512 Bytes continúa, si 4096 Bytes se informa detente aquí y obtén un caso externo con capacidad para 512 bytes:

    sudo gpt -r show diskX # with diskX: the disk identifier of the SSHD
    sudo fdisk /dev/diskX # with diskX: the disk identifier of the SSHD
    

    En tu caso diskX: disk2

  • Desmonte el disco externo (solo para asegurarse de que esté desmontado). A continuación, asumo que diskX es disk2:

    diskutil umountDisk disk2
    sudo gpt destroy disk2
    sudo gpt create -f disk2
    

    Ahora ingrese sudo gpt -r show disk2 si se creó una nueva tabla de particiones GUID. Debería verse así:

           start         size  index  contents
                0            1         PMBR
                1            1         Pri GPT header
                2           32         Pri GPT table
               34   1953525102
       1953525135           32         Sec GPT table
       1953525167            1         Sec GPT header
    

    Si obtienes un error o no se creó un GUID pt, debes forzar la destrucción del MBR:

    sudo if=/dev/zero of=/dev/disk2 bs=512 count=1
    

    El comando sobrescribe directamente el primer bloque de disk2 (el MBR del disco) con ceros. Si se ingresa incorrectamente (por ejemplo, sin el "recuento = 1" o el identificador de disco incorrecto), se sobrescribe todo el disco. El comando anterior debe completarse después de milisegundos. De lo contrario, ingrese ctrl C para detener el comando inmediatamente.

    Luego repita:

    sudo gpt create -f disk2
    

    Vuelva a verificar si fue exitoso ahora.

  • Agregue la partición una por una en la tabla de particiones GUID con gpt:

    Para agregar una partición con gpt use el siguiente comando

    sudo gpt -i index_number -b first_block -s size -t partiton_type diskX
    

    con index_number : ~ el número de partición; first_block y tamaño en bloques (ya sea 512 o 4096 bloques) y partiton_type: un especial GUID

    En tu caso, eso es:

    sudo gpt -i 1 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk2
    sudo gpt -i 2 409640 -s 1175509584 -t 48465300-0000-11AA-AA11-00306543ECAC disk2
    diskutil umountDisk disk2
    sudo gpt -i 3 1176181368 -s 292707720 -t 48465300-0000-11AA-AA11-00306543ECAC disk2
    diskutil umountDisk disk2
    sudo gpt -i 4 1469151232 -s 484372480 -t EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 disk2
    
  • Ahora los volúmenes "perdidos" deberían reaparecer. Compruebe el disco y los volúmenes con diskutil verifyDisk /dev/disk2 , diskutil verifyVolume /dev/disk2s2 y diskutil verifyVolume /dev/disk2s3 .
  • Repare todo si es necesario, pero informe antes de comenzar la reparación.

Si no tiene un caso externo (512) sino un segundo disco vacío con al menos 1 TB, debería poder recuperar cada partición en el disco2 dd'ing cada uno en un archivo separado (por ejemplo, sudo dd if=dev/disk2 of=/Volumes/Disk3/efi.rawdevice bs=512 skip=40 count=409600 a Copie la partición EFI) en el disco vacío. Después de dd'ing las cuatro particiones a un volumen externo, vuelva a particionar el disco2 correctamente y restaure cada uno de los cuatro archivos de dispositivo en bruto a su "nueva" partición.

El comando gpt generalmente solo escribe en los primeros 34 bloques y los últimos 33 y fdisk solo en el primer bloque de un disco con un tamaño de bloque de 512 bytes. Esto no destruirá ni modificará sus datos. Así que todo lo que haces es reversible.

    
respondido por el klanomath 09.10.2016 - 10:39

Lea otras preguntas en las etiquetas