Sono stato in grado di recuperare almeno la partizione di OS X accedendo al Mac da remoto tramite TeamViewer e ripristinando il vecchio CoreStorage Logical Volume Group.
Ecco i passaggi per ripristinare il volume di OS X:
- Avvio in modalità ripristino Internet
- Collegare una pen drive da 16 GB
- Installa un sistema completo sulla pen drive. In modalità di ripristino di Internet è installato il sistema originale con cui è stato installato il Mac: Mountain Lion
- Dopo l'avvio dalla pen drive e la configurazione di un account amministratore, il sistema è stato aggiornato in El Capitan.
-
wxHexEditor (sono stati installati un editor di dischi grezzi) e TeamViewer (accesso remoto).
Dopo aver controllato il disco con disktutil list
, diskutil cs list
e sudo gpt -r show disk0
è emersa la figura seguente:
- il disco aveva un MBR invece di un pMBR
- un volume CoreStorage è stato configurato ma il volume fisico è stato danneggiato - nessuna famiglia di volumi logici e logica erano disponibili.
- Nessun volume - né OS X né NTFS o volume di recupero funzionavano
Per ripristinare una tabella delle partizioni GUID, l'MBR doveva essere sovrascritto con
sudo dd if=/dev/zero of=/dev/disk0 bs=512 count=1
e una nuova tabella di partizione GUID doveva essere creata:
sudo gpt destroy disk0
sudo gpt create -f disk0
ha aggiunto una nuova partizione EFI:
sudo gpt -i 1 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
e copiato l'EFI della pen drive su disk0s1:
sudo dd if=/dev/disk1s1 of=/dev/disk0s1 bs=4m
Ora ho provato a determinare se la partizione principale di OS X era CoreStorage o non-CoreStorage con wxHexEditor:
Nei normali volumi HFSJ il blocco 409640 e 409641 del disco (= blocco uno e due della partizione OS X) di solito contengono zeri e il blocco 409642 la stringa "HFSJ" nei primi 16 byte. Il primo blocco di un CoreStorage contiene alcuni non zeri - i prossimi due blocchi sono uguali a partizioni non-CoreStorage.
Il blocco 409640 aveva alcuni non zero, quindi ho pensato che fosse "corestoraged".
La fine di un gruppo di volumi CoreStorage può essere determinata da stringhe caratteristiche in oggetti invisibili plist-like nell'area "area amministrativa" del gruppo di volumi CoreStorage.
Lastringa"physicalVolumes" ha quattro occorrenze vicino alla fine di un LVG. L'ultima occorrenza è nell'8185 ° blocco dell'ultimo LVG. Cercando le stringhe con wxHexEditor è stato determinato l'ultimo blocco.
Con l'esempio sopra questo è 511246241792/512 + 8184 = blocco 998536000. Il numero del blocco deve essere divisibile per otto per 512 dischi.
Con l'ultimo blocco di LVG è possibile aggiungere la seconda partizione con:
sudo gpt -i 2 409640 -s 998536000 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
Il volume rotto è riapparso. Il disco è stato quindi verificato e riparato, nonché i volumi. Ci sono voluti diversi tentativi per riparare tutti gli errori del volume. Non ho provato a recuperare la partizione di Windows 7.
Il volume principale era completamente avviabile. Tutti i dati sono stati sottoposti a backup e l'unità è stata ri-partizionata. È stato installato un nuovo sistema e i dati di backup sono stati trasferiti con Migration Assistant.