Okay, vor ein paar Tagen wollte ich Ubuntu GNOME über normales Ubuntu installieren und es gab mir die Möglichkeit, meine Ubuntu-Installation automatisch zu überschreiben (die ich auf einer separaten Partition von meinem OS X Yosemite hatte). Nachdem ich GNOME auf diese Weise installiert hatte, schien das Installationsprogramm auch meine OS X-Partition zu entfernen.
Seitdem habe ich verschiedene Dinge versucht, um meine Mac-Partition wiederherzustellen, ich habe TestDisk verwendet, um die Sektoren zu finden, und gdisk, um die Partitionstabelle (und Partitionen) neu zu erstellen. Das Problem ist, dass ich diese neuen Partitionen nicht mounten kann. Ich habe versucht, die Partition mit fsck.hfsplus zu reparieren, aber es gibt mir den folgenden Fehler (von GNOME-Test-USB gebootet):
ubuntu-gnome@ubuntu-gnome:~$ sudo fsck.hfsplus /dev/sda2
** /dev/sda2
** Checking HFS Plus volume.
Invalid number of allocation blocks
(4294967295, 0)
** Volume check failed.
Hier sind meine Testdisk-Ergebnisse:
Hier sind die Partitionen, die ich in gdisk erstellt habe:
Number Start (sector) End (sector) Size Code Name
1 34 409633 200.0 MiB EF00 EFI System Partition
2 411648 1164570455 555.1 GiB AF00 Apple HFS/HFS+
3 1165256704 1166528119 620.8 MiB AF00 Apple HFS/HFS+
4 1166528512 1182543855 7.6 GiB 8200 Linux swap
5 1182543872 1465147391 134.8 GiB 8300 Linux filesystem
Hier sind die verschiedenen Ausgaben nach dem Booten im Internet-Wiederherstellungsmodus:
diskutil list
:
-bash-3.2# diskutil list /dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *750.2 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS 596.0 GB disk0s2
3: Apple_HFS 651.0 MB disk0s3
4: Linux Swap 8.2 GB disk0s4
5: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 144.7 GB disk0s5
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: Apple_partition_scheme *1.2 GB disk1
1: Apple_partition_map 30.7 KB disk1s1
2: Apple_HFS Mac OS X Base System 1.2 GB disk1s2
/dev/disk2-disk12 are part of the recovery system and irrelevant here
diskutil cs list
:
No CoreStorage logical volume groups found
gpt -r -vv show /dev/disk0
:
-bash-3.2# gpt -r -vv show /dev/disk0
gpt show: /dev/disk0: mediasize=750156374016; sectorsize=512; blocks=1465149168
gpt show: /dev/disk0: PMBR at sector 0
gpt show: /dev/disk0: Pri GPT at sector 1
gpt show: /dev/disk0: Sec GPT at sector 1465149167
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
409634 2014
411648 1164158808 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
1164570456 686248
1165256704 1271416 3 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
1166528120 392
1166528512 16015344 4 GPT part - 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
1182543856 16
1182543872 282603520 5 GPT part - 0FC63DAF-8483-4772-8E79-3D69D8477DE4
1465147392 1743
1465149135 32 Sec GPT table
1465149167 1 Sec GPT header
Meiner Meinung nach hat "TestDisk" Ihr GPT abgespritzt.
Bitte vergleichen Sie das TestDisk-Ergebnis mit meinen Festplatten. Die Festplatten in meinem Beispiel sind gleich groß, disk0 enthält eine CoreStorage-Partition und disk2 eine JHFS+-Partition im alten Stil. Ich verwende zwei separate Festplatten, da (zumindest für mich) nicht bekannt ist, welcher Formatierungstyp (CS oder JHFS+) ursprünglich verwendet wurde.
Das PMBR/GPT und die ersten drei Partitionen (EFI/Macintosh HD/Recovery HD) sollten wie folgt aussehen, wenn Sie zuvor eine CoreStorage-Partition hatten:
root# gpt -r -vv show disk0
gpt show: disk0: mediasize=68719476736; sectorsize=512; blocks=134217728
gpt show: disk0: PMBR at sector 0
gpt show: disk0: Pri GPT at sector 1
gpt show: disk0: Sec GPT at sector 134217727
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 132538512 2 GPT part - 53746F72-6167-11AA-AA11-00306543ECAC
132948152 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
oder so, wenn Sie zuvor ein klassisches JHFS+-Volume hatten:
root# gpt -r -vv show disk2
gpt show: disk2: mediasize=68719476736; sectorsize=512; blocks=134217728
gpt show: disk2: PMBR at sector 0
gpt show: disk2: Pri GPT at sector 1
gpt show: disk2: Sec GPT at sector 134217727
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 132538512 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC
132948152 1269536 3 GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
(Bitte beachten Sie, dass die Mediengröße, die Blöcke, der Sektor des sekundären GPT, die Größe des 2. Volumes und der Startblock des 3. Volumes von Ihren abweichen, da ich hier kleinere Beispieldisketten verwende.)
Ihr Problem sollte gelöst werden, indem Sie die GPT noch einmal neu schreiben.
Vorbereitung:
Installieren Sie ein vollständiges Vanilla-System (Mavericks oder Yosemite sollten funktionieren) auf einem USB-Stick (oder einem externen Laufwerk). Ein Wiederherstellungssystem wird nicht funktionieren. Booten Sie vom USB-Stick, laden Sie wxHexEditor herunter und installieren Sie es . Aktivieren Sie den Root-Benutzer und melden Sie sich als Root an.
Hinweis: Verwenden Sie beim Arbeiten mit wxHexEditor kein Kopieren und Einfügen. Alles manuell eingeben! 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 auf Indexnummer 2 hatten.
Öffnen Sie den Rechner. Öffnen Sie wxHexEditor. Stellen Sie sicher, dass Sie im Nur-Lese-Modus arbeiten ("Optionen" -> "Dateimodus" -> "Nur lesen"). Gehen Sie in der Menüleiste zu "Geräte" -> "Festplattengerät öffnen" -> wählen Sie die entsprechende Festplattennummer. Wahrscheinlich ist es disk0. Die Platte sollte weitere Partitionen haben (disk0s1 - disk0s5). Bitte versuchen Sie, das wxHexEditor-Fenster wie in den Beispielen unten mit geraden roten Linien anzuordnen.
Klicken Sie dann auf die Schaltfläche "Go to offset" (mit dem grünen Kreis markiert) und geben Sie 409640 genau wie im Bild unten ein. Manchmal muss man das zweimal machen, um zum richtigen Sektor zu springen. Überprüfen Sie den richtigen Sektor erneut, indem Sie den Offset (rot markiert) in den Rechner eingeben und durch 512 teilen.
Die ersten 3 Sektoren einer CoreStorage-Partition sehen so aus:
Die ersten 3 Sektoren eines JHFS+ sehen so aus:
Wenn Sie ein grundlegend anderes Bild erhalten, hören Sie hier auf.
Wo beginnt die EFI-Partition?
Klicken Sie auf die Schaltfläche "Go to offset" und geben Sie 40 genau wie im Bild unten ein:
Wenn Sie dieselben Einträge wie im Bild oben sehen (XEBSD 4.4...EFI...FAT32) ist dies der Startsektor Ihrer EFI-Partition. Wenn es nur Nullen gibt, könnte dies auch gültig sein.
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 bis zum Ende deiner 2. Partition (in deinem Fall ~400 MB/781250 Sektoren weniger als 1164570456 = 1163789206)
Geben Sie dann "HFSJ" wie im Bild unten ein, suchen Sie zweimal nach dieser Zeichenfolge und notieren Sie sich die verschiedenen Offsets:
Je nach Partitionstyp können Sie zwei wirklich unterschiedliche Ergebnisse erhalten:
Berechnen Sie die Sektornummer des ersten Fundes. In meinem Beispiel (siehe Bild oben) ist es 68069452800/512=132948150. Suchen Sie weiter und berechnen Sie den Sektor des zweiten Fundes. 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 beginnt dann beim Sektor des zweiten Fundes - 2 (in meinem Beispiel 132948154-2=132948152).
Berechnen Sie die Sektornummer des ersten Fundes. In meinem Beispiel war es 67733904384/512=132292782 (kein Bild). Suchen Sie weiter und berechnen Sie den Sektor des zweiten Fundes. 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 beginnt dann beim Sektor des zweiten Fundes - 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! .
Erstellen Sie ein ordnungsgemäßes GPT neu
Hier gehe ich davon aus, dass die Kennung Ihrer Hauptfestplatte disk0 ist. Zuerst müssen Sie Ihre Hauptfestplatte aushängen:
diskutil umountDisk disk0
Überprüfen Sie das Partitionslayout und entfernen Sie dann die ersten drei Partitionen:
gpt -r -vv show /dev/disk0
gpt remove -i 3 disk0
gpt remove -i 2 disk0
gpt remove -i 1 disk0
Da die EFI und die Recovery HD in der Regel feste Größen haben, können wir den Start- und Endblock Ihres Hauptvolumens berechnen.
Zuerst bauen wir das EFI neu auf mit:
gpt add -b 40 -i 1 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
Dann berechnen wir die Größe des Hauptvolumes: Der Startblock ist 409640. Der Endblock wurde im Abschnitt „Wo beginnt die Partition der Recovery HD?“ gefunden: 1 kleiner 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:
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 der folgende Befehl Partition 2 reparieren:
gpt add -b 409640 -i 2 -s StartBlockOfRecoveryHD-409640 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
Geben Sie Folgendes ein, um die Recovery HD neu zu erstellen:
gpt add -b StartBlockOfRecoveryHD -i 3 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
Remount disk0 mit:
diskutil mountDisk disk0
Beenden Sie Terminal, starten Sie das Festplatten-Dienstprogramm und überprüfen Sie Ihr Hauptvolume (wahrscheinlich Macintosh HD) auf Fehler und versuchen Sie, diese gegebenenfalls zu reparieren.
Wenn Sie zuvor eine CoreStorage-Partition gefunden haben, müssen Sie möglicherweise auf Ihrem USB-Stick neu starten, bevor Sie die Volumes mit dem Festplatten-Dienstprogramm reparieren, da das logische CoreStorage-Volume möglicherweise nicht richtig erkannt/gemountet wird. In Ihrem Setup - 1 Hauptfestplatte und der USB-Stick - sollte das logische Volume disk2 sein.
Ich hoffe, das löst Ihre Probleme.
Wenn Sie auf Probleme stoßen (z. B. wenn Sie den richtigen Startsektor Ihrer Recovery HD nicht finden), Zweifel oder Fragen haben, hören Sie sofort auf und kontaktieren Sie mich mit einem Kommentar @klanomath!
Römer
Römer
Römer
Römer
Römer