1 votos

Otra tabla de particiones corrupta en macOS Mojave

He visto un par de publicaciones en este sitio abordando problemas similares. Como no tengo un entendimiento profundo de lo que salió mal, tengo que describir lo que sucedió en mi caso y espero que me ayuden. Gracias.

MBP 15", Retina, mediados de 2012. Mojave.

  1. Reducí (eliminé 64Gb) el espacio de OSX a través de Utilidad de Discos, instalé rEFInd y luego Ubuntu 18.04. Funcionó muy bien. Podía arrancar lo que eligiera.
  2. Luego decidí reducir un poco más el espacio de OSX y formatear el espacio vacío resultante (otros 64Gb) a FAT a través de Utilidad de Discos. Después de eso, arranqué a través de una unidad USB e intenté instalar Windows 10 Pro en esa nueva partición.

Durante el segundo paso, el instalador de Windows no le gustó esa partición FAT, así que la borré (limpié). Todavía no le gustó. La eliminé. Y volví a crear la nueva desde el espacio vacío resultante. Todavía no le gustó. Decidí salir y dejarlo hasta mañana. Reinicié mi máquina. Falla. macOS ya no arranca y el proceso va directamente a Ubuntu, desde donde estoy escribiendo ahora. Actualizaré este mensaje tan pronto como obtenga las salidas de comandos requeridas.


-bash-3.2# diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         371.5 GB   disk0s2
   3: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC               523.2 MB   disk0s3
   4:                        EFI                         104.9 MB   disk0s4
   5:         Microsoft Reserved                         16.8 MB    disk0s5
   6:       Microsoft Basic Data                         63.9 GB    disk0s6
   7:                 Linux Swap                         4.0 GB     disk0s7
   8: 0FC63DAF-8483-4772-8E79-3D69D8477DE4               60.0 GB    disk0s8
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *1.2 GB     disk1
   1:        Apple_partition_map                         30.7 KB    disk1s1
   2:                  Apple_HFS Mac OS X Base System    1.2 GB     disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk3
/dev/disk4
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk4
/dev/disk5
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk5
/dev/disk6
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk6
/dev/disk7
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *6.3 MB     disk7
/dev/disk8
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *2.1 MB     disk8
/dev/disk9
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *1.0 MB     disk9
/dev/disk10
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk10
/dev/disk11
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *524.3 KB   disk11
/dev/disk12
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               *1.0 MB     disk12
-bash-3.2# gpt -r show disk0
      start       size  index  contents
      0          1         PMBR
      1          1         Pri GPT header
      2         32         Pri GPT table
     34          6

     40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
     409640  725609832      2  GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
  726019472        624

  726020096    1021952      3  GPT part - DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
  727042048     204800      4  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
  727246848      32768      5  GPT part - E3C9E316-0B5C-4DB8-817D-F92DF00215AE
  727279616  124825600      6  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  852105216    7813120      7  GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
  859918336  117186560      8  GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
  977104896        131

  977105027         32         Sec GPT table
  977105059          1         Sec GPT header
-bash-3.2# dd if=/dev/disk0 bs=512 skip=409640 count=1
rY
  +?,C??)?NXSB??g??C??T?"[?L9?
                            9?),l???W9?-d?s?s1+0 records in 1+0 records out 512 bytes transferred in 0.006626 secs (77273 bytes/sec) -

bash-3.2#

Disculpa por la salida del último comando, hexdump no está disponible en el modo de recuperación de mi máquina. Estoy trabajando desde una terminal limitada.


EDICIÓN #1: Todavía no puedo encontrar hexdump o od en el modo de recuperación. Sin embargo, he podido hacer esto:

-bash-3.2# fsck_apfs /dev/disk0s2
No se puede ejecutar la reparación de fsck en el entorno de instalación, degradando fsck_apfs para ejecutar con [-n]
** Comprobando el superbloque del contenedor.
** Comprobando el registro de inicio EFI.
** Comprobando el administrador de espacio.
** Comprobando las colas libres del árbol del administrador de espacio.
** Comprobando el mapa de objetos.
** Comprobando el volumen.
** Comprobando el superbloque de volumen de APFS.
** El volumen Macintosh HD fue formateado por hfs_convert (748.1.46) y modificado por última vez por apfs_kext (945.220.38).
** Comprobando el mapa de objetos.
** Comprobación del árbol de metadatos de instantáneas.
** Comprobando los metadatos de la instantánea.
** Comprobando el árbol de referencia de extensión.
** Comprobando el árbol fsroot.
error: btn: btn_btree.bt_key_count inválido (se esperaba 12785968, real 12786023)
Corregir btree: ¿bt_key_count (12786023)? NO
   El árbol fsroot es inválido.
** No se pudo verificar completamente el volumen /dev/disk0s2.

0 votos

@klanomath, ¿estás aquí? Ayudaste a la gente anteriormente con eso. Tal vez me podrías ayudar...

0 votos

Tienes la idea correcta. ¿Puedes usar od en lugar de hexdump? Por ejemplo: sudo od -N 512 -t xC -v /dev/disk0s2. Me parece extraño que estés usando Core Storage para Mojave. ¿Podría ser que el tipo de partición se cambió de APFS a Core Storage? Si es así, entonces esto explicaría por qué no puedes arrancar a macOS.

0 votos

