Otra tabla de particiones dañada en macOS Mojave

0

He visto un par de publicaciones aquí que abordan problemas similares. Como no tengo una comprensión profunda 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 osx a través de la Utilidad de Discos, instalé rEFInd y luego Ubuntu 18.04. Eso funcionó muy bien. Podría arrancar lo que yo elija.
  2. Luego decidí reducir el espacio osx un poco más y formatear el espacio vacío resultante (otro 64Gb) a FAT a través de la 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, a Windows Installer no le gustó esa partición FAT, así que la borré (limpié). Todavía no me gustó. Lo borré. Y recrea el nuevo a partir del espacio vacío resultante. Todavía no me gustó. Decidí renunciar y marcharme hasta mañana. Reinicie mi maquina. Error . macOS ya no arranca y el proceso se dirige directamente a Ubuntu, desde el cual escribo 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#

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

EDIT # 1: Stil no puede encontrar hexdump o od en modo de recuperación. Sin embargo, he podido hacer esto:

-bash-3.2# fsck_apfs /dev/disk0s2
Cannot run fsck repair in install environment, degrading fsck_apfs to run with [-n] 
** Checking the container superblock.
** Checking the EFI jumpstart record.
** Checking the space manager.
** Checking the space manager free queue trees.
** Checking the object map.
** Checking volume.
** Checking the APFS volume superblock.
** The volume Macintosh HD was formatted by hfs_convert (748.1.46) and last modified by apfs_kext (945.220.38).
** Checking the object map.
** Checking the snapshot metadata tree.
** Checking the snapshot metadata.
** Checking the extent ref tree.
** Checking the fsroot tree.
error: btn: invalid btn_btree.bt_key_count (expected 12785968, actual 12786023)
Fix btree: bt_key_count (12786023)? NO
   fsroot tree is invalid.
** The volume /dev/disk0s2 could not be verified completely.
    
pregunta OneTimeQuestion 21.11.2018 - 06:19

1 respuesta

0

Si sospecha 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 al principio de disk0s2 para ver si el contenido coincide con lo que se espera para un contenedor APFS. Al parecer, el modo de recuperación es difícil. 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 indican 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, se generará lo siguiente.

NXSB
  

Nota: No se mostrarán los mensajes de error producidos por el comando dd . Para mostrar estos mensajes omita 2>/dev/null . Si lo hace en una partición de contenedor APFS, se generará una salida similar a la 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 observa la salida dd ya publicada en su pregunta, puede ver los caracteres NXSB .

Si puede iniciar Ubuntu, entonces podría realizar un volcado hexadecimal del primer sector de la partición del contenedor APFS ingresando el comando que se indica a continuación.

sudo hexdump -Cv -n 512 /dev/sda2

Cambiar 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 gdisk de terceros. Este comando puede ejecutarse desde Ubuntu ya instalado en tu Mac.

Puede hacer que Ubuntu cambie el tipo de partición usando el comando gdisk . Necesitará la versión 1.0.4 de gdisk . Si tiene una versión anterior, descargue e instale la versión actualizada desde el sitio web SourceForge GPT fdisk . El comando para ingresar se da a continuación.

sudo gdisk /dev/sda

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

GPT fdisk (gdisk) version 1.0.4

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): t
Partition number (1-8): 2
Current type is 'Apple Core Storage'
Hex code or GUID (L to show codes, Enter = 8300): af0a
Changed type of partition to 'Apple APFS'

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

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

  • Arranque desde una unidad externa con macOS ya instalado. Abra una ventana de aplicación de Terminal para ingresar los comandos necesarios.
  • Inicie en MacOS Recovery a través de Internet . Una vez que se inicia a través de Internet, puede abrir una ventana de Terminal para ingresar los comandos necesarios.
  • Use otro Mac para crear un instalador de arranque USB para macOS. Una vez que inicie el instalador, puede abrir una ventana de Terminal para ingresar los comandos necesarios.
  • Inicie la Mac en Modo de disco de destino y conéctese a otra Mac. En este caso, la unidad no será disk0 . Deberá ejecutar diskutil list para determinar el identificador correcto.

Los comandos para 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 gpt requieren que la unidad esté desmontada. Como a macOS le gusta montar particiones automáticamente, es posible que deba ingresar el comando diskutil unmountdisk disk0 antes de ingresar cada comando gpt .

    
respondido por el David Anderson 21.11.2018 - 22:11

Lea otras preguntas en las etiquetas