Wie repariert man eine defekte EFI-Partition?

Ich habe einen iMac mit OSX Lion. Ich habe auch Bootcamp und Windows 7 installiert. Bei der Installation von Windows 7 habe ich nicht ganz aufgepasst und die EFI-Partition gelöscht und formatiert.

Ich war mir der Bedeutung nicht wirklich bewusst, da die Maschine weiterhin einwandfrei funktionierte und sowohl Windows als auch OSX bootete.

Ich habe festgestellt, dass die EFI-Firmware-Updates nicht installiert werden konnten, habe dies aber nicht beachtet.

Aber jetzt möchte ich Mountain Lion installieren und es gibt einen ganzen Haufen Ärger. Mountain Lion wird ohne eine gültige EFI-Partition nicht installiert.

Hier ist meine Partitionstabelle.

   #:                       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

Wie Sie sehen können, habe ich versucht, die EFI-Partition mit dem folgenden Befehl zu reparieren:

newfs_hfs -v EFI /dev/disk0s1

Dies schien nicht den richtigen Partitionstyp zu erstellen, es wurde ein Apple_HFS anstelle von EFI erstellt.

Meine Frage ist (ohne die Festplatte zu formatieren), wie erstelle ich eine EFI-Partition?

Danke Reich

Siehe auch diese Antwort zum Ändern des Partitionstyps: apple.stackexchange.com/a/342139/14586

Antworten (5)

Sie können die EFI-Systempartition (ESP) mit dem Befehlszeilentool neu erstellen gpt. Es sollte bei Sektor 40 beginnen und 409600 Sektoren (genau 200 MiB) lang sein. Der Typ des GPT-Eintrags sollte C12A7328-F81F-11D2-BA4B-00A0C93EC93B, und wenn Sie einen Hybrid-MBR haben, sollte der Typ dort sein EE. Das Format ist eigentlich eine Teilmenge von FAT, nicht HFS+. Sie können die GPT mit dem Befehl sudo gpt -r show disk0in einem Terminalfenster lesen, dies erzeugt eine Ausgabe, die etwa so aussieht:

      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

Sie können die richtige EFI-Partition bei Index 1 sehen. Wenn diese Zeile nicht genau übereinstimmt, ist es am einfachsten, die Partition an ihrer Stelle zu löschen und neu zu erstellen.

Stellen Sie sicher, dass Sie wissen, was Sie tun, bevor Sie von hier aus fortfahren - Sie können Daten verlieren, wenn Sie Fehler machen.

Sie können die Partitionstabelle nicht mit bearbeiten, gptwährend Partitionen auf dem Laufwerk gemountet sind, daher müssen Sie von einem anderen Laufwerk booten (z. B. einem USB-Stick mit dem OSX-Installationsprogramm) oder den Mac im Zielfestplattenmodus ausführen und die Partitionierung vornehmen ein anderer mac. Möglicherweise müssen Sie alle automatisch gemounteten Volumes mit aushängen, diskutil unmountDisk disk0bevor Sie fortfahren, und zwischen den Befehlen .

Um Ihre "schlechte" EFI-Partition zu löschen, führen Sie diesen Befehl aus:

sudo gpt remove -i 1 disk0

Stellen Sie sicher, dass disk0 wirklich die Festplatte ist, die Sie ändern möchten - die Nummern können sich zwischen Neustarts ändern. Außerdem funktioniert dies nur, wenn Sie anstelle des ESP bereits eine Nicht-ESP-Partition haben - wenn nicht, könnte das Löschen von Partition 1 katastrophal sein! In diesem Fall müssen Sie die Indizes verschieben, da ich denke, dass das ESP Index 1 haben muss. So wie es klingt, ist dies in Ihrem Fall nicht erforderlich.

Fügen Sie nach dem Löschen die Partition mit dem richtigen Layout und Typ erneut hinzu:

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

Dies sollte die Partition selbst aussortieren, aber da Sie an ihrer Stelle eine HFS-Partition erstellt haben, müssen Sie auch ihr Format korrigieren.

Das Format der EFI-Systempartition ist hier von Apple dokumentiert . Wie Sie sehen können, empfehlen sie, ein vorhandenes ESP zu klonen, anstatt das Dateisystem mit newfs_msdos. Wenn Sie ein externes Laufwerk mit einer GPT-Partitionstabelle haben (der OSX-Installationsstick sollte es haben), können Sie das klonen.

Stellen Sie sicher, dass Sie Ihre Festplatten- und Partitionsnummern richtig herum haben, oder Sie können Daten überschreiben:

Wenn disk1 Ihr externes Laufwerk ist und es eine ESP als erste Partition (disk1s1) enthält und disk0 das Laufwerk ist, dessen ESP (disk0s1) Sie reparieren möchten, führen Sie diesen Befehl aus:

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

Dadurch wird jeder einzelne Block des ESP von disk1 kopiert und der entsprechende Block im ESP von disk0 damit überschrieben.

Alternativ können Sie auch mit spielen newfs_msdos.

Danke für die sehr ausführliche Antwort. Ich habe es schließlich geschafft, mein Problem mit iParition zu beheben. Das Lesen Ihrer Methode scheint jedoch genau die Methode zu sein, nach der ich gesucht habe, wenn iParition nicht existiert hätte. Nochmals vielen Dank, ich markiere dies als die richtige Antwort.
Diese Methode hat bei mir unter 10.6 hervorragend funktioniert, nachdem GParted das ESP geklont hatte, um 2048 auf einer SSD zu blockieren. Beim Booten einer Installationsdiskette und nach dem oben Gesagten ddspeicherte ich das geklonte ESP in einer Datei, bevor ich es löschte, neu erstellte und zurückschrieb. Danke!
Hat auf meinem MBP mit SSD-Hybridlaufwerk hervorragend funktioniert. EFI wurde durch eine Grub-Installation überschrieben und diese Methode funktionierte perfekt, um es zurückzubringen.
Danke für das Teilen. Um Tipparbeit zu sparen, können Sie anstelle der GUID tatsächlich EFI als Partitionstyp angeben: sudo gpt add -b 40 -i 1 -s 409600 -t EFI disk0
Was genau haben Sie mit iPartition @Rich gemacht?
Ich habe diese Antwort als Grundlage verwendet, um eine OSX-Wiederherstellungspartition auf z. B. einen USB-Stick zu kopieren, indem ich -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECACFlags für gpt add.
Holen Sie sich die -sGröße mit gpt showauf dem Original, und die UID ist für "Apple Boot".
Wie kann ich die Indizes der Partitionen ändern, damit der ESP auf Index 1 stehen kann?
Hatte kein gültiges ESP zum Klonen, also habe ich newfs_msdos -F 32 -v EFI /dev/disk0s1. Zeigte dann diskutil listsowohl seinen Typ als auch seinen Namen als "EFI" an. Konnte bless --infojedoch nicht von der Partition lesen. Also lief ich bless --folder /Volumes/Macintosh\ HD/System/Library/CoreServices --setBoot, es gelang, jetzt --infofunktioniert es und alles ist anscheinend wieder normal.
Partitionsindizes können mit gdisk geändert werden (x für "Experten"-Modus, t für Transpose). Es tauscht das eine gegen das andere aus, so dass Sie es möglicherweise mehr als einmal tun müssen. Siehe Handbuch für Details: linux.die.net/man/8/gdisk
Auf dem MacBook Pro 2011 kann ich nur von einer CD/DVD booten, sonst kann ich disk0 nicht aushängen und keine Änderungen daran vornehmen. Wie kann ich es erstellen und ausführen?
Wo sind Sie auf die Zahl „müssen genau 200 MB sein“ gekommen? Die technischen Hinweise von Apple geben keine bestimmte Nummer an, und die UEFI-Spezifikation scheint UEFI-Systempartitionen / ESP / 0xEFnach einiger Suche überhaupt nicht zu erwähnen? Mein MacBook Pro (Boot Camp, wohlgemerkt) hat eine ESP von 314,6 MB – „genau 614400 512-Byte-Einheiten“. (Ich möchte es sichern, bin mir aber nicht sicher, welche Größe ich verwenden soll.)
Als Hinweis bin ich auf eine Microsoft-Anforderung gestoßen : „Für Laufwerke der Advanced Format Generation One (4-KB-pro-Sektor) beträgt die Mindestgröße dieser Partition 260 MB.“ Insbesondere diskutil info disk0meldet tatsächlich „Geräteblockgröße: 4096 Bytes“.

Versuche dies:

  1. Laufwerk auf Time Machine sichern.
  2. Neustart, Neustart auf der Lion-Installationsdiskette.
  3. Gehen Sie zum Festplattendienstprogramm.
  4. Partition löschen.
  5. HD löschen.
  6. Löschen Sie die Partition erneut und geben Sie ihr diesmal einen Namen.
  7. Klicken Sie auf HD.
  8. Überprüfen Sie HD, um zu bestätigen, dass die EFI-Fehlermeldung nicht mehr angezeigt wird.
  9. Gehen Sie zurück zum Installationsbildschirm.
  10. Wählen Sie „Aus Backup wiederherstellen“.

Eine einfachere Lösung wurde hier gefunden: https://unix.stackexchange.com/a/174522/182014

