1 votos

Tratando de reconstruir mi mapa de particiones

Mac Mini con High Sierra.
Tres particiones en el disco interno: MacOS (HFS+ Journaled), Windows (Bootcamp) y una partición NTFS independiente para las aplicaciones de Windows.

(Sé que hay múltiples hilos sobre temas similares pero todos parecían ser viejos y estoy cansado de que me reprendan por necrothreading).

Hace un tiempo arranqué en mi partición de Windows 10 Bootcamp y le permití actualizar cosas. Sólo arranco a Windows cada mes más o menos, por lo que esto puede tomar un tiempo. Una vez que se hizo fue a reiniciar pero no lo hizo. Entró en un modo de reparación, no pudo reparar, no pudo recuperar desde el último punto de Recuperación del Sistema, nada.

Mi hijo ha iniciado un negocio en ciernes en el ámbito de las tecnologías de la información y es mucho más experto en Windows que yo, así que le pedí que le echara un vistazo. Lo hizo y no tuvo más éxito que yo. Hizo un escaneo del disco que encontró varios sectores defectuosos, pero esto no tuvo ningún efecto, así que se encargó de borrar las particiones de Windows. Sin embargo, parece que al hacerlo, la utilidad que estaba utilizando le dijo a toda la unidad que eran todas las particiones de Windows y ya no pude arrancar el dispositivo en absoluto, ni en Windows ni en Mac.

Puso Testdisk en una unidad flash a mi insistencia y he sido capaz de juguetear con él por mi cuenta, pero con resultados limitados. Pude recuperar la partición de recuperación de MacOS para poder arrancar en el modo de recuperación, aunque he estado haciendo la mayor parte de mi trabajo a través del modo de recuperación basado en la red (lo llamaré net-Recovery), ya que algo que leí sugirió que me daría el conjunto de herramientas más relevante para mi versión del sistema operativo.

Usé TeskDisk (y DiskUtil) para compilar un mapa de mi unidad. Si consigo que la parte de MacOS vuelva a funcionar, probablemente eliminaré la partición de Bootcamp y la reconstruiré utilizando las herramientas adecuadas y reinstalaré Windows por completo, pero quiero salvar la parte de Mac si puedo. De lo que puedo decir de la información en este y otro sitio que probablemente debería reconstruir mi mapa de particiones utilizando "gpt" (no puedo usar "gdisk" ya que no tengo ningún lugar para instalarlo que yo sepa; Estoy trabajando en la unidad interna). Me he topado con un problema que hace que el MBR sea sospechoso en el sector 0. Incluso tratando de usar "gpt -v destroy -r disk0" no funciona debido a esto. Tengo la impresión de que puedo utilizar "fdisk" para reconstruir esto? Creo que estoy buscando para asegurarse de que lo que estoy planeando es correcto antes de que me lío las cosas irrevocablemente.

Cuando ejecuto "diskutil disk0" bajo net-Recovery, obtengo esto:

0:  FDisk_partition_scheme  500.1GB disk0
1:  0xEE                    209.7MB disk0s1
2:  Apple_HFS               370GB   disk0s2
4:  Windows_NTFS            53.7GB  disk0s4

Testdisk proporcionó el siguiente mapa:

EFI System      40          409639      409600
Mac HFS         409640      723065887   722656248
Mac HFS         723065888   724335423   1269536
MS Data         724336640   829194239   104857600

Estoy bastante seguro de que el segundo HFS del Mac es la partición de recuperación. Por qué no aparece en la lista de DiskUtil, no estoy seguro, pero puede tener algo que ver con el uso de net-Recovery? De todos modos, lo que aparece en la lista es lo que estoy tratando de restaurar.

La ejecución de "gpt -v show /dev/disk0" proporciona:

mediasize=500107862016; sectorsize=512; blocks=976773168
Suspicious MBR at sector 0
Start       Size        Index   Contents
0           1                   MBR
1           1                   Pri GPT header
2           32                  Pri GPT table
34          6
40          409600      1       GPTpart-C12A7328-F81F-11D2-BA4B-00A0C93EC93B
409640      722656248   2       GPTpart-48465300-0000-11AA-AA11-00306543ECAC
723965888   1269536     3       GPTpart-48465300-0000-11AA-AA11-00306543ECAC
724335424   1216
724336640   104857600   4       GPTpart-EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
829194240   147578895
976733135   32                  Sec GPT table
976773167   1                   Sec GPT header

Así que no pude ejecutar "gpt create -f /dev/disk0" porque "el dispositivo ya contiene una GPT" y como mencioné no pude destruir la gpt para reconstruirla debido al sospechoso MBR.

Creo que lo que quiero hacer ahora es correr
fdisk -i -a hfs /dev/disk0

No estoy seguro de si debería usar el estilo hfs o el estilo ufs, y no puedo encontrar nada concluyente sobre por qué debería elegir uno sobre el otro. En cualquier caso, he leído que esto debería eliminar el MBR anterior y los errores "sospechosos".

Entonces debería poder reconstruir la GPT:
gpt create -f /dev/disk0

Y luego reconstruir la tabla EFI:
gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

Y luego reconstruir las particiones esperadas:
gpt add -b 409640 -i 2 -s 722656248 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
gpt add -b 723065888 -i 3 -s 1269536 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
gpt add -b 724336640 -i 4 -s 104857600 -t EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 disk0

¿Estoy en el camino correcto?

0voto

David Anderson Puntos 2189

El gdisk es más sencillo de utilizar que el comando gpt y/o fdisk comandos. Esta respuesta explica cómo instalar gdisk y, a continuación, dar ejemplos de cómo utilizar gdisk . Dado que su unidad parece tener una partición híbrida, el primer ejemplo muestra cómo eliminar la partición híbrida. El segundo ejemplo reconstruye su GPT desde cero.

Nota: Su unidad tiene una partición de recuperación de MacOS. Esta partición tiene un atributo no nulo en la GPT. La dirección gpt no puede establecer bits de atributos en la GPT. Por lo tanto, el gpt no se puede utilizar para reconstruir completamente su mapa de particiones. El gdisk no tiene esta limitación.

Instalar gdisk de la recuperación de MacOS

Los siguientes pasos se pueden utilizar para instalar gdisk a su partición EFI.

  1. Arranque a la recuperación de MacOS. He arrancado con la versión 10.13.6. (El sw_vers puede utilizarse para obtener la versión de MacOS Recovery).

  2. Desde la barra de menú, abra una ventana de Terminal e introduzca los siguientes comandos. Esto montará su partición EFI y eliminará cualquier versión anterior de gdisk .

    diskutil mount disk0s1
    cd /Volumes/EFI
    rm -rf gdisk*

    Cuando termine, salga de la aplicación Terminal.

  3. Abra Safari seleccionando "Obtener ayuda en línea". En las Preferencias de Safari, ajuste la "Ubicación de descarga de archivos:" al EFI dispositivo, como se muestra a continuación.

    A continuación, vaya a https://sourceforge.net/projects/gptfdisk/ y seleccione el verde Download que se muestra a continuación, para descargar la versión actual de gdisk . (Esta era la versión 1.0.8 cuando escribí esto y por lo tanto el archivo gdisk-1.0.8.pkg se descargó en /Volumes/EFI .)

    Cuando termine, salga de la aplicación Safari.

  4. Desde la barra de menú, abra una ventana de Terminal e introduzca los siguientes comandos. Esto instalará gdisk al volumen EFI.

    cd /Volumes/EFI
    pkgutil --expand-full gdisk*.pkg gdisk-full
    mv gdisk-full/Payload/usr/local/bin/gdisk .
    rm -rf gdisk-*
    cd ~

Eliminar la partición híbrida

Nota: El mensaje Suspicious MBR at sector 0 producido por el gpt es una indicación de partición híbrida.

A continuación se muestran los comandos. Aquí, asumo /dev/disk0s1 ya está montado en /Volumes/EFI .

