Beschädigte macOS-Partition nach GParted

Ich habe ein Tutorial befolgt , um Dual-Boot mit macOS Sierra 10.12 und Kali-Linux 2.0 zu erstellen.

Ich habe ein bootfähiges USB-Laufwerk erstellt und in einer Kali-Linux-Live-Sitzung gebootet, um GParted zu verwenden und die Größe meiner macOS-Partition zu ändern.

Ich habe die macOS-Partition ausgewählt und ihre Größe von 239 GB auf 200 GB geändert. Ich habe 2 Partitionen, wobei die 39-GB-Partition als "nicht zugewiesen" formatiert ist.

Aber jetzt, wenn ich versuche, in macOS zu booten, erhalte ich das Apple-Logo, dann ein weißes Kreuz und kann nicht in macOS booten.

Ich habe versucht, in Recovery HD zu booten, indem ich gedrückt gehalten habe cmdR, dann habe ich versucht, SOS zu verwenden, aber es heißt, dass ich eine Assistenten-Wiederherstellungsdiskette benötige. Wir können eine USB-Wiederherstellungsdiskette erstellen, indem wir ein USB-Laufwerk an unser MacBook anschließen und dann mit dem Assistenten ein bootfähiges USB-Laufwerk erstellen, das Festplatten reparieren kann, aber wie gesagt, mein MacBook kann unter macOS nicht booten, also kann ich es nicht erstellen it... Gibt es eine Möglichkeit, die ISO-Datei des Wiederherstellungs-USB-Laufwerks direkt herunterzuladen, um daraus ein eigenes Wiederherstellungs-USB-Laufwerk zu erstellen?

Ich habe irgendwo gelesen, dass ich die korrekten Startcodes neu schreiben muss und meine Daten nicht verloren gehen. Ist das wahr?

Was denkst du, kann ich tun?

Bearbeiten:
Hier ist die Ausgabe von diskutil/gpt:

Terminal

(Entschuldigung für die niedrige Komprimierungsrate, ich habe keine 10 Reputation, um mehr als 2 Bilder zu posten)

Ich habe das Ergebnis von Diskutil nicht erwartet. So viel Partition ist normal?

Edit2 :

Hier ist der andere Bildschirm, den ich nach Schreibbefehlen hatte:

Terminal 2

Bearbeiten 3

Letzte Überprüfung

Hast du rEFInd installiert?

Antworten (1)

GParted hat nicht wirklich nicht zugeordneten Speicherplatz erstellt. Stattdessen wurde der MBR falsch. Das CoreStorage LVG und alle nachfolgenden Container wurden ebenfalls beschädigt, da die Größe des gesamten Stacks nicht wie erforderlich geändert wurde. Normalerweise – in macOS – wird die Größe des gesamten Stapels mit dem Befehl geändert diskutil cs resizeStack .... Soweit ich das aus der Ferne sagen kann, wurde die Endgrenze der zweiten Partition einfach auf niedrigere Blocknummern verschoben, was normalerweise mit normalen HFS + -Volumes in GParted funktioniert, aber in diesem Fall nicht mit einem CoreStorage-Stack. Glücklicherweise wurden einige unsichtbare Datenstrukturen des CS-Stacks nicht überschrieben.

Außerdem wurde die Wiederherstellungspartition nicht richtig verschoben. Aber das ist ein anderes Problem.

