Fehlende Mac-Partitionen - nicht erkanntes Dateisystem

1

Anscheinend habe ich Windows 7 über das Bootcamp installiert und eine neue Partition in Windows erstellt (was sich wahrscheinlich auf die Partitionstabelle auswirkt).

Nach dem Neustart kann ich Macintosh HD nicht auf der Startdiskette sehen (es wird nur Windows angezeigt, welches Bluescreens beim Booten angezeigt wird)

Also habe ich cmd+ ausgeführt R, um in den Internet-Wiederherstellungsmodus zu booten, das Festplatten-Dienstprogramm ausgewählt und versucht, die Festplatte zu reparieren. Es wurde jedoch "Unbekanntes Dateisystem" angezeigt (ich habe vergessen, einen Screenshot zu machen), aber es sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

In meinem Fall wird Macintosh HD zu disk0s2. Ich habe versucht, die Festplatte zu reparieren, bin jedoch gescheitert.

Versuchen Sie, diskutil cs listvom Terminal aus zu starten, und zeigen Sie keine Festplatte an.

Laufen gpt -r show /dev/disk0ergibt folgendes:

-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

Gibt es eine Möglichkeit, meine Mac-Partition wiederherzustellen, damit sie gebootet werden kann?

Ich denke an die Wiederherstellung über das Internet (Neuinstallation), aber meine Daten scheinen nach der Neuinstallation verloren zu sein.

JoshuaTang
quelle
Ihr Problem begann bei "Neue Partition in Windows erstellen". Sie sollten niemals zulassen, dass Windows die Partitionierung berührt, da es einfach nicht versteht, wie Boot Camp es täuscht, dass es sich um eine MBR-Partition handelt.
Tetsujin
@klanomath: Hier ist die in MBR konvertierte Partition pic imgur.com/afYeBTw. Kann ich sie zurückbekommen? :(
JoshuaTang
@klanomath: Zuerst habe ich 250 GB für Macintosh und 250 GB von Windows getrennt (die gesamte Festplatte hat 500 GB), dann habe ich 250 GB in Windows durch 2 getrennt. Jetzt sollten Mac (250 GB) und Windows (jeweils 125 GB) sein. Ich interessiere mich nicht für Windows, möchte nur meinen Mac wiederherstellen (meine Daten sind drin) :(
JoshuaTang
@klanomath: Nein, ich denke über eine Neuinstallation nach einer Internetwiederherstellung nach, aber wenn ich sie verwende, gehen meine Daten verloren, oder?
JoshuaTang
@ JoshuaTang Ja, Ihre Daten gehen verloren. Sie können jedoch glücklich sein, wenn Sie zuvor nicht die falsche Partition formatiert haben. Ich schreibe in den nächsten 30 Minuten eine Antwort. Zuerst muss ich etwas testen.
Klanomath

Antworten:

2

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 sudoeinige Befehle wie gpt ...oder newfs_hfs ...!

Entfernen Sie den MBR, und ändern Sie die GUID-Partitionstabelle

  • Geben Sie diskutil listund 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 exitund 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:

    cs

    Die ersten 3 Sektoren einer JHFS + -Partition sehen folgendermaßen aus:

    jhfs +

    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!

    rhd

    Je nach Partitionstyp können zwei unterschiedliche Ergebnisse erzielt werden:

    1. 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).

    2. 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 listund 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
klanomath
quelle
@JoshuaTang Hast du schon nach dem Beginn des Recovery HD gesucht?
klanomath
hier postimg.org/image/n0htko5wl
JoshuaTang
Gefunden postimg.org/image/gi9ebjsz1
JoshuaTang
Ich kann gpt nicht hinzufügen bei Index 3 (TempSystem im Inneren) :( imgur.com/EXM86Hc
JoshuaTang
Ja, ich habe den Internet-Wiederherstellungsmodus gestartet. Muss ich die Reihenfolge ändern? Ich meine, gpt add -b 409640 -i 2 blablabla zuerst dann gpt add -b 487222344 -i 3 blablabla?
JoshuaTang