¿Cómo reparar la partición EFI rota?

Tengo un iMac con OSX Lion. También instalé bootcamp y Windows 7. Durante la instalación de Windows 7 no presté mucha atención y eliminé y formateé la partición EFI.

Realmente no me di cuenta de la importancia de esto ya que la máquina siguió funcionando bien, arrancando tanto en Windows como en OSX.

Noté que las actualizaciones de firmware de EFI no se instalaron, pero no le presté atención.

Sin embargo, ahora quiero instalar Mountain Lion y hay un montón de problemas. Mountain Lion no se instalará sin una partición EFI válida.

Aquí está mi tabla de particiones.

   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                  Apple_HFS EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            799.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:       Microsoft Basic Data BOOTCAMP                200.3 GB   disk0s4

Como puede ver, he intentado arreglar la partición EFI con el siguiente comando:

newfs_hfs -v EFI /dev/disk0s1

Esto no pareció crear el tipo correcto de partición, creó un Apple_HFS en lugar de EFI.

Mi pregunta es (sin formatear el disco) ¿cómo creo una partición EFI?

gracias rico

Consulte también esta respuesta para cambiar el tipo de partición: apple.stackexchange.com/a/342139/14586

Respuestas (5)

Puede recrear la partición del sistema EFI (ESP) con la gptherramienta de línea de comandos. Debe comenzar en el sector 40 y debe tener 409600 sectores (exactamente 200MiB) de largo. El tipo de entrada GPT debe ser C12A7328-F81F-11D2-BA4B-00A0C93EC93B, y si tiene un MBR híbrido, el tipo debe ser EE. El formato es en realidad un subconjunto de FAT, no HFS+. Puede leer el GPT usando el comando sudo gpt -r show disk0en una ventana de Terminal, esto produce un resultado que 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  447801712      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
  448211352    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
  449480888   40753831         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

Puede ver la partición EFI correcta en el índice 1. Si esa línea no coincide exactamente, la forma más fácil es eliminar la partición en su lugar y volver a crearla.

Asegúrese de saber lo que está haciendo antes de continuar desde aquí; puede perder datos si se equivoca.

No puede editar la tabla gptde particiones mientras las particiones en la unidad están montadas, por lo que deberá iniciar desde otra unidad (por ejemplo, una memoria USB con el instalador de OSX) o ejecutar la Mac en modo de disco de destino y realizar la partición desde otra mac. Es posible que deba desmontar cualquier volumen montado automáticamente diskutil unmountDisk disk0antes de continuar y entre comandos .

Para eliminar su partición EFI "mala", ejecute este comando:

sudo gpt remove -i 1 disk0

Asegúrese de que disk0 sea realmente el disco que desea cambiar: los números pueden cambiar entre reinicios. Además, esto solo funcionará si ya tiene una partición que no es ESP en el lugar del ESP; si no, ¡eliminar la partición 1 podría ser desastroso! En este caso, deberá mover los índices, ya que creo que el ESP debe tener el índice 1. Por lo que parece, esto no será necesario en su caso.

Una vez eliminada, vuelva a agregar la partición con el diseño y el tipo correctos:

sudo gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0

Esto debería resolver la partición en sí, pero como ha creado una partición HFS en su lugar, también debe corregir su formato.

El formato de la partición del sistema EFI está documentado por Apple aquí . Como puede ver, recomiendan que clone un ESP existente en lugar de recrear el sistema de archivos con newfs_msdos. Si tiene una unidad externa con una tabla de particiones GPT (el dispositivo de instalación de OSX debería tenerla), puede clonar eso.

Asegúrese de tener los números de disco y partición en la dirección correcta o puede sobrescribir los datos:

Si disk1 es su unidad externa y contiene un ESP como la primera partición (disk1s1) y disk0 es la unidad cuyo ESP (disk0s1) desea reparar, ejecute este comando:

sudo dd if=/dev/disk1s1 of=/dev/disk0s1

Esto copiará cada bloque del ESP del disco 1 y sobrescribirá el bloque correspondiente en el ESP del disco 0 con él.

Alternativamente, apueste con newfs_msdos.

Gracias por la respuesta muy detallada. Eventualmente logré solucionar mi problema usando iParition. Sin embargo, al leer su método, parece ser el método exacto que estaba buscando si iParition no existiera. Gracias de nuevo, estoy marcando esto como la respuesta correcta.
Este método funcionó muy bien para mí en 10.6 después de que GParted clonó el ESP para bloquear 2048 en un SSD. Arrancando un disco de instalación y siguiendo lo anterior, solía ddalmacenar el ESP clonado en un archivo antes de eliminarlo, volver a crearlo y volver a escribirlo. ¡Gracias!
Funcionó muy bien en mi mbp con unidad híbrida ssd. EFI fue sobrescrito por una instalación de grub y este método funcionó perfectamente para recuperarlo.
Gracias por compartir. Para ahorrar tipeo, puede especificar EFI como tipo de partición en lugar del GUID: sudo gpt add -b 40 -i 1 -s 409600 -t EFI disk0
¿Qué hiciste exactamente con iPartition @Rich?
Utilicé esta respuesta como base para copiar una partición OSX Restore a, por ejemplo, una llave USB usando -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECACbanderas para gpt add.
Obtenga el -stamaño con gpt showel original, y el UID es para "Apple Boot"
¿Cómo puedo cambiar los índices de las particiones para que el ESP pueda estar en el índice 1?
No tenía un ESP válido para clonar, así que usé newfs_msdos -F 32 -v EFI /dev/disk0s1. Luego diskutil listmostró tanto su tipo como su nombre como "EFI". Sin embargo bless --info, no se pudo leer de la partición. Así que ejecuté bless --folder /Volumes/Macintosh\ HD/System/Library/CoreServices --setBoot, tuvo éxito, ahora --infofunciona y aparentemente todo volvió a la normalidad.
Los índices de partición se pueden modificar usando gdisk (x para modo "experto", t para transposición). Cambia uno por el otro, por lo que es posible que tengas que hacerlo más de una vez. Consulte el manual para obtener más información: linux.die.net/man/8/gdisk
En MacBook Pro 2011, solo puedo arrancar desde algún CD/DVD; de lo contrario, no puedo desmontar el disco 0 y realizar cambios en él. ¿Cómo puedo crearlo y ejecutarlo?
¿De dónde llegaste al número "debe ser exactamente 200 MB"? Las notas técnicas de Apple no dan un número específico, y la especificación UEFI no parece mencionar Particiones del sistema UEFI / ESP / 0xEFen absoluto, después de una búsqueda ligera. Mi MacBook Pro (Boot Camp'd, eso sí) tiene un ESP de 314,6 MB: "exactamente 614400 unidades de 512 bytes". (Quiero hacer una copia de seguridad, pero no estoy seguro de qué tamaño usar).
Como sugerencia, me encontré con un requisito de Microsoft : "Para unidades de formato avanzado de primera generación (4 KB por sector), el tamaño mínimo de esta partición es de 260 MB". En particular, de diskutil info disk0hecho informa "Tamaño de bloque del dispositivo: 4096 bytes".

Prueba esto:

  1. Copia de seguridad de la unidad en la máquina del tiempo.
  2. Reinicie, reiniciando en el disco de instalación de Lion.
  3. Vaya a Utilidad de disco.
  4. Borrar partición.
  5. Borrar alta definición.
  6. Vuelva a borrar la partición nuevamente, esta vez dándole un nombre.
  7. Haga clic en HD.
  8. Verifique HD para confirmar que ya no aparece el mensaje de error EFI.
  9. Vuelve a la pantalla de instalación.
  10. Elija restaurar desde la copia de seguridad.

Aquí se encontró una solución más simple: https://unix.stackexchange.com/a/174522/182014

Se puede crear una partición EFI a través de GParted Live CD/USB :

  • Cree una unidad de 200 MB (todo mi espacio libre al principio):
    • Escribe:fat32
    • Etiqueta:EFI
  • formatearlo
  • Establecer banderas de arranque (opción disponible solo después de formatear) para"boot, esp"

ingrese la descripción de la imagen aquí

¡Listo!

Pruebe iPartition 3 o superior. Vaya al menú Ver y muestre los dispositivos del sistema. Dado que le falta el EFI de 200 mb, reduzca la primera partición en el disco con suerte en 200 mb. Cree una nueva partición, luego en la ventana del inspector de disco hay pestañas. Puede elegir muchos tipos diferentes de sistemas de archivos. Simplemente elija la partición del sistema EFI.

Esto solucionó el problema para mí.

1) Copia de seguridad de la partición de Bootcamp usando Winclone