Anstelle des MBR sollten Sie einen pMBR haben. Nachdem Sie den falschen MBR entfernt haben, müssen Sie die GUID-Partitionstabelle zerstören und neu erstellen:

  • Booten Sie in den Internet-Wiederherstellungsmodus
  • Öffnen Sie Terminal in der Menüleiste Dienstprogramme -> Terminal
  • Verschaffen Sie sich einen Überblick (besonders der gpt- Befehl ist wichtig!):

    diskutil list
    gpt -r show disk0
    
  • disk0 unmounten:

    diskutil umountDisk /dev/disk0
    
  • Löschen Sie den MBR:

    dd if=/dev/zero of=/dev/disk0 bs=512 count=1
    
  • Zerstören Sie die GUID-Partitionstabelle und erstellen Sie eine neue (dadurch wird auch ein neuer pMBR erstellt):

    gpt destroy disk0
    gpt create -f disk0
    
  • Erstellen Sie alle vorherigen GUID-Partitionen neu:

    gpt add -i 1 -b 40 -s 409600 -t C12A7328-F81F-11D2-BA4B-00A0C93EC93B disk0
    gpt add -i 3 -b 488965176 -s 1269536 -t 426F6F74-0000-11AA-AA11-00306543ECAC disk0
    gpt add -i 2 -b 409640 -s 409602008 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
    

    Wenn Sie nach einem der Schritte einen Ressourcenauslastungsfehler erhalten, unmounten Sie disk0 einfach wieder mit

    diskutil umountDisk /dev/disk0
    

Überprüfen Sie die Festplatte diskutil verifyDisk disk0anschließend mit.

Geben Sie ein diskutil cs listund überprüfen Sie, ob alle vier CoreStorage-Container angezeigt werden: eine Logical Volume Group, ein Physical Volume und eine Logical Volume Family und ein Logical Volume.

Mit der UUID des Logical Volume mounten Sie das LV:

Beispiel:

    +-> Logical Volume 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15
        ---------------------------------------------------
        Disk:                  disk17
        Status:                Online

Dann benutze:

diskutil mount 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15

Nachdem Sie die Datenträgerkennung des bereitgestellten LV erhalten haben, diskutil listüberprüfen Sie das Volume:

diskutil verifyVolume disk17 # probably it's disk17, disk16 or disk18

Unten nehme ich an, dass die Festplattenkennung disk17 ist


Wenn die Logical Volume Family und das Logical Volume nicht angezeigt werden, versuchen Sie Folgendes:

  • Booten Sie in den Internet-Wiederherstellungsmodus
  • Öffnen Sie Terminal in der Menüleiste Dienstprogramme -> Terminal
  • Verschaffen Sie sich einen Überblick (besonders der gpt- Befehl ist wichtig!):

    diskutil list
    gpt -r show disk0
    
  • disk0 unmounten:

    diskutil umountDisk /dev/disk0
    
  • Entfernen Sie den aktuellen Partitionseintrag für die zweite Partition:

    gpt remove -i 2 disk0
    
  • Fügen Sie einen neuen "erweiterten" zweiten Partitionseintrag hinzu:

    gpt add -i 2 -b 409640 -s 488555536 -t 53746F72-6167-11AA-AA11-00306543ECAC disk0
    
  • Wiederholen Sie dann alle Überprüfungsschritte:

    Überprüfen Sie die Festplatte diskutil verifyDisk disk0anschließend mit.

    Geben Sie ein diskutil cs listund überprüfen Sie, ob alle vier CoreStorage-Container angezeigt werden: eine Logical Volume Group, ein Physical Volume und eine Logical Volume Family und ein Logical Volume.

    Mit der UUID des Logical Volume mounten Sie das LV:

    Beispiel:

        +-> Logical Volume 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15
            ---------------------------------------------------
            Disk:                  disk17
            Status:                Online
    

    Dann benutze:

    diskutil mount 9A7B21AA-F9FE-4E65-8C7E-ED2A73744C15
    

    Nachdem Sie die Datenträgerkennung des bereitgestellten LV erhalten haben, diskutil listüberprüfen Sie das Volume:

    diskutil verifyVolume disk17 # probably it's disk16, disk17 or disk18
    

    Wenn Sie Fehler erhalten, sichern Sie die Daten oder die gesamte Partition auf einem externen Volume und reparieren Sie das Volume dann mit diskutil repairVolume disk17.

    Eine Möglichkeit die Daten zu sichern ist dd. Schließen Sie ein HFS+-formatiertes Laufwerk mit mindestens 250 GB freiem Speicherplatz an. Holen Sie sich den Pfad zum externen Volume mit ls /Volumes. Unmounten Sie dann disk17 und disk0 mit diskutil umountDisk disk17und diskutil umountDisk disk0.

    Klonen Sie dann die Partition in eine Datei:

    dd if=/dev/disk0s2 of=/Volumes/ExternalDriveName/disk0s2.rawdevice bs=4m
    

    Wenn der Volume-Name Leerzeichen enthält, maskieren Sie die Leerzeichen mit umgekehrten Schrägstrichen: ...of=/Volumes/ExternalDriveName\ With\ Spaces/disk0s2.rawdevice....

    Sie können auch verwenden asr, um die Partition auf einer anderen Festplatte wiederherzustellen (als temporäre "Sicherung"). Überprüfen Sie man asr.

