¿Cómo recupero la partición APFS de un Macbook usando Ubuntu?

Fondo

Uso un Macbook Pro que tiene High Sierra y Fedora en arranque dual. No estaba usando Fedora, así que quería probar Ubuntu 17.10 y ejecuté un USB en vivo (arrancando en modo EFI).

Dado que todos mis archivos relacionados con el trabajo, proyectos y otras “cosas importantes” (en el lado de Mac) ya están respaldados a través de Dropbox o repositorys remotos de Git, decidí eliminar Fedora e instalar Ubuntu sin hacer una imagen de flujo de bits completo de la unidad

Al principio, eliminé las particiones relacionadas con Fedora usando Gnome Disks (esto está bien). Comencé el instalador de Ubuntu e hice estos pasos:

  • Selecciona un idioma> Continuar
  • Marcado “Descargar actualizaciones al instalar Ubuntu”> Continuar
  • Elija “Algo más” para las particiones> Continuar
  • Fijé erróneamente el tipo de /dev/sda2 como “Volumen físico para encriptación” y agregué mi contraseña

Tenga en cuenta que no elegí “Sobrescribir espacio en disco vacío”. Tampoco continué con la instalación (no llegué al punto en el que te pedía que confirmaras la nueva tabla de particiones). Más bien, hice clic en “Atrás” y luego cerré el instalador inmediatamente.

Esto no debería haber escrito nada en el disco. Sin embargo, el instalador de Ubuntu decidió escribir algo de todos modos, parece.

Problema

Después de reiniciar rápidamente, quedó claro que algo malo se ha escrito en el disco a pesar de no haber alcanzado el paso de confirmación. El tipo de la partición ha sido cambiado y ni rEFInd (que se carga correctamente) ni la pantalla de inicio de Apple pueden encontrar macOS.

Esta es la salida de lsblk :

 NAME FSTYPE LABEL UUID MOUNTPOINT loop0 squash /rofs sda ├─sda1 vfat EFI 67E3-17ED ├─sda2 crypto 9b2ca99d-cf43-4d35-936d-be37db7b950d └─sda3 

Originalmente, sda2 fue APFS. En macOS Filevault estaba habilitado, sin embargo, no puedo saber si estaba usando CoreStorage o el cifrado APFS nativo (sospecho que este último, ya que se migró de una versión anterior con HFS +).

La ejecución de la diskutil list desde la recuperación de Internet de Apple produce esto:

 /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.3 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: 7C3457EF-0000-11AA-AA11-00306543ECAC 349.7 GB disk0s2 3: 5361644D-6163-11AA-AA11-00306543ECAC 1.3 GB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *1.3 GB disk1 1: Apple_partition_map 30.7 KB disk1s1 2: Apple_HFS OS X Base System 1.3 GB disk1s2 

El segundo dispositivo es la recuperación de internet.

Extrañamente, también /dev/sda3 disk0s3 aka disk0s3 no se reconoce, a pesar de no haber sido tocado de ninguna manera. Así que la Mac ahora ni siquiera inicia la recuperación local, sino que se basa en la basada en Internet.

De vuelta en Ubuntu, parted queja de un GPT dañado, pero gdisk piensa que está bien. Aquí está la salida de parted -l :

 Model: ATA APPLE SSD SM0512 (scsi) Disk /dev/sda: 500GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 20.5kB 210MB 210MB fat32 EFI System Partition boot, esp 2 210MB 350GB 350GB 3 350GB 351GB 1306MB Error: Both the primary and backup GPT tables are corrupt. Try making a fresh table, and using Parted's rescue feature to recover partitions. 

Preguntas

Lo más importante, ¿cómo puedo usar Ubuntu para arreglar la tabla GPT y configurar el tipo de sistema de archivos correcto para /dev/sda2 y /dev/sda3 ?

En segundo lugar, ¿el instalador de Ubuntu escribe cosas en la tabla de particiones incluso antes de confirmar los cambios? ¿Es este el comportamiento previsto?

¿Hay posibilidades de recuperar el sistema sin reinstalarlo? Como dije, tengo copias de seguridad de los datos valiosos. Lo que me preocupa es que perderé mucho tiempo para reinstalar aplicaciones y cosas así.

Tu escribiste:

  • Fijé erróneamente el tipo de /dev/sda2 como “Volumen físico para encriptación” y agregué mi contraseña

Tenga en cuenta que no elegí “Sobrescribir espacio en disco vacío”. Tampoco continué con la instalación (no llegué al punto en el que te pedía que confirmaras la nueva tabla de particiones). Más bien, hice clic en “Atrás” y luego cerré el instalador inmediatamente.

Dados sus problemas posteriores, diría que el instalador de Ubuntu escribió en el disco de inmediato o que algo más dañó la partición en una coincidencia de tiempo. De cualquier manera, su mejor esperanza de recuperación se encuentra en el lado de macOS. APFS es simplemente demasiado nuevo para tener herramientas de recuperación nativas de Linux, al menos por lo que sé. Incluso si esas herramientas estuvieran disponibles en Linux, yo estaría un poco preocupado por ellas. Le sugiero que pregunte acerca de la recuperación en un foro de Mac. Sin embargo, puedes o no recuperar algo; APFS es lo suficientemente nuevo como para que aún no haya mucha experiencia disponible sobre la recuperación de sistemas de archivos dañados, y es posible que el instalador de Ubuntu (o lo que sea que causó el daño) sobrescribiera algo realmente crítico. Esto es especialmente cierto si usó el cifrado en el lado macOS, aunque el cifrado tiene algunas grandes ventajas, un gran inconveniente es que un daño menor en el sistema de archivos puede complicar enormemente la recuperación, tal vez hasta el punto de hacerlo imposible. (No sé cómo le va a APFS a este respecto).

De vuelta en Ubuntu, parted queja de un GPT dañado, pero gdisk piensa que está bien. Aquí está la salida de parted -l :

La salida parted que citó no es muy clara sobre la naturaleza del daño alegado, y no ha proporcionado ninguna salida de gdisk . En particular, la opción v de gdisk (o sgdisk -v ) podría ser útil, ya que sería el resultado completo cuando inicie gdisk y escriba p (o escriba sudo gdisk -l ). Podrías haber pasado por alto una advertencia de gdisk ; o podría haber reparado silenciosamente algún problema trivial que está provocando una queja por parte del parted ; o se parted podrían estar quejándose de algo que no es realmente daño y que gdisk aceptó; o parted podría haber notado un problema que gdisk no hizo. Las distinciones entre algunas de estas cosas pueden ser subjetivas, aunque la especificación GPT es mucho más clara que la inexistente especificación MBR, tiene algunas ambigüedades, por lo que un progtwig puede interpretar algo inusual como daño, mientras que otro puede pensar que está bien. Si la tabla de partición está dañada, la página de gdisk sobre la reparación del daño de GPT puede ser útil. (Nota: soy el autor de gdisk ). Sin saber exactamente qué piensa gdisk del disco, no puedo ofrecerle consejos más específicos sobre cómo repararlo, o incluso si necesita reparación.