2) Haga una copia de seguridad de la unidad Mac OSX utilizando Carbon Copy Clone en una unidad externa

3) Instale Mountain Lion en una unidad flash o unidad externa

4) Compre una copia de iPartition, descárguela a una unidad flash o a una unidad externa

5) Reinicie mientras mantiene presionada la tecla Opción para obtener el menú de inicio

6) Seleccione la unidad flash o externa desde la que iniciar

7) Extraiga iPartition y ejecute. Seleccione Ver e Inspector en el menú desplegable.

8) Seleccione Partición Bootcamp en la pestaña Partición y marque las dos casillas de la lista (Activo y Visible en Windows) y luego cierre la casilla.

9) El botón Ir debe estar iluminado, si no, haga crecer un poco la partición de Bootcamp. El mío es OSX de 2 TB, Windows de 500 GB en una unidad de 2,5 TB.

10) Una vez que se presiona el botón Ir, debería comenzar a procesarse; aunque es posible que deba eliminar cualquier proceso que impida que se ejecute (Hecho con Monitor de actividad)

11) Una vez que haya terminado, apague y retire el dispositivo de arranque externo y luego vuelva a encender la Mac. Debería arreglarse y arrancar normalmente, al menos el mío lo hizo.

Tengo un iMac 27, Intel Core i3 de 3,2 GHz con 16 GB de RAM y un disco duro de 2,5 TB. La mayoría de los elementos enumerados ya los había hecho antes de la instalación de Mountain Lion, excepto una copia de seguridad actual de la unidad Bootcamp. Winclone funcionó a pesar de que Bootcamp no arrancaba y el proceso de restauración generaba un error al escribir el MBR. Simplemente ignoré el error y continué con el resto del proceso. Aparentemente, Mountain Lion se metió con el PMBR o el EFI e incluso rEFIt no lo arreglaría, pero lo que sea que hizo iPartition; ahora está arreglado.

*DESCARGO DE RESPONSABILIDAD**

Si bien este proceso puede haber funcionado bien para mí, ¡PUEDE NO FUNCIONAR PARA USTED! COMO CON CUALQUIER PROCESO QUE EDITA LA TABLA DE PARTICIONES Y LOS DATOS DE ARRANQUE, TIENE LA POSIBILIDAD DE PERDER DATOS. HAGA UNA COPIA DE SEGURIDAD DE SU UNIDAD SI DESEA MANTENER SUS DATOS.

Recomiendo encarecidamente Carbon Copy Clone para hacer una copia de seguridad de la partición OSX porque puede crear un clon de arranque que nunca he fallado.

Estoy seguro de que otros han tenido éxito en otros lugares para resolver este problema y agradezco a todos los que publicaron lo que hicieron, ya que me ayudaron a resolver este problema en mi iMac.

Gracias a todos y espero que esto ayude a alguien más. (Publicado en el foro de Apple) https://discussions.apple.com/message/19220149#19220149