Wenn ich diskutil verifyDisk verwendet habe, wurde ich vor Fehlern gewarnt, die den Start verhindern könnten. Ich habe versucht zu booten und es funktioniert nicht (aber ich habe jetzt einen mBPR). Aber die diskutil cs-Liste gibt mir eine logische Volume-Gruppe und darunter nur ein physisches Volume. Ich habe die vier Bände nicht
Habe ich meine Daten verloren?
Ok, ich bekomme alle 4 Bände zurück. Dann habe ich den Mount gemacht, alles hat super funktioniert, aber das letzte Diskutil-VerifyVolume hat mir Fehler gegeben, ich aktualisiere meinen ersten Beitrag
Ich habe meinen ersten Beitrag editiert
Wie kann ich es sichern? Wenn ich es mit diesem Befehl repariere, verliere ich meine Daten ?
Ja, habe ich, aber wenn ich einen beschädigten Teil klone, werde ich beschädigte Daten sichern, nein?
Ich kann meine Kommentare nicht löschen... Wie kann ich sie klonen?
Vielen Dank für Ihre Geduld und all Ihre Antworten, ich schätze all Ihre Arbeit sehr.
Ich verstehe nicht warum, weil ich den Fehler beim Verifizieren des Volumes bekommen habe, aber ich konnte unter Mac OS booten !!! VIELEN DANK !
@MaximeOzenne Es wird booten - das ist nicht das Problem. Einige interne Daten der Volume-Struktur sind jedoch beschädigt oder falsch. Dies sollte repariert werden, bevor das Volume verwendet wird!
Ich konnte das Festplatten-Dienstprogramm verwenden, ich habe den SOS-Assistenten verwendet und er sagte, dass MACintosh HD beschädigt sei. Ich habe bei der Wiederherstellung neu gestartet und den SOS-Assistenten immer wieder verwendet, bis er mir sagte, dass die Festplatte in Ordnung ist. Schließlich führe ich ein Terminal aus und verwende die diskutil cs-Liste, um die Festplattenkennung von LV abzurufen (es war disk1). Dann führe ich diskutil verifyVolume disk1 aus. Endlich war ich froh zu sehen, dass mein LV repariert ist! Mein Mac scheint jetzt großartig zu funktionieren! Ein großes Dankeschön für all Ihre Hilfe, Sie haben mich gerettet !!
Es verblüfft mich immer, wenn eine lange Antwort wie diese eine und nur eine Person hat, die bereit ist, +1 zu geben - aber das OP, das die beantwortete Überprüfung ankreuzt, ist am großartigsten - das ist so viel besser für die Website im Allgemeinen.
@bmike Danke! ;-) Ich denke, das ist ein allgemeines Problem hier. Es ist die Schwelle zwischen „persönlicher“ Fehlerbehebung und einer mehr oder weniger allgemeinen Antwort auf eine mehr oder weniger allgemeine Frage. Ich denke, zumindest David Anderson hat das gleiche Problem mit all seinen etwas anderen Fragen und Antworten zum Boot Camp. Ich denke immer noch darüber nach, eine Frage in Meta zu posten, die sich damit befasst. Ein weiteres gutes Beispiel ist diese Frage: BootCamp Partition Error!! Hilfe. EFI-Partition gelöscht . Ich konnte es nur über TeamViewer lösen.