10.15 Catalina SSD externe non visible --> APFS container scheme +error

  • Créateur du sujet Créateur du sujet DjafaOS
  • Date de début Date de début

DjafaOS

Membre confirmé
5 Juin 2017
69
4
43
Bonjour,

Je me permets de poster une petite question au sujet d'un disque externe SSD qui vient de planter sur Catalina. Les containers APFS ne sont plus visibles, je ne vois donc aucun des disques créés. Les 4 disques ont disparus.

Pour résumer, j'avais créer un container APFS avec 4 disques, sur un des disques j'ai un OS de secours, sur les autres, ce ne sont que de la donnée.

C'est un disque Samsung d'1To en SSD. Le plantage est survenu en faisant une éjection forcée. Juste après tous les disques ont disparu.

J'ai pu récupérer les fichiers avec Disk drill Pro, ce dernier arrive à me montrer tous les volumes. Par curiosité personnelle, j'aimerais bien savoir s'il est possible de réparer le container et donc en même temps récupérer mes données sans tout formater.

En réponse à ce post, je vais poster les divers actions déjà réalisées.

Merci d'avance.

Dans le terminal, j'ai passé la commande :
diskutil list

le résultat est le suivant :

Bash:
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         1000.0 GB  disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +ERROR      disk3
                                 Physical Store disk2s2

J'ai passé la commande suivante également :
diskutil repairVolume disk3

le résultat est le suivant :
Bloc de code:
diskutil repairVolume disk3
Started file system repair on disk3
Repairing storage system
Performing fsck_apfs -y -x /dev/disk2s2
Checking the container superblock
Checking the EFI jumpstart record
Checking the space manager
error: spaceman cib out of order: 52, expected 43
Space manager is invalid
The volume /dev/disk2s2 could not be verified completely
Storage system check exit code is 0
Finished file system repair on disk3

Au niveau de disk drill, j'arrive à voir chaque volume :

Les 4 avec le Texte EXT-..., tous les autres ne sont pas créés volontairement par moi.

Le disque EXT-SSD-01-OS X contient mon OS de secours.

1588370191902.png

Petite information complémentaire, tous les disques sont chiffrés.
 
Dernière édition par un modérateur:
Bonjour Djafa

Passe la commande (si le disque physique du DDE = disk2) :
Bloc de code:
sudo gpt show disk2

  • à validation > une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe de session admin en aveugle - aucun caractère ne se montrant à la frappe - et revalide
  • la commande lit la table GPT d'en-tête du disque => et affiche en retour la distribution des blocs gérés par cette table

Poste le retour.
 
Merci Macomaniac.

Voici le retour de la commande passée :

Bloc de code:
sudo gpt show disk2
Password:
       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  1953115488      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
  1953525128           7         
  1953525135          32         Sec GPT table
  1953525167           1         Sec GPT header
 
Je vois que la taille du bloc est le standard de 512 octets. Le bloc de tête est le n°409640. L'extension de la partition de 1953115488 blocs (de 512 octets = 999.99 Go).

- passe encore la commande (copier-coller) :​
Bloc de code:
sudo dd if=/dev/disk2s2 bs=512 count=3 | hexdump -Cv

  • la commande clone via dd (data_doubler) les 3 premiers blocs de la partition apfs > puis affiche leur contenu dans l'utilitaire hexdump

Poste le retour.
 
Voilà j'ai passé la commande. J'obtiens ceci,