Otros usuarios están teniendo problemas para instalar la versión de octubre de 2018 de Windows 10. El problema parece ser que el archivo install.wim no cabe en una partición formateada en FAT32. Parece que necesitas tanto particiones externas FAT32 como ExFAT para los archivos de instalación de Windows.

1voto

David Anderson Puntos 2189

Si sospechas que disk0s2 es en realidad un contenedor APFS, entonces cambia el tipo de partición en la Tabla de particiones GUID (GPT) a APFS. Normalmente, primero se haría un volcado hexadecimal del comienzo de disk0s2 para ver si el contenido coincide con lo esperado para un contenedor APFS. Aparentemente, esto es difícil desde el modo de Recuperación. Un último recurso sería ver si el número mágico de APFS serían los caracteres NXSB. Esto se puede hacer ingresando los comandos que se muestran a continuación.

dd if=/dev/disk0s2 count=4 skip=32 bs=1 2>/dev/null; echo

Si la partición es un contenedor APFS, entonces se mostrará lo siguiente.

NXSB

Nota: Cualquier mensaje de error producido por el comando dd no se mostrará. Para mostrar estos mensajes, omite el 2>/dev/null. Hacerlo en una partición de contenedor APFS produciría un resultado similar al que se muestra a continuación.

NXSB4+0 records in
4+0 records out
4 bytes transferred in 0.020234 secs (198 bytes/sec) 

Sin embargo, si miras la salida de dd ya publicada en tu pregunta, verás los caracteres NXSB.

Si puedes arrancar Ubuntu, entonces podrías hacer un volcado hexadecimal del primer sector de la partición de contenedor APFS ingresando el comando que se muestra a continuación.

sudo hexdump -Cv -n 512 /dev/sda2

Cambiando el tipo de partición de Core Storage a APFS

La forma más fácil de cambiar un tipo de partición es usar el comando de terceros gdisk. Este comando se puede ejecutar desde Ubuntu ya instalado en tu Mac.

Puedes hacer el cambio de tipo de partición desde Ubuntu usando el comando gdisk. Necesitarás la versión 1.0.4 de gdisk. Si tienes una versión más antigua, descarga e instala la versión actualizada desde el sitio web de SourceForge GPT fdisk. El comando a ingresar se muestra a continuación.

sudo gdisk /dev/sda

A continuación se muestra un ejemplo de la interacción adecuada con gdisk.

GPT fdisk (gdisk) versión 1.0.4

Exploración de la tabla de particiones:
  MBR: protectora
  BSD: no presente
  APM: no presente
  GPT: presente

Se encontró una GPT válida con MBR protectora; usando GPT.

Comando (¿ayuda para ver ayuda): t
Número de partición (1-8): 2
El tipo actual es 'Apple Core Storage'
Código hexadecimal o GUID (L para mostrar códigos, Enter = 8300): af0a
Se cambió el tipo de partición a 'Apple APFS'

Comando (¿ayuda para ver ayuda): w

Comprobaciones finales completas. A punto de escribir los datos de GPT. ¡ESTO SOBREESCRIBIRÁ LAS PARTICIONES EXISTENTES!

¿Quieres proceder? (S/N): s
OK; escribiendo la nueva tabla de particiones GUID (GPT) en /dev/sda.
Advertencia: El kernel todavía está usando la tabla de particiones anterior.
La nueva tabla se usará en el próximo reinicio o después de que ejecutes partprobe(8) o kpartx(8).
La operación se ha completado con éxito.

También puedes cambiar el tipo de partición desde macOS. Las diferentes formas de arranque son las siguientes.

  • Arrancar desde una unidad externa con macOS ya instalado. Abre una ventana de la aplicación Terminal para ingresar los comandos necesarios.
  • Arrancar en Recuperación de macOS a través de Internet. Una vez arrancado por Internet, puedes abrir una ventana de Terminal para ingresar los comandos necesarios.
  • Usar otro Mac para crear un instalador de USB de arranque para macOS. Una vez arrancado en el instalador, puedes abrir una ventana de Terminal para ingresar los comandos necesarios.
  • Arrancar el Mac en Modo de Disco de destino y conectar a otro Mac. En este caso, la unidad no será disk0. Deberás ejecutar diskutil list para determinar el identificador correcto.

Los comandos a ingresar se muestran a continuación.

sudo diskutil unmountdisk disk0
sudo gpt remove -i 2
sudo diskutil unmountdisk disk0
sudo gpt add -i 2 -b 409640 -s 725609832 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk0

Nota: La mayoría de los comandos de gpt requieren que la unidad esté desmontada. Como macOS tiende a montar automáticamente las particiones, es posible que necesites ingresar el comando diskutil unmountdisk disk0 antes de ingresar cada comando de gpt.

0 votos

¡Muchas gracias! Eso ayudó. ¿Necesito arrancar desde una unidad macOS dedicada (por ejemplo, usb) más tarde para reparar problemas de APFS?

0 votos

Puedes arrancar desde el Ubuntu existente. De lo contrario, puedes arrancar desde la Recuperación por Internet de macOS o desde una unidad USB externa que contenga macOS o un instalador de macOS.

0 votos

Ya he pasado este punto. Todo arranca perfectamente. Sin embargo, la utilidad de disco indica que hay problemas con este volumen. ¿Debería intentar recuperarlos? ('fsck_apfs' dice que no puede recuperar desde el modo de recuperación) no es un juego de palabras.

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