¿Cómo puedo arreglar mi tabla de particiones?

1

Creo que arruiné severamente mi tabla de particiones.

Tenía una partición BOOTCAMP, una partición APFS de macOS y una partición exFAT. Creo que también tenía 17 GB de espacio no asignado.

Intenté reducir la partición BOOTCAMP, y creo que eso arruinó la tabla de particiones. La partición BOOTCAMP produjo un error en el inicio y no se detectó la partición macOS. Desde Internet Recovery, reinstalé El Capitan desde una unidad USB en otra partición, mientras borraba la partición BOOTCAMP (tenía una copia de seguridad bastante reciente). Actualmente estoy usando eso, actualizado a High Sierra. Todavía no ve la partición macOS más antigua, o los ~ 50 GB de espacio no asignado (aunque creo que la mayor parte de eso podría ser la partición macOS que falta).

Además, la entrada de Windows todavía se muestra cuando se presiona alt / option en el arranque, aunque tiene errores como antes. No se muestra en el disco de inicio ni en ningún otro lugar.

Supongo que mi partición BOOTCAMP es irrecuperable, con lo cual estoy bien. Sin embargo, si es posible, ¿cómo puedo recuperar mi partición macOS anterior?

Y principalmente, ¿cómo simplemente arreglo la tabla de particiones? Esp. la supuesta partición de Windows / BOOTCAMP que está ahí (aunque estoy seguro de que no lo está) y la falta de ~ 50GB

Esto es lo que dice Disk Utility que tengo ahora. Extra y Common son solo particiones vacías por ahora.

Acontinuaciónsemuestraelresultadodelcomandosudogpt-rshowdisk0.

    
pregunta PiAhoy 13.03.2018 - 16:12

1 respuesta

2

La tabla de particiones del disco0 no está arruinada en absoluto, todos los cambios realizados no son intencionados .

Todas las particiones y volúmenes (EFI, Common, macOS y Extra) están marcados correctamente y un diskutil verifyVolume disk0sY probablemente se cerrará sin errores.

Una tabla de particiones arruinada perdería el encabezado y la tabla de la partición secundaria, o el encabezado / tabla primaria y secundaria son diferentes, o las sumas de verificación CRC-32 de las entradas de la tabla de encabezado y partición no son válidas.

Su tabla de particiones se ve así:

    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  91672536                                                       
 92082176 168686104     2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 
260768280    262144                                                       
261030424 177477424     3 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 
438507848  51464720     4 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 
489972568    262151                                                       
490234719        32       Sec GPT table                                   
490234751         1       Sec GPT header  

A la primera partición con un tamaño de 209.7 MB, la partición EFI estándar, le sigue un espacio en disco no asignado con un tamaño de 46.94 GB.

La segunda partición es una partición HFS + estándar con un tamaño de 86.37 GB, seguida de espacio en disco sin asignar con un tamaño (estándar) de 134.2 MB.

El tercero es una partición de contenedor APFS con un tamaño de 90.87 GB. La cuarta partición es otra partición estándar HFS + con un tamaño de 26.35 GB.

Un diseño de partición SSD predeterminado probablemente se vería así después de instalar High Sierra (APFS) y una partición BOOTCAMP:

     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         X     2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC 
  X+409640    262144      
  X+671784         Y     3 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
X+Y+671784       ...     ...  

El segundo espacio en disco no asignado (262144 bloques) puede ser más pequeño o más grande.

En consecuencia, depende del tamaño de su partición macOS anterior si se sobrescribieron o no partes de ella.

  • Si X era igual o menor que 91672536 (bloques), su antigua partición de macOS se puede recuperar completamente.
  • Si X era mayor que 91672536 (bloques) y menor que 260358640 (= 91672536 + 168686104) (bloques) partes de su antigua partición del contenedor macOS se sobrescribieron al crear el Común volumen. La creación de un nuevo volumen vacío generalmente requiere aproximadamente 120 MB - 500 MB para escribir algunos metadatos del sistema de archivos. Dependiendo del tamaño del sistema APFS / preboot / volumen de recuperación, algunas de sus partes pueden haberse sobrescrito.