/Volume/EFI/gdisk /dev/disk0
x
n
w
y

A continuación se muestra un ejemplo de salida.

/Volumes/EFI/gdisk /dev/disk0
GPT fdisk (gdisk) version 1.0.8

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

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): x

Expert command (? for help): n

Expert 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/disk0.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.

Reconstruir la GPT desde cero

A continuación se muestran los comandos. Aquí, asumo /dev/disk0s1 ya está montado en /Volumes/EFI .

/Volume/EFI/gdisk /dev/disk0
o
y
x
l
1
m
n
1
40
+409600
ef00
n
2
409640
+722656248
af00
n
3
723065888 
+1269536
ab00
x
a
3
49
64
m
n
4
724336640
+104857600
0700
p
w
y

A continuación se muestra un ejemplo de salida.

/Volumes/EFI/gdisk /dev/disk0
GPT fdisk (gdisk) version 1.0.8

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

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): x

Expert command (? for help): l
Enter the sector alignment value (1-65536, default = 2048): 1

Expert command (? for help): m

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-976773134, default = 34) or {+-}size{KMGTP}: 40
Last sector (40-976773134, default = 976773134) or {+-}size{KMGTP}: +409600
Current type is AF00 (Apple HFS/HFS+)
Hex code or GUID (L to show codes, Enter = AF00): ef00
Changed type of partition to 'EFI system partition'

Command (? for help): n
Partition number (2-128, default 2): 2
First sector (34-976773134, default = 409640) or {+-}size{KMGTP}: 409640
Last sector (409640-976773134, default = 976773134) or {+-}size{KMGTP}: +722656248
Current type is AF00 (Apple HFS/HFS+)
Hex code or GUID (L to show codes, Enter = AF00): af00
Changed type of partition to 'Apple HFS/HFS+'

Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-976773134, default = 723065888) or {+-}size{KMGTP}: 723065888 
Last sector (723065888-976773134, default = 976773134) or {+-}size{KMGTP}: +1269536
Current type is AF00 (Apple HFS/HFS+)
Hex code or GUID (L to show codes, Enter = AF00): ab00
Changed type of partition to 'Recovery HD'

Command (? for help): x

Expert command (? for help): a
Partition number (1-3): 3
Known attributes are:
0: system partition
1: hide from EFI
2: legacy BIOS bootable
60: read-only
62: hidden
63: do not automount

Attribute value is 0000000000000000. Set fields are:
  No fields set

Toggle which attribute field (0-63, 64 or <Enter> to exit): 49
Have enabled the 'Undefined bit #49' attribute.
Attribute value is 0002000000000000. Set fields are:
49 (Undefined bit #49)

Toggle which attribute field (0-63, 64 or <Enter> to exit): 64

Expert command (? for help): m

Command (? for help): n
Partition number (4-128, default 4): 4
First sector (34-976773134, default = 724335424) or {+-}size{KMGTP}: 724336640
Last sector (724336640-976773134, default = 976773134) or {+-}size{KMGTP}: +104857600
Current type is AF00 (Apple HFS/HFS+)
Hex code or GUID (L to show codes, Enter = AF00): 0700
Changed type of partition to 'Microsoft basic data'

Command (? for help): p
Disk /dev/disk0: 976773168 sectors, 465.8 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 05365D82-005A-4671-844A-EEF1321088E6
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 1-sector boundaries
Total free space is 147580117 sectors (70.4 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI system partition
   2          409640       723065887   344.6 GiB   AF00  Apple HFS/HFS+
   3       723065888       724335423   619.9 MiB   AB00  Recovery HD
   4       724336640       829194239   50.0 GiB    0700  Microsoft basic data

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/disk0.
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.

Desmontaje de /dev/disk0s1

Los comandos se indican a continuación.

cd ~
diskutil unmount disk0s1

Referencias

Tutorial de fdisk GPT
GPT fdisk
¿Cómo extraer el contenido del archivo 'Payload' de un paquete de actualización de Apple MacOS?

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