3 votes

Impossible de démarrer sur ma partition APFS

Après un redémarrage, je suis incapable de démarrer sur ma partition MacOS chiffrée avec FileVault sur Catalina sur un Macbook Pro 2016.

Je ne peux démarrer que sur mes partitions Bootcamp et Recovery. Il semble que le problème soit très similaire à cette question StackExchange : Partition APFS inaccessible, conteneur manquant

Malheureusement, je ne suis pas en mesure de m'adapter @david-anderson Je n'ai pas pu répondre à mon cas en raison d'un manque de connaissances techniques sur ce sujet.

Quelqu'un peut-il m'aider ?

Voici une commande que j'ai tapée pour avoir plus d'infos :

-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

Voici d'autres commandes que j'ai essayées afin de vérifier ou de réparer le disque, sans succès :

-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

EDIT : voici le résultat de la commande que @klanomath a gentiment demandé :

-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

Je n'aime pas la mention de la "Table de partition non valide. Erreur de chargement du système d'exploitation. Système d'exploitation manquant" :(

2voto

klanomath Points 63400

Ici, le superbloc actuel du conteneur APFS (bloc0 du disque0s2) a été écrasé par un MBR. Cela empêchera le chargeur de démarrage (et diskutil/Disk Utility) de reconnaître le conteneur APFS comme tel.

Un superbloc normal (Mac différent et taille de conteneur différente cependant) ressemble à ceci :

APFS container superblock

Aucune raison réelle n'a pu être trouvée pourquoi le superbloc a été écrasé !


Pour résoudre ce problème (via TeamViewer et un volume de démarrage externe avec Catalina installé), un autre superbloc (plus ancien) du disque0s2 a été utilisé pour écraser les données MBR.

  1. Installez HexFiend et recherchez les octets magiques d'un superbloc : NXSB sur la partition disk0s2. La première occurrence s'est produite après les premiers ~3 Go de disk0s2. La partie métadonnées d'un conteneur APFS contient généralement plusieurs anciens superblocs. Le superbloc actuel est généralement la copie de un "ancien" superbloc si le Mac a été éteint correctement auparavant.

    Bien qu'il n'y ait qu'un seul conteneur, il existe plusieurs copies du superbloc du conteneur (une instance de nx_super block_t) stockées sur le disque. Ces copies contiennent l'état du conteneur à des moments passés dans le temps. Le bloc zéro contient une copie du superbloc du conteneur qui est utilisée dans le cadre du processus de montage pour trouver les points de contrôle. Le bloc zéro est généralement une copie du dernier superbloc du conteneur, en supposant que le périphérique a été correctement démonté et a été modifié pour la dernière fois par une implémentation correcte du système de fichiers Apple. modifié par une implémentation correcte du système de fichiers Apple. Cependant, dans la pratique, vous utilisez la copie du bloc zéro uniquement pour pour trouver les points de contrôle et utiliser la dernière version du point de contrôle pour tout le reste. Source :

    La taille d'un superbloc semble être de 1382 octets . Comme un MBR a une taille de 512 octets, je m'attendais à ce que les 870 derniers octets (1382-512) du superbloc n'ont pas été écrasés et a décidé de ne copier que les premiers 512 octets d'un superbloc plus ancien pour conserver autant que possible les restes de celui d'origine.

  2. dd les 512 octets de ce plus vieux superbloc vers un fichier sur le bureau :

    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. dd le fichier au bloc0 :

    sudo dd if=/Users/user_name/oldsuperblock.bin of=/dev/disk0s2 bs=512 count=1
  4. Redémarrez le Mac sur le volume de démarrage temporaire pour "recharger" le superbloc APFS du conteneur APFS interne.

  5. Réparer le conteneur APFS (avec des volumes chiffrés !):

    diskutil repairVolume disk1

    diskutil (ou mieux fsck_apfs) s'est plaint d'une somme de contrôle erronée du superbloc mais l'a corrigé sans problème.

  6. Vérifiez si le volume de données crypté peut être monté avec Utilitaire de disque > Monter. Pour déverrouiller le volume, il faut saisir le mot de passe d'un utilisateur du disque "cassé".

  7. Démarrage sur le volume de démarrage interne

  8. SUCCÈS !


Conclusion :

Je n'ai pas pu trouver de schéma de numérotation ou d'horodatage pour les superblocs dans la documentation APFS d'Apple ou en comparant les diverses anciennes versions du superbloc que j'ai trouvées.

Il n'est pas clair si c'était de la pure chance de trouver un vieux bloc en état de marche. Aucune sauvegarde actuelle n'était disponible, il est donc encore plus incertain que la réinstallation d'un ancien superbloc entraîne une perte de données. Au moins, le Mac a démarré et les volumes cryptés ont pu être déverrouillés.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X