Si el primer bloque de su contenedor de APFS desaparecido (incluido su antiguo volumen del sistema APOS de macOS) no se sobrescribió, puede detectar su tamaño anterior:

  • Arrancar desde una unidad externa con macOS instalado
  • Abra la Terminal y obtenga los detalles habituales relacionados con el disco (a continuación, asumo que el SSD interno tiene el identificador de disco disk0):

    diskutil list
    sudo gpt -r show disk0
    
  • Desmontar el SSD

    diskutil umountDisk disk0
    
  • dd / hexdump block 409640:

    sudo dd if=/dev/disk0 bs=512 skip=409640 count=1 | hexdump
    

    que producirá algo como esto (solo ejemplo!):

    1+0 records in
    1+0 records out
    512 bytes transferred in 0.001917 secs (267067 bytes/sec)
    0000000 b9 e9 ff cb a4 6d fc f3 01 00 00 00 00 00 00 00
    0000010 fc da 09 00 00 00 00 00 01 00 00 80 00 00 00 00
    0000020 4e 58 53 42 00 10 00 00 29 ea 22 01 00 00 00 00
    0000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    0000040 02 00 00 00 00 00 00 00 d8 36 06 fb 2f 1f 42 7a
    0000050 b2 90 f5 cc 5c 85 9f 36 13 6f 08 00 00 00 00 00
    0000060 fd da 09 00 00 00 00 00 18 01 00 00 18 6c 00 00
    0000070 21 3c 06 00 00 00 00 00 28 c9 05 00 00 00 00 00
    0000080 70 00 00 00 18 0f 00 00 6e 00 00 00 02 00 00 00
    0000090 bc 0e 00 00 5c 00 00 00 af 6b 00 00 00 00 00 00
    00000a0 69 ad 04 00 00 00 00 00 01 04 00 00 00 00 00 00
    00000b0 00 00 00 00 64 00 00 00 03 04 00 00 00 00 00 00
    00000c0 a4 6b 00 00 00 00 00 00 a6 6b 00 00 00 00 00 00
    00000d0 a6 0d 01 00 00 00 00 00 00 00 00 00 00 00 00 00
    00000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    *
    0000200
    

    la tercera línea es la importante:

    ...
    0000020 4e 58 53 42 00 10 00 00 29 ea 22 01 00 00 00 00
    ...
    
    • 4e 58 53 42 : cadena mágica de un contenedor APFS
    • 00 10 00 00 : tamaño de bloque APFS: 4096
    • Tamaño de contenedor 29 ea 22 01 00 00 00 00 APFS en bloques APFS: 19065385 (= 152523080 512 bloques)

      Después de reorganizar los bytes 29 ea 22 01 00 00 00 00 > 00 00 00 00 29 ea 22 01 > 00 00 00 00 01 22 ea 29 , puede obtener el valor decimal aquí :

    El tamaño del antiguo contenedor APFS en 512 (bloques) es el tamaño del contenedor APFS x el tamaño del contenedor en los bloques APFS. En el ejemplo, esto es 4096/512 * 19065385 = 152523080 bloques.

  • dependiendo del tamaño anterior, elimine la 2ª partición:

    diskutil umountDisk disk0
    sudo gpt remove -i 2 /dev/disk0
    
  • restaure la partición antigua (aquí con el tamaño del ejemplo: 152523080 bloques (512) - ¡no use esta accidentalmente! ):

    diskutil umountDisk disk0
    sudo gpt add -i 2 -b 409640 -s 152523080 -t 7C3457EF-0000-11AA-AA11-00306543ECAC /dev/disk0
    
  • compruebe el contenedor APFS

    diskutil verifyVolume disk0s2
    
  • compruebe el volumen del sistema APFS

    diskutil list #get the device identifier of the APFS system volume and use it below (probably disk2s2)
    diskutil verifyVolume diskXsY
    

Si tiene problemas para analizar el volcado hexadecimal u otros resultados y mensajes de error, ¡deje un comentario!

    
respondido por el klanomath 14.03.2018 - 20:29

Lea otras preguntas en las etiquetas