Die Datenträgerverwaltung von Windows hat die GUID-Partitionstabelle mit einer MBR-Partitionstabelle überschrieben. Dies wirkt sich normalerweise nur auf die Partitionstabelle aus, nicht jedoch auf den Inhalt Ihrer Festplatte (obwohl er anscheinend weg ist)! Um eine korrekte GUID-Partitionstabelle wiederherzustellen, muss der MBR gelöscht und eine korrekte GUID-Partitionstabelle wiederhergestellt werden.
Das besondere Hindernis dabei ist: Das OP verfügt weder über ein USB-Stick noch über einen zweiten Mac oder ein externes Laufwerk.
Die Antwort unten ist NICHT für Benutzer gedacht , mit einem USB - Stick oder einer externen Festplatte! Wenn Sie eines dieser Geräte haben, gibt es viel einfachere Lösungen.
Vorbereitung:
alt cmd RStarten Sie den Internet-Wiederherstellungsmodus neu, indem Sie beim Start auf drücken .
Voraussetzung ist das aktuell installierte Firmware-Update, entweder Ethernet oder WLAN (WPA / WPA2) und ein Router mit aktiviertem DHCP.
Bei einer 50-Mbit / s-Leitung dauert es ungefähr 4 Minuten (mit einem kleinen animierten Globus), um ein Wiederherstellungs-Netboot-Image zu starten, das normalerweise von einem Apple / Akamai-Server geladen wird.
Ich empfehle Ethernet, weil es zuverlässiger ist. Wenn Sie auf WIFI beschränkt sind und der Startvorgang fehlschlägt, starten Sie einfach Ihren Mac neu, bis der Startvorgang erfolgreich ist.
Alternativ können Sie von einem bootfähigen Installations-USB-Stick (vorzugsweise Yosemite oder El Capitan) oder einem USB-Stick mit einem vollständigen System (vorzugsweise Yosemite oder El Capitan) starten. Wenn Sie zu einem vollständigen System booten und sich als Administrator anmelden, müssen Sie sudo
einige Befehle wie gpt ...
oder newfs_hfs ...
!
Entfernen Sie den MBR, und ändern Sie die GUID-Partitionstabelle
Geben Sie diskutil list
und gpt -r show /dev/diskX
(mit diskX: die Festplattenkennung Ihrer internen Festplatte (wahrscheinlich disk0) ein, um sich einen Überblick zu verschaffen. Bei den folgenden Befehlen gehe ich davon aus, dass die Festplattenkennung disk0 ist.
Sie sollten die folgende Ausgabe erhalten (die Typen können in Ihrer Diskussionsauflistung unterschiedlich sein:
-bash-3.2# diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *500.0 GB disk0
1: NTFS 253.5 GB disk0s1
2: NTFS 122.4 GB disk0s2
3: NTFS 124.1 GB disk0s3
/dev/disk1...~/dev/disk12 belong to the recovery system
-bash-3.2# gpt -r show /dev/disk0
start size index contents
0 1 MBR
1 488493055 1 MBR part 66
488493056 248700928 2 MBR part 66
737193984 239577136 3 MBR part 66
976771120 2048
Ersetzen Sie nun den MBR durch eine GUID-Partitionstabelle:
diskutil umountDisk /dev/disk0
dd if=/dev/random of=/dev/disk0 count=1 bs=512
gpt create /dev/disk0
Fügen Sie die EFI-Partition in die Partitionstabelle ein:
gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B /dev/disk0
Jetzt können Sie entweder den alten Inhalt der GUID-Partitionstabelle erraten oder OS X auf einer neuen Partition installieren - ohne Ihre alten OS X-Partitionen zu überschreiben - und versuchen, die Größe der alten Partitionen mit geeigneten Tools zu ermitteln (z. B. Test Disk / wxHexEditor).
Ein neues OS X installieren
Dadurch wird der Inhalt der Windows-Partition (en) zerstört.
Fügen Sie im (alten) OS X-Teil Ihrer Festplatte eine neue Partition hinzu, um sie zu schützen.
gpt add -b 409640 -i 2 -s 488083416 -t FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF /dev/disk0
Das könnte überflüssig sein.
Fügen Sie im (alten) Windows-Teil Ihrer Festplatte neue Partitionen hinzu. Die erste ist eine neue Systempartition, die zweite eine Wiederherstellungspartition:
gpt add -b 800000000 -i 4 -s 100000000 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0
gpt add -b 900000000 -i 5 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
Nun müssen Sie die neuen Partitionen formatieren:
diskutil list
newfs_hfs -v "TempSystem" -J /dev/disk0s4 #use the proper partition found in diskutil list. It should have a size of ~50 GB
newfs_hfs -v "Recovery HD" -J /dev/disk0s5
diskutil mount /dev/disk0s4
- Verlassen Sie das Terminal, indem Sie es betreten
exit
und verlassen.
- Öffnen Sie Restore OS X und installieren Sie OS X auf der Partition TempSystem
- Konfigurieren Sie das neue System und aktivieren Sie den Internetzugang. Initialisieren Sie keine "unbekannten" Volumes, wenn Sie dazu aufgefordert werden.
- Aktivieren Sie den Root-Benutzer
- Melden Sie sich als Administrator ab und als Root an
- Laden Sie wxHexEditor herunter und installieren Sie es
Ermitteln Sie mit wxHexEditor den Startblock und den Typ Ihres alten OS X-Volumes und den Startblock Ihres alten Recovery HD:
Der Ansatz ist ähnlich wie in meiner Antwort hier: HFS + ungültige Anzahl von Zuordnungsblöcken
Da der Startblock einer Hauptpartition und die Größe einer Wiederherstellungspartition feste Größen / Grenzen haben, können Sie normalerweise die richtigen GUID-Partitionseinträge Ihrer alten Partition (en) berechnen.
Tipp: Verwenden Sie während der Arbeit mit wxHexEditor nicht das Kopieren und Einfügen. Gib alles manuell ein! Sie könnten versehentlich direkt auf Ihre Festplatte schreiben.
JHFS + oder CoreStorage Partition?
Zuerst müssen Sie feststellen, ob Sie eine JHFS + - oder CoreStorage-Partition mit Indexnummer 2 hatten.
Öffnen Sie den Rechner. Öffnen Sie den wxHexEditor. Stellen Sie sicher, dass Sie im schreibgeschützten Modus arbeiten ("Optionen" -> "Dateimodus" -> "Schreibgeschützt"). Gehen Sie in der Menüleiste auf "Geräte" -> "Laufwerk öffnen" -> wählen Sie die entsprechende Laufwerksnummer. Wahrscheinlich ist es disk0. Die Festplatte sollte weitere Partitionen haben (disk0s1 - disk0s5). Bitte versuchen Sie, das wxHexEditor-Fenster wie in den folgenden Beispielen mit geraden roten Linien anzuordnen.
Dann drücke den "Gehe zu Versatz" -Button (markiert mit dem grünen Kreis) und gib 409640 genau wie im Bild unten ein. Manchmal muss man das zweimal machen, um zum richtigen Sektor zu springen. Überprüfen Sie den korrekten Sektor erneut, indem Sie den Versatz (rot markiert) in den Rechner eingeben und durch 512 teilen.
Die ersten drei Sektoren einer CoreStorage-Partition sehen folgendermaßen aus:
Die ersten 3 Sektoren einer JHFS + -Partition sehen folgendermaßen aus:
Wenn Sie ein grundlegend anderes Bild erhalten, stoppen Sie hier.
Wo beginnt die Recovery HD-Partition?
Das ist wahrscheinlich der schwierigste Teil, weil Sie eine Zeichenfolge finden müssen, die nicht sehr spezifisch ist. Springe fast zum Ende deiner alten zweiten Partition (in deinem Fall ~ 1000 MB / 1953125 Sektoren weniger als 488493056 = 486539931)
Dann geben Sie "HFSJ" wie im Bild unten ein, suchen diesen String zweimal und machen ihn lesbar! handschriftliche Notizen der verschiedenen Offsets. Um Ihr altes OS X wiederherzustellen, müssen Sie später im Internet-Wiederherstellungsmodus booten, und alle Bildschirmergebnisse im aktuellen temporären OS X gehen verloren!
Der Grund für die Suche nach der Zeichenfolge "HFSJ" ist, dass alle HFSJ + -Volumes diese Zeichenfolge im dritten Sektor ihrer Partition enthalten. Die Zeichenfolge kann auch später und am Ende auftreten!
Je nach Partitionstyp können zwei unterschiedliche Ergebnisse erzielt werden:
Berechnen Sie die Sektornummer des ersten Befundes. In meinem Beispiel (siehe Bild oben) ist es 68069452800/512 = 132948150. Setzen Sie die Suche fort und berechnen Sie den Sektor des zweiten Befundes. In meinem Fall war es 68069454848/512 = 132948154 (kein Bild). Die Differenz zwischen den beiden Befunden beträgt 4 Blöcke (= 2 KB).
Dies ist typisch für die Grenze zwischen einer JHFS + -Partition und der Recovery HD. Die Recovery HD startet dann im Sektor des zweiten Befundes - 2 (in meinem Beispiel 132948154-2 = 132948152).
Berechnen Sie die Sektornummer des ersten Befundes. In meinem Beispiel war es 67733904384/512 = 132292782 (kein Bild). Setzen Sie die Suche fort und berechnen Sie den Sektor des zweiten Befundes. In meinem Fall war es 68069454848/512 = 132948154 (kein Bild). Die Differenz zwischen den beiden Befunden beträgt 655372 (~ 336 MB)
Dies ist typisch für die Grenze zwischen einer CoreStorage-Partition und der Recovery HD. Die Recovery HD startet dann im Sektor des zweiten Befundes - 2 (in meinem Beispiel 132948154-2 = 132948152).
Mit diesen Ergebnissen sollten Sie in der Lage sein, Ihr GPT ordnungsgemäß wiederherzustellen. Beenden Sie wxHexEditor. Wenn Sie aufgefordert werden, Änderungen zu speichern, speichern Sie sie nicht!
- Booten Sie zurück in den Internet-Wiederherstellungsmodus und öffnen Sie das Terminal
- Geben Sie
diskutil list
und eingpt -r show /dev/disk0
Entfernen Sie die zweite Partition (die schützende Partition des Typs FFFFFFFF-FFFF-FFFF-FFFFFFFFFFFF):
diskutil umountDisk /dev/disk0
gpt remove -i 2 /dev/disk0
Da EFI und Recovery HD normalerweise feste Größen haben, können Sie den Start- und Endblock Ihres Hauptvolumens berechnen.
Berechnen Sie die Größe des Hauptvolumens: Der Startblock ist 409640. Der Endblock wurde im Abschnitt "Wo startet die Recovery HD-Partition?" Gefunden: 1 weniger als der Startblock der Recovery HD. Die Größe ist dann StartBlockOfRecoveryHD-409640.
Wenn Sie früher ein klassisches JHFS + gefunden haben, sollte der folgende Befehl Partition 2 reparieren:
diskutil umountDisk /dev/disk0
gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 48465300-0000-11AA-AA11-00306543ECAC disk0
Wenn Sie zuvor eine CoreStorage-Partition gefunden haben, sollte Partition 2 mit dem folgenden Befehl repariert werden:
diskutil umountDisk /dev/disk0
gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
Um die Recovery HD neu zu erstellen, geben Sie Folgendes ein:
diskutil umountDisk /dev/disk0
gpt add -b StartBlockOfRecoveryHD -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
Jetzt können Sie versuchen, Ihr altes OS X-Volume bereitzustellen und zu überprüfen:
diskutil mount /dev/disk0s2
diskutil verifyVolume /dev/disk0s2
Wenn beim Aktivieren oder Überprüfen des Volumes ein Fehler auftritt, sind die Grenzen möglicherweise falsch. Hören Sie hier auf und befragen Sie mich.
- Wenn die Überprüfung erfolgreich war, können Sie entweder von Ihrem alten OS X-Volume booten und prüfen, ob es funktioniert, und TempSystem und das neue Recovery HD später löschen oder beide sofort löschen. Der Nachteil des Bootens von Ihrem alten OS X-Volume ist, dass Sie erneut in den Internet-Wiederherstellungsmodus booten müssen, um TempSystem und das neue Recovery HD zu löschen .
Um beide überflüssigen Partitionen zu löschen, die im Internet-Wiederherstellungsmodus gestartet wurden, geben Sie Folgendes ein:
diskutil list
gpt -r show /dev/disk0
diskutil umountDisk /dev/disk0
gpt remove -i 4 /dev/disk0 # remove the partition starting at block 800000000
diskutil umountDisk /dev/disk0 # remove the partition starting at block 900000000
gpt remove -i 5 /dev/disk0
- Abhängig vom Partitionstyp (HFSJ + oder CoreStorage) können Sie Ihr wiederhergestelltes OS X-Volume entweder verwenden
diskutil resizeVolume ...
oder diskutil cs resizeStack ...
erweitern.
Schätzen (Erraten) der richtigen GUID-Partitionstabelleneinträge
Das Erraten der Partition funktioniert häufig, da eine OS X- Standardinstallation mit einem sichtbaren Volume sehr charakteristische Startblöcke und Größen aller Partitionen aufweist:
Eine klassische Partitionszuordnung einer Yosemite-Installation ohne Boot Camp-Partition würde auf Ihrem Mac wahrscheinlich so aussehen:
sudo gpt -r show 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 975093952 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
975503592 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
976773128 7
976773135 32 Sec GPT table
976773167 1 Sec GPT header
Alle Startblöcke und Partitionsgrößen sind auf 4096-Byte-Blöcke ausgerichtet - sie sind alle durch 8 teilbar (z. B. 975093952: 8 = 121886744)!
Nach der Installation von Windows mit Boot Camp Assistant wird die OS X-Hauptpartition verkleinert und die Recovery HD verschoben:
sudo gpt -r show 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 486813880 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
487223520 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
488493056 488280072 4 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
976773128 7
976773135 32 Sec GPT table
976773167 1 Sec GPT header
Die vierte Partition ist die NTFS-Partition. Bei einigen Windows-Installationen wird eine zweite EFI-Partition hinzugefügt:
488493056 488280072 4 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
->
488493056 204800 4 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
488697856 488075272 5 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
Nach dem Partitionieren der Windows-Partition aus Windows heraus wurde die Partitionszuordnung überschrieben und durch eine MBR-Partitionszuordnung ersetzt:
gpt -r show /dev/disk0
start size index contents
0 1 MBR
1 488493055 1 MBR part 66
488493056 248700928 2 MBR part 66
737193984 239577136 3 MBR part 66
976771120 2048
Nun kann man davon ausgehen, dass die ersten 488493056-Blöcke (Block 0 - Block 488493055) unberührt sind (mit Ausnahme des MBT natürlich) und immer noch den früheren OS X-Teil darstellen. Da Sie den MBR bereits durch eine GUID-Partitionstabelle ersetzt und die EFI-Partition in einem vorherigen Schritt wiederhergestellt haben, müssen Sie nur die OS X-Hauptpartition und die Recovery HD wiederherstellen.
Hier ist die Annahme: Der letzte Block der ersten MBR-Partition ist der letzte Block der Recovery HD. Durch Rückwärtszählen können Sie jetzt die Recovery HD und das alte OS X-Volume wiederherstellen:
Feste Größe der Wiederherstellungs-HD: 1269536
Startblock der zweiten Partition: 488493056 - 1269536 = 487223520 (Startblock der Wiederherstellungspartition)
Der feste letzte Block der EFI-Partition und der Startblock der Wiederherstellungspartition bestimmen den Startblock und die Größe des OS X-Volumes:
Größe: 487223520 - 409640 = 486813880
Fester Startblock: 409640
Leiten Sie nun die richtigen Befehle zum Wiederherstellen der GUID-Partitionstabelle ab:
gpt add -b 487223520 -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0 # add the recovery partition
gpt add -b 409640 -i 2 -s 486813880 -t 48465300-0000-11AA-AA11-00306543ECAC disk0 # add the main OS X partition
Überprüfen Sie das Hauptvolumen mit:
diskutil verifyVolume /dev/disk0s2
Dieser Ansatz schlägt möglicherweise fehl, weil manchmal nicht zugeordneter Speicherplatz (normalerweise 2048, 102400 oder 204800 Blöcke) durch Festplattenpartitionierungstools hinzugefügt wird. Der nicht zugewiesene Speicherplatz wird möglicherweise am Ende einer MBR-Partition hinzugefügt
Nach dem Zugriff auf den Remote-Mac und der Überprüfung der Festplatte scheint die letzte wahrscheinliche Lösung - nach dem wxHexEditor-Teil der Antwort - zu sein:
gpt add -b 487222344 -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
gpt add -b 409640 -i 2 -s 486812704 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0
Da einige gemountete Volumes auf disk0 vorhanden sind und die Schutzpartition (i = 2) entfernt werden muss, bevor die ursprünglichen alten Partitionen wiederhergestellt werden können, sieht die vollständige Befehlswarteschlange folgendermaßen aus:
diskutil umountDisk /dev/disk0
gpt remove -i 2 /dev/disk0
diskutil umountDisk /dev/disk0
gpt add -b 487222344 -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC /dev/disk0
diskutil umountDisk /dev/disk0
gpt add -b 409640 -i 2 -s 486812704 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk0