Auf meiner APFS-Partition kann nicht gebootet werden

Nach einem Neustart kann ich auf einem 2016 Macbook Pro nicht auf meiner mit FileVault verschlüsselten macOS-Partition auf Catalina booten.

Ich kann nur von meinen Bootcamp- und Recovery-Partitionen booten. Es scheint, als ob das Problem dieser StackExchange-Frage sehr ähnlich ist: APFS-Partition nicht zugänglich, Container fehlt

Leider kann ich die Antwort von @david-anderson aufgrund mangelnder technischer Kenntnisse zu diesem Thema nicht an meinen Fall anpassen.

Kann mir bitte jemand helfen?

Hier ist ein Befehl, den ich eingegeben habe, um weitere Informationen zu erhalten:

-bash-3.2# diskutil list disk0
/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         1.0 TB     disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS                         799.1 GB   disk0s2
   3:       Microsoft Basic Data Windows                 200.7 GB   disk0s3
   4:           Windows Recovery                         497.0 MB   disk0s4
-bash-3.2# gpt -r show disk0
      start       size  index  contents
          0          1         PMBR
          1          1         Pri GPT header
          2          4         Pri GPT table
          6      76800      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
      76806  195082746      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
  195159552   48995014      3  GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
  244154566         58         
  244154624     121344      4  GPT part - DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
  244275968        292         
  244276260          4         Sec GPT table
  244276264          1         Sec GPT header
-bash-3.2# diskutil cs list
No CoreStorage logical volume groups found
-bash-3.2# diskutil ap list
No APFS Containers found
-bash-3.2# diskutil list internal
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS                         799.1 GB   disk0s2
   3:       Microsoft Basic Data Windows                 200.7 GB   disk0s3
   4:           Windows Recovery                         497.0 MB   disk0s4
-bash-3.2# diskutil info disk0s2
   Device Identifier:        disk0s2
   Device Node:              /dev/disk0s2
   Whole:                    No
   Part of Whole:            disk0

   Volume Name:              Not applicable (no file system)
   Mounted:                  Not applicable (no file system)
   File System:              None

   Partition Type:           Apple_APFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 PCI-Express
   SMART Status:             Not Supported
   Disk / Partition UUID:    42B60681-B193-40F8-AAD5-B2B2F43BD538

   Disk Size:                799.1 GB (799058927616 Bytes) (exactly 1560661968 512-Byte-Units)
   Device Block Size:        4096 Bytes

   Read-Only Media:          No
   Read-Only Volume:         Not applicable (no file system)

   Device Location:          Internal
   Removable Media:          Fixed

   Solid State:              Yes

Hier sind einige andere Befehle, die ich ausprobiert habe, um die Festplatte zu überprüfen oder zu reparieren, ohne Erfolg:

-bash-3.2# diskutil verifyVolume disk0s2
Started file system verification on disk0s2
Verifying storage system
Storage system check exit code is 8
Error: -69716: Storage system verify or repair failed
Underlying error: 8: Exec format error
-bash-3.2# diskutil repairDisk disk0
Repairing the partition map might erase disk0s1, proceed? (y/N) y
Started partition map repair on disk0
Checking prerequisites
Checking the partition list
Adjusting partition map to fit whole disk as required
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Checking the EFI system partition's folder content
Checking all HFS data partition loader spaces
Checking booter partitions
Reviewing boot support loaders
Checking Core Storage Physical Volume partitions
Updating Windows boot.ini files as required
The partition map appears to be OK
Finished partition map repair on disk0

BEARBEITEN: Hier ist das Ergebnis des Befehls, den @klanomath freundlicherweise gefragt hat:

-bash-3.2# dd if=/dev/disk0 bs=512 count=1 skip=614448 2>/dev/null | vis -wc; echo
3\M-@\M^N\M-P\M-<\0|\M^N\M-@\M^N\M-X\M->\0|\M-?\0\^F\M-9\0\^B\M-|\M-s\M-$Ph\^\\^F\M-K\M-{\M-9\^D\0\M-=\M->\a\M^@~\0\0|\v\^O\M^E\^P\^A\M^C\M-E\^P\M-b\M-q\M-M\^X\M^HV\0U\M-FF\^Q\^E\M-FF\^P\0\M-4A\M-;\M-*U\M-M\^S]r\^O\M^A\M-{U\M-*u\t\M-w\M-A\^A\0t\^C\M-~F\^Pf`\M^@~\^P\0t&fh\0\0\0\0f\M^?v\bh\0\0h\0|h\^A\0h\^P\0\M-4B\M^JV\0\M^K\M-t\M-M\^S\M^_\M^C\M-D\^P\M^^\M-k\^T\M-8\^A\^B\M-;\0|\M^JV\0\M^Jv\^A\M^JN\^B\M^Jn\^C\M-M\^Sfas\^^\M-~N\^Q\^O\M^E\f\0\M^@~\0\M^@\^O\M^D\M^J\0\M-2\M^@\M-k\M^BU2\M-d\M^JV\0\M-M\^S]\M-k\M^\\M^A>\M-~}U\M-*un\M^?v\0\M-h\M^J\0\^O\M^E\^U\0\M-0\M-Q\M-fd\M-h\^?\0\M-0\M-_\M-f`\M-hx\0\M-0\M^?\M-fd\M-hq\0\M-8\0\M-;\M-M\^Zf#\M-@u;f\M^A\M-{TCPAu2\M^A\M-y\^B\^Ar,fh\a\M-;\0\0fh\0\^B\0\0fh\b\0\0\0fSfSfUfh\0\0\0\0fh\0|\0\0fah\0\0\a\M-M\^ZZ2\M-v\M-j\0|\0\0\M-M\^X\240\M-7\a\M-k\b\240\M-6\a\M-k\^C\240\M-5\a2\M-d\^E\0\a\M^K\M-p\M-,<\0t\M-|\M-;\a\0\M-4\^N\M-M\^P\M-k\M-r+\M-I\M-dd\M-k\0$\^B\M-`\M-x$\^B\M-CInvalid\spartition\stable\0Error\sloading\soperating\ssystem\0Missing\soperating\ssystem\0\0\0\0bz\M^Yq\^T\^Q\^Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\M-*
[~] $ echo -n '3\M-@\M^N\M-P\M-<\0|\M^N\M-@\M^N\M-X\M->\0|\M-?\0\^F\M-9\0\^B\M-|\M-s\M-$Ph\^\\^F\M-K\M-{\M-9\^D\0\M-=\M->\a\M^@~\0\0|\v\^O\M^E\^P\^A\M^C\M-E\^P\M-b\M-q\M-M\^X\M^HV\0U\M-FF\^Q\^E\M-FF\^P\0\M-4A\M-;\M-*U\M-M\^S]r\^O\M^A\M-{U\M-*u\t\M-w\M-A\^A\0t\^C\M-~F\^Pf`\M^@~\^P\0t&fh\0\0\0\0f\M^?v\bh\0\0h\0|h\^A\0h\^P\0\M-4B\M^JV\0\M^K\M-t\M-M\^S\M^_\M^C\M-D\^P\M^^\M-k\^T\M-8\^A\^B\M-;\0|\M^JV\0\M^Jv\^A\M^JN\^B\M^Jn\^C\M-M\^Sfas\^^\M-~N\^Q\^O\M^E\f\0\M^@~\0\M^@\^O\M^D\M^J\0\M-2\M^@\M-k\M^BU2\M-d\M^JV\0\M-M\^S]\M-k\M^\\M^A>\M-~}U\M-*un\M^?v\0\M-h\M^J\0\^O\M^E\^U\0\M-0\M-Q\M-fd\M-h\^?\0\M-0\M-_\M-f`\M-hx\0\M-0\M^?\M-fd\M-hq\0\M-8\0\M-;\M-M\^Zf#\M-@u;f\M^A\M-{TCPAu2\M^A\M-y\^B\^Ar,fh\a\M-;\0\0fh\0\^B\0\0fh\b\0\0\0fSfSfUfh\0\0\0\0fh\0|\0\0fah\0\0\a\M-M\^ZZ2\M-v\M-j\0|\0\0\M-M\^X\240\M-7\a\M-k\b\240\M-6\a\M-k\^C\240\M-5\a2\M-d\^E\0\a\M^K\M-p\M-,<\0t\M-|\M-;\a\0\M-4\^N\M-M\^P\M-k\M-r+\M-I\M-dd\M-k\0$\^B\M-`\M-x$\^B\M-CInvalid\spartition\stable\0Error\sloading\soperating\ssystem\0Missing\soperating\ssystem\0\0\0\0bz\M^Yq\^T\^Q\^Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0U\M-*' | unvis | hexdump -Cv
00000000  33 c0 8e d0 bc 00 7c 8e  c0 8e d8 be 00 7c bf 00  |3.....|......|..|
00000010  06 b9 00 02 fc f3 a4 50  68 1c 06 cb fb b9 04 00  |.......Ph.......|
00000020  bd be 07 80 7e 00 00 7c  0b 0f 85 10 01 83 c5 10  |....~..|........|
00000030  e2 f1 cd 18 88 56 00 55  c6 46 11 05 c6 46 10 00  |.....V.U.F...F..|
00000040  b4 41 bb aa 55 cd 13 5d  72 0f 81 fb 55 aa 75 09  |.A..U..]r...U.u.|
00000050  f7 c1 01 00 74 03 fe 46  10 66 60 80 7e 10 00 74  |....t..F.f`.~..t|
00000060  26 66 68 00 00 00 00 66  ff 76 08 68 00 00 68 00  |&fh....f.v.h..h.|
00000070  7c 68 01 00 68 10 00 b4  42 8a 56 00 8b f4 cd 13  ||h..h...B.V.....|
00000080  9f 83 c4 10 9e eb 14 b8  01 02 bb 00 7c 8a 56 00  |............|.V.|
00000090  8a 76 01 8a 4e 02 8a 6e  03 cd 13 66 61 73 1e fe  |.v..N..n...fas..|
000000a0  4e 11 0f 85 0c 00 80 7e  00 80 0f 84 8a 00 b2 80  |N......~........|
000000b0  eb 82 55 32 e4 8a 56 00  cd 13 5d eb 9c 81 3e fe  |..U2..V...]...>.|
000000c0  7d 55 aa 75 6e ff 76 00  e8 8a 00 0f 85 15 00 b0  |}U.un.v.........|
000000d0  d1 e6 64 e8 7f 00 b0 df  e6 60 e8 78 00 b0 ff e6  |..d......`.x....|
000000e0  64 e8 71 00 b8 00 bb cd  1a 66 23 c0 75 3b 66 81  |d.q......f#.u;f.|
000000f0  fb 54 43 50 41 75 32 81  f9 02 01 72 2c 66 68 07  |.TCPAu2....r,fh.|
00000100  bb 00 00 66 68 00 02 00  00 66 68 08 00 00 00 66  |...fh....fh....f|
00000110  53 66 53 66 55 66 68 00  00 00 00 66 68 00 7c 00  |SfSfUfh....fh.|.|
00000120  00 66 61 68 00 00 07 cd  1a 5a 32 f6 ea 00 7c 00  |.fah.....Z2...|.|
00000130  00 cd 18 a0 b7 07 eb 08  a0 b6 07 eb 03 a0 b5 07  |................|
00000140  32 e4 05 00 07 8b f0 ac  3c 00 74 fc bb 07 00 b4  |2.......<.t.....|
00000150  0e cd 10 eb f2 2b c9 e4  64 eb 00 24 02 e0 f8 24  |.....+..d..$...$|
00000160  02 c3 49 6e 76 61 6c 69  64 20 70 61 72 74 69 74  |..Invalid partit|
00000170  69 6f 6e 20 74 61 62 6c  65 00 45 72 72 6f 72 20  |ion table.Error |
00000180  6c 6f 61 64 69 6e 67 20  6f 70 65 72 61 74 69 6e  |loading operatin|
00000190  67 20 73 79 73 74 65 6d  00 4d 69 73 73 69 6e 67  |g system.Missing|
000001a0  20 6f 70 65 72 61 74 69  6e 67 20 73 79 73 74 65  | operating syste|
000001b0  6d 00 00 00 00 62 7a 99  71 14 11 19 00 00 00 00  |m....bz.q.......|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200

Ich mag die Erwähnung von "Ungültige Partitionstabelle. Fehler beim Laden des Betriebssystems. Fehlendes Betriebssystem" :(

Bitte fügen Sie die Ausgabe von dd if=/dev/disk0 bs=512 count=1 skip=614448 | hexdump -Cvin der Terminal-App im Internet-Wiederherstellungsmodus (Menüleiste > Dienstprogramme > Terminal) hinzu. Sie können auf apple.stackexchange.com zugreifen und Ihre Frage im Wiederherstellungsmodus mit Safari bearbeiten (und Ihre Anmeldeinformationen hier).
Ohh, ich vergaß: Hexdump ist im Wiederherstellungsmodus nicht verfügbar, also geben Sie ein: export LC_CTYPE="ASCII"then dd if=/dev/disk0 bs=512 count=1 skip=614448 2>/dev/null | vis -wc; echo. Fahren Sie dann wie in Meine APFS-Partition verloren nach Verwendung des EaseUS-Partitionsmanagers auf Bootcamp > Alternative Methode zur Bestimmung der genauen Größe für disk0s2 1. und 2. beschrieben fort!
Vielen Dank für Ihre Hilfe @klanomath . Ich habe gepostet, was Sie gefragt haben, aber es sieht so aus, als ob es nicht gut aussieht ...
Ich überprüfe nur den Inhalt der ersten 512 Bytes von Block76806 ;-)
Es sieht aus wie ein MBR (der normalerweise in Block0 geschrieben wird).
OK. Sollte ich mir also Sorgen um diese "Ungültige Partitionstabelle. Fehler beim Laden des Betriebssystems. Fehlendes Betriebssystem" machen. ? Nochmals vielen Dank für Ihre Hilfe und lassen Sie mich wissen, wenn Sie etwas gefunden haben oder wenn Sie einen anderen Befehl ausführen möchten.
Es ist seltsam, dass ich jetzt nicht mehr auf meinem Bootcamp-Windows booten kann ... Windows kann meine Festplatte beim Start nicht reparieren ...

Antworten (1)

Hier wurde der aktuelle Superblock des APFS-Containers (block0 von disk0s2) mit einem MBR überschrieben. Dadurch wird verhindert, dass der Bootloader (und diskutil/Disk Utility) den APFS-Container als solchen erkennt.

Ein normaler Superblock (aber anderer Mac und andere Containergröße) sieht so aus:

APFS-Container-Superblock

Es konnte kein wirklicher Grund gefunden werden, warum der Superblock überschrieben wurde!


Um dies zu beheben (über TeamViewer & externes Boot-Volume mit installiertem Catalina) wurde ein anderer (älterer) Superblock von disk0s2 verwendet, um die MBR-Daten zu überschreiben.

  1. Installieren Sie HexFiend und suchen Sie nach den magischen Bytes eines Superblocks: NXSBauf der Partition disk0s2. Das erste Auftreten war nach den ersten ~3 GB von disk0s2. Der Metadatenteil eines APFS-Containers beherbergt normalerweise verschiedene ältere Superblocks. Der aktuelle Superblock ist normalerweise die Kopie eines " älteren" Superblocks, wenn der Mac zuvor ordnungsgemäß heruntergefahren wurde.

    Obwohl es nur einen Container gibt, sind mehrere Kopien des Container-Superblocks (eine Instanz von nx_super block_t) auf der Festplatte gespeichert. Diese Kopien enthalten den Zustand des Containers zu vergangenen Zeitpunkten. Block null enthält eine Kopie des Container-Superblocks, der als Teil des Mount-Prozesses verwendet wird, um die Checkpoints zu finden. Block Null ist normalerweise eine Kopie des neuesten Container-Superblocks, vorausgesetzt, das Gerät wurde ordnungsgemäß ausgehängt und zuletzt durch eine korrekte Implementierung des Apple-Dateisystems geändert. In der Praxis verwenden Sie die Block-Null-Kopie jedoch nur, um die Checkpoints zu finden, und verwenden für alles andere die neueste Version des Checkpoints. Quelle

    Die Größe eines Superblocks scheint 1382 Bytes zu sein . Da ein MBR eine Größe von 512 Bytes hat, habe ich erwartet, dass die letzten 870 Bytes (1382-512) des Superblocks nicht überschrieben wurden und mich entschieden, nur die ersten 512 Bytes eines älteren Superblocks zu kopieren, um so viel wie möglich davon zu behalten die Reste des Originals.

  2. Fügen Sie die 512 Bytes dieses älteren Superblocks in eine Datei auf dem Desktop hinzu:

    sudo dd if=/dev/disk0s2 of=/Users/user_name/oldsuperblock.bin bs=1 count=512 skip=3063808000 #"3063808000" is just an example Byte offset because the zsh history file with the original command is lost
    
  3. füge die Datei zu block0 hinzu:

    sudo dd if=/Users/user_name/oldsuperblock.bin of=/dev/disk0s2 bs=512 count=1
    
  4. Starten Sie den Mac auf dem temporären Startvolume neu, um den APFS-Superblock des internen APFS-Containers "neu zu laden".
  5. Reparieren Sie den APFS-Container (mit verschlüsselten Volumes!):

    diskutil repairVolume disk1
    

    diskutil (oder besser fsck_apfs) hat sich über eine falsche Prüfsumme des Superblocks beschwert, aber es ohne Probleme behoben.

  6. Überprüfen Sie, ob das verschlüsselte Datenvolume mit Festplattendienstprogramm > Bereitstellen bereitgestellt werden kann. Um das Volume zu entsperren, muss ein Passwort eines Benutzers der "kaputten" Platte eingegeben werden.
  7. Booten Sie auf das interne Boot-Volume
  8. ERFOLG!

Abschluss:

Ich konnte in der Apple APFS-Dokumentation oder beim Vergleich der verschiedenen älteren Versionen des Superblocks, die ich gefunden habe, kein Nummerierungsschema oder Zeitstempel für Superblöcke finden.

Es ist unklar, ob es reines Glück war, einen funktionierenden älteren Superblock zu holen. Es war kein aktuelles Backup verfügbar, daher ist es umso unsicherer, ob die Wiederherstellung eines alten Superblocks zu Datenverlust führt. Immerhin bootete der Mac und die verschlüsselten Volumes konnten entsperrt werden.

Nochmals DANKE für Ihre Zeit, Ausdauer und extreme Freundlichkeit. Du bist wirklich ein Retter! Habt ein schönes Osterwochenende!