Bloc de code:
sudo dd if=/dev/disk2s2 bs=512 count=3 | hexdump -Cv
3+0 records in
3+0 records out
00000000  54 33 cd 40 75 2a 3c e1  01 00 00 00 00 00 00 00  |T3.@u*<.........|
1536 bytes transferred in 0.003201 secs (479849 bytes/sec)
00000010  70 4c 00 00 00 00 00 00  01 00 00 80 00 00 00 00  |pL..............|
00000020  4e 58 53 42 00 10 00 00  ac 45 8d 0e 00 00 00 00  |NXSB.....E......|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  02 00 00 00 00 00 00 00  ab 57 e3 51 c0 17 47 08  |.........W.Q..G.|
00000050  9e c3 4d ce 32 41 78 79  5d 25 04 00 00 00 00 00  |..M.2Axy]%......|
00000060  71 4c 00 00 00 00 00 00  18 01 00 00 5c 6c 00 00  |qL..........\l..|
00000070  01 00 00 00 00 00 00 00  19 01 00 00 00 00 00 00  |................|
00000080  f4 00 00 00 f2 48 00 00  f2 00 00 00 02 00 00 00  |.....H..........|
00000090  e6 48 00 00 0c 00 00 00  00 04 00 00 00 00 00 00  |.H..............|
000000a0  36 90 14 00 00 00 00 00  01 04 00 00 00 00 00 00  |6...............|
000000b0  00 00 00 00 64 00 00 00  37 3e 01 00 00 00 00 00  |....d...7>......|
000000c0  27 04 00 00 00 00 00 00  e7 6c 00 00 00 00 00 00  |'........l......|
000000d0  fd 6c 00 00 00 00 00 00  ff 6c 00 00 00 00 00 00  |.l.......l......|
000000e0  57 0d 01 00 00 00 00 00  5b 15 01 00 00 00 00 00  |W.......[.......|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
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 00 00  |................|
00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000220  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000230  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000240  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000250  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000260  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000270  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000280  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000290  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000002f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000300  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000310  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000320  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000330  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000340  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000350  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000360  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000370  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000380  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000390  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003d0  00 00 00 00 00 00 00 00  59 77 16 00 00 00 00 00  |........Yw......|
000003e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000400  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000410  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000420  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000430  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000440  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000450  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000460  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000470  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000480  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000490  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004f0  04 00 00 00 00 00 00 00  b9 d5 9e 01 00 00 00 00  |................|
00000500  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000510  28 f5 ba 06 00 00 00 00  01 00 00 00 00 00 00 00  |(...............|
00000520  01 00 04 00 08 00 00 00  00 00 00 00 00 00 00 00  |................|
00000530  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000540  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000550  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000560  00 00 00 00 00 00 00 00  40 34 8d 62 4c 04 05 00  |[email protected]...|
00000570  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000580  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000590  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000600
 
Dernière édition:
Cette mention en haut de tableau (forme lisible) -->
Bloc de code:
NXSB

  • correspond à l'hexcode -->
Bloc de code:
ac 45 8d 0e

  • dans la calculette programmeur ça me donne : 0xE8D45AC (16) = 244139436 (10). 244139436 blocs de 512 octets = 124.99 Go. Mais si je multiplie par 8 pour obtenir la taille du bloc octuple de 4096 octets => 1953115488 blocs de 512 octets. Soit la taille exacte de la partition (999,99 Go).

  • Je me demande si une erreur de computation n'a pas assigné la taille du Conteneur à 244139436 blocs comme si la mesure était en blocs octuples de 4096 octets > alors que le disque du DDE est découpé en blocs standards de 512 octets. En bref : la taille assignée au Conteneur apfs serait le 1/8è de la taille de la partition.

Question : combien avais-tu de données (de mémoire) ?
 
Le disque était plein à environ 80% soit 800 Go de mémoire répartit sur les 4 disques.

Quand c'est arrivé, je supprimais des bibliothèques FCPX qui y étaient stockées et supprimais quelques vidéos
 
Passe une commande :
Bloc de code:
diskutil verifyVolume disk3

  • qui vérifie l'apfs du DDE

Poste le retour.
 
Dernière édition par un modérateur:
Voici le retour :

Bloc de code:
diskutil verifyVolume disk3
Started file system verification on disk3
Verifying storage system
Performing fsck_apfs -n -x /dev/disk2s2
Checking the container superblock
Checking the EFI jumpstart record
Checking the space manager
error: spaceman cib out of order: 52, expected 43
Space manager is invalid
The volume /dev/disk2s2 could not be verified completely
Storage system check exit code is 0
Finished file system verification on disk3

Pour info, sur Disk drill je vois correctement la structure de mes disques durs. J'arrive à les monter sur disk drill et à accéder à toutes les données
 
Cette mention -->
Bloc de code:
Space manager is invalid

  • déclare que le spaceman (le gestionnaire de l'allocation des blocs de l'apfs) est corrompu. Je me demande si on peut y faire quelque chose. Il arrive dans des cas "bénins" de +ERROR (erreur de taille du Conteneur) => que la vérification affiche la taille requise du Conteneur en comparaison de la taille prétendue (en nombre de blocs). Ce qui permet un ajustement. Ici > on a affaire à une erreur "opaque".
  • le clonage des informations des blocs de tête de l'apfs effectué par dd et décryptée par hexdump > puis mes calculs de la valeur NXSB qui énonce la taille prétendue du Conteneur apfs => montrent qu'il s'agit d'une extension de 124.99 Go > soit le 1/8 de l'extension de la partition. Tout se passe comme si l'apfs croyait avoir affaire à des blocs de 4096 octets > alors que le bloc du disque est de 512 octets.

Comme tu as réussi via Disk Drill à récupérer les données qui t'intéressaient > le problème est pour toi purement théorique. Donc on peut poursuivre en mode spéculatif.

- le super-bloc de l'APFS (= bloc de tête de la partition) > possède des sauvegardes quelque part dans la suite de blocs d'inscription du système de fichiers apfs. On peut tenter de débusquer un des ces blocs de sauvegardes afin de vérifier si la valeur du NXSB équivaut à la même taille en blocs. Si on tombait sur un NXSB à valeur correcte > on pourrait envisager de cloner ce bloc en remplacement du super-bloc invalide de l'APFS.​

Mais d'abord il faut voir si un autre NXSB se balade quelque part sur les blocs. Passe la commande :
Bloc de code:
sudo dd if=/dev/disk2s2 bs=512 count=1000000 of=~/Desktop/NXSB.bin

  • qui fait cloner par dd les 1 000 000 de blocs de départ (en computation de 512 octets) de la partition apfs > et redirige la sortie sur un fichier : NXSB.bin du Bureau (qui devrait faire dans les 512 Mo donc). Impossible de rediriger la sortie sur un affichage hexdump du terminal : il y aurait un défilement indéfini de lignes mal gérable.

Cela fait > va à cette page : ☞Hex Fiend et télécharge l'éditeur d'hexcode (gratuit). Déplace-le dans les Applications.

- lance-le. Par ⌘O lance une navigation à une source et choisis le fichiers NXSB.bin du Bureau. Hex Fiend l'affiche. Par ⌘F > lance une option de recherche (Find) > sélectionne l'option : Text (saisie textuelle) et colle NXSB dans le champ de saisie de l'objet recherché. Presse le bouton : "Next" => qui va peut-être afficher le NXSB de tout début de tableau. Presse encore le bouton : "Next" (prochaine occurrence de l'objet)​

=> est-ce que tu vois s'afficher une autre occurrence de NXSB dans la suite des 1 000 000 de blocs de 512 octets ?
 
En faisant cela, je trouve plusieurs occurence de ce terme. Merci pour les explications claires.

Le premier à la ligne 32 (celui de base),
le second à la ligne 8224
le troisième à la ligne 16416
Le quatrième à la ligne 24608
et ainsi de suite en ajoutant 8192 à la ligne précédente.
 
Est-ce qu'en correspondance de la mention NXSB --> tu as :

Bloc de code:
ac 45 8d 0e

  • chaque fois si tu sélectionnes le NXSB ?
 
Oui je te le confirmes

Bloc de code:
4E585342 00100000 AC458D0E 00000000
 
Alors il n'y a rien à faire.

- c'est ton scénario qui garde la main : récupération des données avec Disk Drill > puis effacement du disque du DDE & reformatage > enfin remise des données dans le nouveau volume.​
 
Ok. Je vais m'y résoudre. Ce qui m'embête c'est que j'ai un second disque qui est configuré de la même manière, une conteneur apfs, et 4 volumes en dessous pour pas me tracasser de la taille, mais donc quand cela plante, je perds tout le disque.

Je vais devoir revenir au partitionnement classique, ou créer plusieurs conteneur sur le disque.