3 votos

Recuperar un SSHD corrupto

Tenía un viejo MPB de 13" de 2011 con un SSD Samsung Evo 840 de 250 GB y, utilizando el mod de la bahía de expansión de OWC, un SSHD de Seagate de 1 TB. El SSD era la unidad de arranque y el SSHD era solo para las copias de seguridad de Time Machine, el almacenamiento de archivos y una partición de boot camp. Desafortunadamente, derramé agua sobre ese Mac y posteriormente murió. Ayer por fin pude comprar un nuevo Mac. Ahora tengo un modelo Retina 2013 de 15" con 500 GB de almacenamiento flash. Utilicé el Asistente de Migración para transferir todos mis archivos desde el SSD, ya que era la unidad de arranque y la unidad con mi cuenta de usuario en ella. Sin embargo, después de eso conecté el SSHD de 1 TB pero el Mac me dio este error:

"El disco que ha introducido no puede ser leído por este ordenador"

Así que abrí la Utilidad de Discos y ejecuté Primeros Auxilios, pero fue en vano.

Normalmente soy muy técnico y puedo arreglar casi todo por mí mismo, pero esta vez creo que estoy sobre mi cabeza. Por favor, ayúdame a resolver esto para que pueda obtener mis archivos de la unidad. Originalmente la unidad tenía tres particiones: 2 de ellas eran GUID o HFS+ (no recuerdo... usé rEFIt si eso importa) y una era NTFS (mi partición Boot Camp).

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

Disk Utility SSHD

Disk Utility SSHD volume

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

0 votos

Si sirve de ayuda, lo tenía conectado en mi antiguo portátil internamente vía SATA III y ahora sólo estoy usando un conector externo SATA a USB (con su propia fuente de alimentación)

0 votos

Sí, el 601 era el almacenamiento de archivos, el 150 era una copia de seguridad de Time Machine, y el 250 era una partición de bootcamp. Pero, ¿por qué iba a ser ilegible por mi ordenador ahora? Lo único que he hecho es moverlo desde mi antiguo mac y conectarlo al nuevo para transferir algunos archivos. ¿Cómo lo restauro?

0 votos

¿Está la unidad permanentemente dañada o funcionará si la conecto con un cable diferente y/o a un ordenador diferente?

3voto

klanomath Puntos 19587

Tu SSHD no está corrupto en el sentido de que hayas perdido algún dato, sino que partes de la tabla de partición GUID no se pueden leer correctamente.

El SSHD ha perdido su tabla de particiones GUID o el controlador USB/SATA de la caja externa informa de un tamaño de bloque del dispositivo de 4096 Bytes mientras que su disco tiene un tamaño de bloque de 512 Bytes. En el caso de esto último, tienes que usar otra caja externa para montar el SSHD.

Un GUID de tamaño de bloque de dispositivo común de 512 Bytes comparado con un GUID de tamaño de bloque de dispositivo de 4096 Bytes difiere así:

             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 la cabecera primaria de GPT en el bloque(4096) 1 (que se "traduce" en los bloques(512) 8-15) y la tabla primaria de GPT en los bloques(4096) 2-5 (que se "traduce" en los bloques(512) 16-47). Esto fallará porque la cabecera primaria del disco(512) está en el bloque(512) 1 y la tabla primaria comienza en el bloque(512) 2.

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


Pruebe lo siguiente para restaurar la tabla de particiones GUID:

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

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

    Si el comando regresa: Device Block Size: 512 Bytes continuar, si 4096 Bytes son reportados Deténgase aquí y obtener una caja externa 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 su caso diskX: disk2

  • Desmonte el disco externo (sólo 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 entra sudo gpt -r show disk2 si se ha creado una nueva tabla de partición GUID. Debería tener este aspecto:

           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 te da un error o no se ha creado ningún pt GUID tienes que forzar la destrucción del MBR:

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

    El comando sobrescribe directamente el primer bloque del disco2 (el MBR del disco) con ceros. Si se introduce de forma incorrecta (por ejemplo, sin el "count=1" o el identificador de disco incorrecto), se sobrescribe todo el disco. El comando anterior debería completarse después de milisegundos. Si no es así, introduzca ctrlC para detener el comando inmediatamente.

    Entonces repite:

    sudo gpt create -f disk2

    Vuelva a comprobar si ha tenido éxito ahora.

  • Añade la partición una por una en la tabla de particiones GUID con gpt:

    Para añadir una partición con gpt utilice el siguiente comando

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

    con número_de_índice : ~el número de la partición; primer_bloque y tamaño en bloques (512 o 4096 bloques) y partiton_type: un 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 iniciar la reparación.


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


El comando gpt normalmente sólo escribe en los primeros 34 y últimos 33 bloques y fdisk sólo al primer bloque de un disco con un tamaño de bloque de 512 Bytes. Esto no destruirá ni modificará sus datos. Por lo tanto, todo lo que se hace es reversible.

0 votos

Muchas gracias. Me devolvió "4096 Bytes" así que supongo que el problema está en la forma en que lo estoy conectando. Qué alivio. Una vez más, ¡muchas gracias!

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