Recover Corrupt SSHD

3

Avevo un vecchio MPB da 13 "con un SSD Samsung Evo 840 da 250 GB e, utilizzando la mod di espansione OWC, un SSHD Seagate da 1 TB: l'SSD era l'unità di avvio e l'SSHD era solo per i backup di Time Machine, Archiviazione di file e partizione di Boot Camp. Sfortunatamente, ho versato acqua su quel Mac e successivamente è morto. Ieri ho finalmente ottenuto un nuovo Mac. Ora ho un 15 "Retina modello 2013 con memoria flash da 500 GB. Ho usato Migration Assistant per trasferire tutti i miei file dal SSD poiché era l'unità di avvio e l'unità con il mio account utente su di esso. Comunque, dopo ho collegato l'SSHD da 1 TB ma il Mac mi ha dato questo errore:

"Il disco inserito non era leggibile da questo computer"

Quindi ho aperto Utility Disco e ho eseguito First Aid, ma senza risultati.

Di solito sono molto tecnico e riesco a sistemare quasi tutto da solo, ma questa volta penso di essere sopra la mia testa. Per favore aiutami a risolvere questo in modo da poter ottenere i miei file dal disco. Originariamente l'unità aveva tre partizioni: 2 erano GUID o HFS + (non ricordo ... ho usato rEFIt se questo importava) e uno era NTFS (la mia partizione Boot Camp).

Ecco uno screenshot che riporta Utility Disco:

Output di 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  

Output di 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  

Output di 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
    
posta Jon B 09.10.2016 - 08:16
fonte

1 risposta

3

Il tuo SSHD non è corrotto nel senso che hai perso dei dati, ma parti della tabella delle partizioni GUID non possono essere lette correttamente.

L'SSHD ha perso la sua tabella di partizione GUID o il controller USB / SATA nel caso esterno riporta una dimensione di blocco del dispositivo di 4096 byte mentre il disco ha una dimensione di blocco di 512 byte. In caso di quest'ultimo, è necessario utilizzare un altro caso esterno per montare l'SSHD.

Un GUID di dimensioni blocco dispositivi 512 byte comuni rispetto a un GUID dimensioni blocco dispositivi 4096 byte differisce in questo 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

Se monti un "dispositivo 512 Bytes" in un "caso 4096 Bytes", il sistema prevede l'intestazione GPT primaria nel blocco (4096) 1 (che "si traduce" in blocchi (512) 8-15) e il primario Tabella GPT nei blocchi (4096) 2-5 (che "si traduce" in blocchi (512) 16-47). Ciò fallirà perché l'intestazione primaria del disco (512) si trova nel blocco (512) 1 e la tabella primaria inizia al blocco (512) 2.

È ovvio che non puoi riscrivere un GPT (512) a un GPT (4096) perché l'ultimo blocco della tabella GPT (4096) si sovrapporrebbe al primo blocco utilizzabile del disco GPT (512).

Provare quanto segue per ripristinare la tabella delle partizioni GUID:

  • Apri Terminal.app e inserisci i seguenti comandi per ottenere una panoramica e dati fondamentali per il recupero delle tabelle delle partizioni precedenti se i seguenti comandi falliscono:

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

    Se il comando restituisce: Device Block Size: 512 Bytes continua, se 4096 Bytes viene segnalato fermati qui e ottieni un caso esterno compatibile con il byte 512:

    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
    

    Nel tuo caso diskX: disk2

  • Smonta il disco esterno (solo per essere sicuro che sia smontato). Di seguito suppongo che diskX sia disk2:

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

    Ora inserisci sudo gpt -r show disk2 se è stata creata una nuova tabella di partizione GUID. Dovrebbe assomigliare a questo:

           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
    

    Se si verifica un errore o non è stato creato alcun GUID pt, è necessario forzare la distruzione dell'MBR:

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

    Il comando sovrascrive direttamente il primo blocco di disk2 (l'MBR del disco) con zeri. Se inserito errato (ad es. Senza "count = 1" o identificatore di disco errato), sovrascrive l'intero disco. Il comando sopra dovrebbe essere completato dopo millisecondi. Altrimenti, digita ctrl C per interrompere immediatamente il comando.

    Quindi ripeti:

    sudo gpt create -f disk2
    

    Ricontrolla se ha avuto successo ora.

  • Aggiungi la partizione una alla volta nella tabella delle partizioni GUID con gpt:

    Per aggiungere una partizione con gpt usa il seguente comando

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

    con index_number : ~ il numero della partizione; first_block e size in blocchi (o 512 o 4096 blocchi) e partiton_type: uno speciale GUID

    Nel tuo caso è questo:

    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
    
  • Ora i volumi "persi" dovrebbero riapparire. Verifica il disco e i volumi con diskutil verifyDisk /dev/disk2 , diskutil verifyVolume /dev/disk2s2 e diskutil verifyVolume /dev/disk2s3 .
  • Riparare tutto se necessario, ma riferire prima di iniziare la riparazione.

Se non hai un caso esterno (512) ma un secondo disco vuoto con almeno 1 TB dovresti essere in grado di recuperare ogni partizione su disk2 eseguendo ciascuno a un file separato (ad esempio sudo dd if=dev/disk2 of=/Volumes/Disk3/efi.rawdevice bs=512 skip=40 count=409600 a copia la partizione EFI) sul disco vuoto. Dopo aver scaricato tutte e quattro le partizioni su un volume esterno, ripartire correttamente disk2 e ripristinare ciascuno dei quattro file rawdevice nella sua "nuova" partizione.

Il comando gpt di solito scrive solo nei primi 34 e negli ultimi 33 blocchi e fdisk solo nel primo blocco di un disco con una dimensione di blocco di 512 byte. Questo non distruggerà o modificherà i tuoi dati. Quindi tutto ciò che fai è reversibile.

    
risposta data 09.10.2016 - 10:39
fonte

Leggi altre domande sui tag