He podido salvar al menos la partición OS X accediendo a la Mac de forma remota a través de TeamViewer y restaurando el antiguo grupo de volúmenes lógicos CoreStorage.
Estos son los pasos para recuperar el volumen OS X:
- iniciar en modo de recuperación de Internet
- Adjuntar una unidad de disco USB de 16 GB
- Instale un sistema completo en la unidad de disco USB. En el modo de recuperación de Internet se instala el sistema original con el que se entregó el Mac: Mountain Lion
- Después de arrancar desde la unidad de memoria USB y configurar una cuenta de administrador, el sistema se actualizó a El Capitán.
-
wxHexEditor (un editor de disco sin formato) y TeamViewer (acceso remoto) se instalaron.
Después de comprobar el disco con disktutil list
, diskutil cs list
y sudo gpt -r show disk0
, apareció la siguiente imagen:
- el disco tenía un MBR en lugar de un pMBR
- se configuró un Volumen CoreStorage pero el Volumen Físico se corrompió, no existían Logical Volume Family y Logical.
- No hay volumen, ni OS X ni NTFS ni el volumen de recuperación estaban funcionando
Para restaurar una tabla de particiones GUID, el MBR tuvo que ser sobrescrito con
sudo dd if=/dev/zero of=/dev/disk0 bs=512 count=1
y se tuvo que crear una nueva tabla de particiones GUID:
sudo gpt destroy disk0
sudo gpt create -f disk0
agregó una nueva partición EFI:
sudo gpt -i 1 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
y copió el EFI de la unidad flash en disk0s1:
sudo dd if=/dev/disk1s1 of=/dev/disk0s1 bs=4m
Ahora intenté determinar si la partición principal de OS X era CoreStorage o no CoreStorage con wxHexEditor:
En los volúmenes normales de HFSJ, los bloques 409640 y 409641 del disco (= bloque uno y dos de la partición OS X) generalmente contienen ceros y el bloque 409642 de la cadena "HFSJ" en los primeros 16 bytes. El primer bloque de CoreStorage contiene algunos no ceros; los dos bloques siguientes son iguales a las particiones que no son CoreStorage.
El bloque 409640 no tenía ceros, por lo que asumí que estaba "corregido".
El final de un grupo de volúmenes CoreStorage puede determinarse mediante cadenas de características en objetos invisibles con un estilo similar a plist en el "área administrativa" del grupo de volúmenes CoreStorage.
Lacadena"physicalVolumes" tiene cuatro apariciones cerca del final de un LVG. La última aparición se encuentra en el último bloque 8185 del LVG. Al buscar las cadenas con wxHexEditor, se determinó el último bloque.
Con el ejemplo anterior, es 511246241792/512 + 8184 = bloque 998536000. El número de bloque debe ser divisible por ocho para 512 discos.
Con el último bloque del LVG, la segunda partición se puede agregar con:
sudo gpt -i 2 409640 -s 998536000 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
El volumen roto reapareció. Luego se verificó y reparó el disco, así como los volúmenes. Tomó varios intentos para reparar todos los errores del volumen. No intenté recuperar la partición de Windows 7.
El volumen principal era totalmente de arranque. Se realizó una copia de seguridad de todos los datos y se volvió a particionar la unidad. Se instaló un nuevo sistema y los datos de respaldo se transfirieron con el Asistente de Migración.