Estaba tratando de instalar Linux en mi MacBook para la clase cuando bloqueé mi computadora, que ahora no se puede iniciar.
Hice mi partición demasiado pequeña, así que iba a eliminarla y crear una más grande. Sin embargo, Disk Utility no me permitió eliminar la partición pequeña. Seguí las instrucciones de https://apple.stackexchange.com/a/238088/236252
Sin embargo, no solo no podía eliminarlo, sino que al reiniciar me di cuenta de que mi partición principal (ubicada en el mismo disco) cambió a FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF, y no tenía opciones para arrancar. (Estoy seguro de que realicé el comando en el disco y la partición correctos)
Vi algunos hilos similares, pero mi unidad principal de arranque es la que se corrompió.
No quiero perder ningún dato. No soy el más experto en terminales, por lo que se agradece CUALQUIER ayuda, ¡y amablemente proporcionaré cualquier información adicional!
(Disco 0, la partición 2 es mi partición principal, y esa es la única que me importa)
A continuación se muestran los resultados de $diskutil list y $gpt -r show disk0 .
ACTUALIZACIÓN: He seguido las instrucciones de @klanomath. En el último paso recibí el siguiente error:
Checking prerequisites
Checking the partition list
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Problems were found with the partition map which might prevent booting
Error: -69766: The partition map needs to be repaired because there's a problem with the EFI system partition's file system
Underlying error: 8: POSIX reports: Exec format error
ACTUALIZACIÓN FINAL: ¡ÉXITO!
Solo quería agradecer a @klanomath por ayudarme durante todo este proceso. Pasó 11 horas en TeamViewing conmigo hasta que no solo mis archivos estuvieron accesibles, sino hasta que pude acceder a mi computadora antes de toda esta debacle (y esto fue después de 5 horas de correspondencia por correo electrónico).
Para cualquier futuro lector con este problema: ¡POR FAVOR, no se rinda, se puede arreglar!
Para agregar una respuesta que se ajuste exactamente a su caso, modifiqué ligeramente mi respuesta en el " duplicado " vinculado y la publiqué aquí nuevamente.
Tanto la segunda como la tercera partición de su disco interno tienen el tipo de partición incorrecto, sus datos probablemente no se perderán.
Una partición OS X de arranque (excepto Recovery HD) tiene el GUID 48465300-0000-11AA-AA11-00306543ECAC para una partición OS X estándar o el GUID 53746F72-6167-11AA-AA11-00306543ECAC para una partición CoreStorage. El FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF es un tipo de partición desconocido (pero no ninguna partición como la 000000-0000-0000...).
El primer bloque de una partición OS X estándar no contiene valores distintos de cero, el primer bloque de una partición CoreStorage contiene algunos valores distintos de cero. Para obtener los primeros 3 bloques de una partición, debe usar un sustituto de hexdump/xxd (ambos no están disponibles en el modo de recuperación/unidad de arranque del instalador de OS X). Lo mejor que he encontrado es dd if=/dev/diskXsY count=3 | vis -c
.
La tabla de particiones GUID se puede modificar con gpt
. gpt solo escribe en los primeros 34 y los últimos 33 bloques de un disco (512) o en los primeros 6 y últimos 5 bloques de un disco de 4k. La modificación de la tabla de particiones (incluso falsamente) no altera el contenido de ningún volumen en su disco, si no inicializa o repara un volumen/disco por pedido. Aunque puedes verificarlo.
diskutil list
Obtenga una descripción general de su disco interno con el identificador de disco que se encuentra en el comando anterior. A continuación, asumo que el identificador de disco de su disco interno es disk0 (reemplácelo con el que ha encontrado en su entorno)
gpt -r show disk0
diskutil umountDisk disk0
vis los primeros 3 bloques de la partición FFFF...:
dd if=/dev/disk0s2 count=3 | vis -c
Si anteriormente tenía una partición estándar, los primeros 1024 bytes solo contienen no imprimibles (ceros): \0\0... En ~Byte 1030, verá la siguiente secuencia: \0HFSJ\0
Si tenía una partición CoreStorage, se muestran algunos valores distintos de cero en los primeros 512 bytes y la cadena CS ( ...\0CS\^A...
):
\^U\^D\^A\M-s\M^?\M^?\M^?\M^?\^A\0\^P\0\0\0\M-W\^A\a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^B\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\M^Pu\M-\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0CS\^A\0\0\0\^D\0\0\^P\0\0\0\0@\0X\M-7}\^C\0\0\0\0X\M-;}\^C\0\0\0\0X\M-?}\^C\0\0\0\0X\M-C}\^C\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\^P\0\0\0\^B\0\0\0006j v\^R\M-+\^U\M^[\f\M^CdG\M-y\^]...
Ahora elimine la tercera, la cuarta y la segunda partición:
diskutil umountDisk disk0
gpt remove -i 3 disk0
diskutil umountDisk disk0
gpt remove -i 4 disk0
gpt remove -i 2 disk0
Si recibe un mensaje de error como "recurso ocupado", simplemente desmonte el disco nuevamente o desmonte los volúmenes obstinados con diskutil umount disk0sX
.
Vuelva a agregar la partición de recuperación con el tipo adecuado pero con el mismo número de índice, bloque de inicio y tamaño que tenía anteriormente:
gpt add -i 3 -b 227212504 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
Vuelva a agregar la partición principal con el tipo adecuado pero con el mismo número de índice, bloque de inicio y tamaño que tenía anteriormente:
Ya sea una partición OS X normal (si ha encontrado los rastros típicos de una partición normal en el dd ... vis
paso):
gpt add -i 2 -b 409640 -s 226802864 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
o (si ha encontrado los rastros típicos de una partición CoreStorage):
gpt add -i 2 -b 409640 -s 226802864 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
Su disco finalmente debería verse así si ha encontrado una partición OS X estándar:
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 226802864 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
227212504 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
228482040 8496103
236978143 32 Sec GPT table
236978175 1 Sec GPT header
o esto, si ha encontrado un volumen de CoreStorage:
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 226802864 2 GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
227212504 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
228482040 8496103
236978143 32 Sec GPT table
236978175 1 Sec GPT header
Finalmente verifique/repare el disco con diskutil verifyDisk disk0
y/o diskutil verifyVolume disk0s2
. Si se necesita una reparación, use reparar (en lugar de verificar) como prefijo en los comandos anteriores, pero comuníquese conmigo antes de repararlo y envíeme el mensaje de error .
Investigaciones posteriores a través de sesiones de TeamViewer revelaron que la partición EFI y la partición Recovery HD están dañadas. El volumen principal está encriptado. Recovery HD contiene una clave intermedia especial de FileVault. Si falta la clave, el sistema principal no se iniciará. Sin embargo, era posible desbloquear la unidad con diskutil cs unlockVolume ...
.
Después de instalar un macOS completo en una memoria USB y arrancarlo, la partición EFI y el HD de recuperación de otra unidad que no es de FileVault (en realidad, las de una Sierra VM) se agregaron a la unidad rota. Aún arrancado desde la memoria USB, el volumen de FileVault se revirtió a un volumen estándar haciendo clic con el botón derecho en el volumen en el Finder, eligiendo "Descifrar volumen" e ingresando una contraseña de usuario válida. Tiene que ser la contraseña de una cuenta de usuario elegible en el volumen de FileVault. Otros métodos para descifrar el volumen como diskutil cs revert lvUUID
o diskutil cs decryptVolume lvUUID
(probado solo en una máquina virtual) no parecían funcionar. Sin embargo, esto podría ser una restricción de las máquinas virtuales.
Para expandir la partición principal (disk0s2) al tamaño completo, use la Utilidad de Discos o el diskutil resizeVolume ...
comando.
Inicialmente, el volumen no aparecía en Preferencias del sistema> Disco de inicio, pero altal iniciar la Mac se reveló el volumen principal. Esto probablemente volvió a bendecir boot.efi del volumen correctamente. El volumen (ahora estándar) vuelve a aparecer en el disco de inicio.
gpt
? ¿Cómo puede encontrar los límites nuevamente para volver a agregarlos?dd | vis
a mano? ¿Hay alguna forma de mostrar esta salida como hexadecimal?¡ Este problema también puede ocurrir durante una sesión viva de APFS High Sierra ! Recibí este problema ayer, después de hacer cambios con la aplicación y los diskutil
comandos de Disk Utility, encontré esto:
sh-3.2# diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF 60.0 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +60.0 GB disk1
Physical Store disk0s2
1: APFS Volume APPLESSD 47.1 GB disk1s1
2: APFS Volume Preboot 19.4 MB disk1s2
3: APFS Volume Recovery 517.8 MB disk1s3
4: APFS Volume VM 1.1 GB disk1s4
sh-3.2# gpt -r show /dev/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 117111080 2 GPT part - FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
117520720 859584307
977105027 32 Sec GPT table
977105059 1 Sec GPT header
No creo que se reinicie en esa configuración (¿o tal vez con la tabla de copia de seguridad GPT? Ni idea). Gracias a la explicación anterior, pude resolver el problema durante la sesión en vivo, pero tuve que usar una solución ligeramente diferente ( esta solución solo funciona con SIP deshabilitado, si está habilitado, deberá reiniciar, deshabilitar y usar la solución anterior) . De todos modos , este problema tal vez esté relacionado con SIP deshabilitado, por lo que no ocurrirá en SIP habilitado, no lo sé.)
Incluso disk0
sin montar, parece gpt
que no permitirá modificar el GPT durante una sesión en vivo:
sh-3.2# gpt remove -i 2 disk0
gpt remove: unable to open device 'disk0': Resource busy
Entonces, en su lugar, utilicé una herramienta de terceros gdisk
(la obtuve a través de homebrew) para modificar el tipo de disk0s2
:
sh-3.2# gdisk /dev/disk0
GPT fdisk (gdisk) version 1.0.3
Warning: Devices opened with shared lock will not have their
partition table automatically reloaded!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): i
Partition number (1-2): 2
Partition GUID code: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF (Unknown)
Partition unique GUID: B40FA371-D92C-4EBF-B846-B0A9FB6DCD71
First sector: 409640 (at 200.0 MiB)
Last sector: 117520719 (at 56.0 GiB)
Partition size: 117111080 sectors (55.8 GiB)
Attribute flags: 0000000000000000
Partition name: 'Apple_HFS_Untitled_2'
Command (? for help): t
Partition number (1-2): 2
Current type is 'Unknown'
Hex code or GUID (L to show codes, Enter = af00): 7C3457EF-0000-11AA-AA11-00306543ECAC
Changed type of partition to 'Unknown'
Command (? for help): i
Partition number (1-2): 2
Partition GUID code: 7C3457EF-0000-11AA-AA11-00306543ECAC (Unknown)
Partition unique GUID: B40FA371-D92C-4EBF-B846-B0A9FB6DCD71
First sector: 409640 (at 200.0 MiB)
Last sector: 117520719 (at 56.0 GiB)
Partition size: 117111080 sectors (55.8 GiB)
Attribute flags: 0000000000000000
Partition name: 'Apple_HFS_Untitled_2'
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: Devices opened with shared lock will not have their
partition table automatically reloaded!
Warning: The kernel may continue to use old or deleted partitions.
You should reboot or remove the drive.
The operation has completed successfully.
Comprobándolo :
sh-3.2# gpt -r show /dev/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 117111080 2 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
117520720 859584307
977105027 32 Sec GPT table
977105059 1 Sec GPT header
sh-3.2# diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_APFS Container disk1 60.0 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +60.0 GB disk1
Physical Store disk0s2
1: APFS Volume APPLESSD 47.1 GB disk1s1
2: APFS Volume Preboot 19.4 MB disk1s2
3: APFS Volume Recovery 517.8 MB disk1s3
4: APFS Volume VM 1.1 GB disk1s4
Luego, la última verificación con diskutil verifyDisk disk0
y diskutil verifyVolume disk0s2
sin advertencias o errores. Reinicio exitoso.
gpt
comando en una sesión en vivo de High Sierra con SIP deshabilitado. Solo tienes que agregar la -f
opción para que se use un bloqueo compartido.
A mitad de camino
A mitad de camino
klanomath