Eine EFI-Partition kann über GParted Live CD/USB erstellt werden :

  • Erstellen Sie ein 200-MB-Laufwerk (mein gesamter freier Speicherplatz am Anfang):
    • Typ:fat32
    • Etikette:EFI
  • Formatieren Sie es
  • Setze Boot-Flags (Option nur nach der Formatierung verfügbar) auf"boot, esp"

Geben Sie hier die Bildbeschreibung ein

Bereit!

Probieren Sie iPartition 3 oder höher aus. Gehen Sie zum Ansichtsmenü und zeigen Sie Systemgeräte an. Da die 200 MB EFI fehlen, verkleinern Sie die erste Partition auf der Festplatte hoffentlich um 200 MB. Erstellen Sie eine neue Partition, dann gibt es im Festplatteninspektorfenster Registerkarten. Sie können viele verschiedene Arten von Dateisystemen auswählen. Wählen Sie einfach EFI-Systempartition.

Dies hat das Problem für mich behoben.

1) Sichern Sie die Bootcamp-Partition mit Winclone

2) Sichern Sie das Mac OSX-Laufwerk mit Carbon Copy Clone auf ein externes Laufwerk

3) Installieren Sie Mountain Lion auf einem Flash-Laufwerk oder einem externen Laufwerk

4) Kaufen Sie eine Kopie von iPartition, laden Sie sie auf ein Flash-Laufwerk oder ein externes Laufwerk herunter

5) Starten Sie neu, während Sie die Wahltaste gedrückt halten, um das Startmenü zu erhalten

6) Wählen Sie den Flash oder das externe Laufwerk aus, von dem gebootet werden soll

7) iPartition extrahieren und ausführen. Wählen Sie Ansicht und Inspektor aus dem Dropdown-Menü.

8) Wählen Sie Bootcamp-Partition auf der Registerkarte „Partition“ und aktivieren Sie die beiden Kästchen in der Liste (Aktiv und Sichtbar in Windows) und schließen Sie dann das Kästchen.

9) Die Go-Taste sollte leuchten, wenn nicht, dann vergrößern Sie die Bootcamp-Partition ein wenig. Meins ist 2 TB OSX, 500 GB Windows auf einem 2,5 TB Laufwerk.

10) Sobald die Go-Taste gedrückt wird, sollte die Verarbeitung beginnen; obwohl Sie möglicherweise jeden Prozess beenden müssen, der die Ausführung verhindert (Fertig mit Activity Monitor)

11) Wenn Sie fertig sind, fahren Sie das externe Boot-Gerät herunter und entfernen Sie es und schalten Sie den Mac wieder ein. Es sollte behoben sein und normal booten – zumindest meins.

Ich verwende einen iMac 27, 3,2 GHz Intel Core i3 mit 16 GB RAM und einer 2,5 TB Festplatte. Die meisten der aufgeführten Punkte hatte ich bereits vor der Installation von Mountain Lion erledigt, mit Ausnahme einer aktuellen Sicherung des Bootcamp-Laufwerks. Winclone funktionierte, obwohl Bootcamp nicht startete und der Wiederherstellungsprozess einen Fehler beim Schreiben des MBR erzeugte. Ich habe den Fehler einfach ignoriert und mit dem Rest des Prozesses fortgefahren. Anscheinend hat Mountain Lion mit dem PMBR oder dem EFI herumgespielt und sogar rEFIt hat es nicht behoben, aber was auch immer iPartition getan hat; es ist jetzt behoben.

*HAFTUNGSAUSSCHLUSS**

Während dieser Prozess für mich gut funktioniert hat, FUNKTIONIERT ES MÖGLICHERWEISE NICHT FÜR SIE! WIE BEI ​​JEDEM PROZESS, DER DIE PARTITON-TABELLE UND BOOT-DATEN BEARBEITET, BESTEHEN SIE DIE MÖGLICHKEIT, DATEN ZU VERLIEREN. SICHERN SIE IHR LAUFWERK, WENN SIE IHRE DATEN BEHALTEN MÖCHTEN.

Ich empfehle Carbon Copy Clone zum Sichern der OSX-Partition, da es einen bootfähigen Klon erstellen kann, der noch nie fehlgeschlagen ist.

Ich bin sicher, dass andere an anderer Stelle erfolgreich dieses Problem gelöst haben, und danke allen, die gepostet haben, was sie getan haben, da es mir geholfen hat, dieses Problem auf meinem iMac zu lösen.

Danke an alle und ich hoffe, das hilft jemand anderem. (Gepostet im Apple-Forum) https://discussions.apple.com/message/19220149#19220149