10.15 Catalina Partition DDE inaccessible

macomaniac

Ouroboros
Club MacG
20 Septembre 2012
83 039
24 983
Forêt de Fontainebleau
Il faudrait vérifier chaque fois avec la commande dd (data_doubler) si le 1er bloc porte des écritures ou pas.

- donc commande :​
Bloc de code:
sudo dd if=/dev/disk2 bs=512 count=1 skip=512 | hexdump -Cv

  • et etc. la seule variable étant la valeur de skip=xxxx. Tu inscris en valeur le de bloc que tu as pris en bloc de tête de la partition. skip voulant dire : "échapper tant de blocs depuis le début du disque" > et comme le bloc0 est le 1er bloc de la numération > skip=512 fait échapper les 512 premiers blocs à partir de 0 inclus > et donc retenir le bloc512 comme cible. Et etc.

Il faudrait que tu voies chaque fois si tu as un tableau avec rien que des 00 ou si tu tombes sur des écritures.
 

Skanda

Membre junior
24 Octobre 2007
30
0
Bonjour à tous,

La semaine dernière j'ai partitionné mon disque SSD avec Boot Camp pour installer Windows.

Il y a eu un souci au redémarrage et ma partition macOS n'était plus accessible. J'ai contacté le support Apple, une bonne heure au téléphone à tester différentes manipulations pour au final me confirmer qu'il faudrait voir avec mon revendeur, difficile à distance de m'aider.

Au final, j'ai réinstaller macOS sur ma partition Windows. J'ai essayé de Vérifier / Réparer / Supprimer la partition qui était inaccessible, sans succès... et là je sèche vraiment...

J'ai vu ce post similaire au mien mais je ne suis pas certain des manipulations, ça devient trop pointu pour moi.

Un grand grand merci par avance pour votre aide, car là vraiment ça me déprime toute cette histoire...

Voici ce que me donne DiskUtility:

Bloc de code:
Didooou ~ % diskutil list                           
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI ⁨EFI⁩                     314.6 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk1⁩         289.9 GB   disk0s2
   3:                 Apple_APFS ⁨Container disk2⁩         210.1 GB   disk0s3

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

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +210.1 GB   disk2
                                 Physical Store disk0s3
   1:                APFS Volume ⁨Macintosh HD - Données⁩  8.8 GB     disk2s1
   2:                APFS Volume ⁨Preboot⁩                 295.4 MB   disk2s2
   3:                APFS Volume ⁨Recovery⁩                613.7 MB   disk2s3
   4:                APFS Volume ⁨VM⁩                      20.5 KB    disk2s4
   5:                APFS Volume ⁨Macintosh HD⁩            15.1 GB    disk2s5
   6:              APFS Snapshot ⁨com.apple.os.update-...⁩ 15.1 GB    disk2s5s1

Didooou ~ % df -H
Filesystem       Size   Used  Avail Capacity iused      ifree %iused  Mounted on
/dev/disk2s5s1   210G    15G   185G     8%  568975 2051097585    0%   /
devfs            195k   195k     0B   100%     659          0  100%   /dev
/dev/disk2s4     210G    20k   185G     1%       0 2051666560    0%   /System/Volumes/VM
/dev/disk2s2     210G   295M   185G     1%     770 2051665790    0%   /System/Volumes/Preboot
/dev/disk2s6     210G   532k   185G     1%      16 2051666544    0%   /System/Volumes/Update
/dev/disk2s1     210G   8.8G   185G     5%  128375 2051538185    0%   /System/Volumes/Data
map auto_home      0B     0B     0B   100%       0          0  100%   /System/Volumes/Data/home

Didooou ~ % diskutil verifyVolume disk1
Started file system verification on disk1
Verifying storage system
Performing fsck_apfs -n -x /dev/disk0s2
warning: nx_block_count is 80322298, while device block count is 70769658
error: object (oid 0x1): o_cksum (0x77ae3040e2d3543f) is invalid for object
Checking the container superblock
Storage system check exit code is 8
Error: -69716: Storage system verify or repair failed
Underlying error: 8

Didooou ~ % diskutil repairVolume disk1
Started file system repair on disk1
Repairing storage system
Performing fsck_apfs -y -x /dev/disk0s2
warning: nx_block_count is 80322298, while device block count is 70769658
error: object (oid 0x1): o_cksum (0x77ae3040e2d3543f) is invalid for object
Checking the container superblock
Storage system check exit code is 8
Error: -69716: Storage system verify or repair failed
Underlying error: 8

Didooou ~ % diskutil verifyDisk /dev/disk1
Unable to verify this whole disk: A GUID Partition Table (GPT) partitioning scheme is required (-69773)

Didooou ~ % diskutil repairDisk /dev/disk1
Unable to repair this whole disk: A GUID Partition Table (GPT) partitioning scheme is required (-69773)

Didooou ~ % diskutil eraseDisk APFS Untitled /dev/disk1
You cannot manually format an existing APFS Container disk 

Didooou ~ % csrutil status
System Integrity Protection status: disabled

Didooou ~ % sudo gpt show disk1
start      size  index  contents
0  70769658  

Didooou ~ % sudo fdisk /dev/disk1
Disk: /dev/disk1    geometry: 4405/255/63 [70769658 sectors]
Sector size: 4096 bytes
Signature: 0x0
         Starting       Ending
#: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
1: 00    0   0   0 -    0   0   0 [         0 -          0] unused    
2: 00    0   0   0 -    0   0   0 [         0 -          0] unused    
3: 00    0   0   0 -    0   0   0 [         0 -          0] unused    
4: 00    0   0   0 -    0   0   0 [         0 -          0] unused
 
Dernière édition par un modérateur:

macomaniac

Ouroboros
Club MacG
20 Septembre 2012
83 039
24 983
Forêt de Fontainebleau
Bonjour Skanda

J'ai contacté le support Apple, une bonne heure au téléphone à tester différentes manipulations pour au final me confirmer qu'il faudrait voir avec mon revendeur, difficile à distance de m'aider.
  • risible. Ton problème est entièrement intelligible logiquement parlant et je t'en détaille l'interprétation ci-après.

La partition apfs2 (289,9 Go) virtualise le Conteneur disk1 avec la mention de taille : +ERROR -->

- cela veut dire que la taille actuelle du magasin Physical Store de la partition > ne coïncide pas avec la taille théoriquement attendue du Conteneur (telle qu'enregistrée dans le super-bloc de ce Conteneur). Mais tu as la chance qu'à la vérification de l'apfs > les valeurs de la taille actuelle du magasin Physical Store et de la taille attendue par le superbloc du Conteneur => se trouvent mentionnées numériquement -->​
Bloc de code:
warning: nx_block_count is 80322298, while device block count is 70769658
  • la taille théorique du Conteneur inscrite dans son super-bloc est de : 80322298 blocs (octuples du bloc défaut de 512 octets > soit 4096 octets. Ce qui fait que 80322298 blocs de 4096 octets = 642578384 blocs standards de 512 octets = 329 Go).
  • la taille actuelle du magasin Physical Store de la partition est de : 70769658 blocs (octuples du bloc défaut de 512 octets > soit 4096 octets. Ce qui fait que 70769658 blocs de 4096 octets = 566157264 blocs standards de 512 octets =289.87 Go).
- en résumé : la partition actuelle a une taille de 289,87 Go > alors qu'elle devrait faire 329 Go pour satisfaire aux attentes logiques du superbloc du Conteneur. La solution se laisse déduire avec limpidité : il faut supprimer dans la table GPT d'en-tête du disque => l'actuel descripteur de la partition2 comme ayant une taille de 289 Go > pour le recréer comme décrivant une partition apfs d'une taille de 329 Go. Et alors pfuittt... le kernel (moteur du Système démarré au moment de l'édition de la GPT) => redéploiera instantanément un Conteneur apfs valide avec ses volumes intacts > donnant une distribution d'OS redémarrable.​
- comme la partition apfs3 bloque l'expansion nécessaire de la n°2 de 40 Go environ > il faudra en préalable supprimer le descripteur de la partition3 dans la GPT. Ce qui ne pose pas de problème > vu que le Conteneur de cette partition ne recèle pas de données personnelles.​
- pour éditer la table GPT > il ne faut pas qu'elle soit activée par la prise en charge d'un kernel = moteur du Système démarré montant les volumes. Il faudra donc que tu démarres en mode secours > ce qui avec les OS apfs récents clone en RAM à la volée l'OS de secours du volume Recovery > ce qui fait que le Mac se trouve démarré sur la RAM en indépendance du disque. Ce qui permet de démonter tous les volumes du disque interne > et par là de décharger la GPT de sa prise en charge par le kernel.​
Tu n'auras qu'à refaire signe ici quand tu seras de nouveau disponible > et on éditera la GPT comme il faut. Arrête surtout toutes initiatives dans le terminal => qui auraient bien pu ruiner la possibilité de récupérer un Conteneur valide avec ses volumes.
 
  • J’aime
Réactions: izel mor

Skanda

Membre junior
24 Octobre 2007
30
0
Bonjour Macomaniac,

Navré pour le post mal placé et merci pour ton rapide retour, ainsi que toute ton analyse / explications !


Tu n'auras qu'à refaire signe ici quand tu seras de nouveau disponible > et on éditera la GPT comme il faut. Arrête surtout toutes initiatives dans le terminal => qui auraient bien pu ruiner la possibilité de récupérer un Conteneur valide avec ses volumes.
Je ne touche plus à rien ;)


- pour éditer la table GPT > il ne faut pas qu'elle soit activée par la prise en charge d'un kernel = moteur du Système démarré montant les volumes. Il faudra donc que tu démarres en mode secours > ce qui avec les OS apfs récents clone en RAM à la volée l'OS de secours du volume Recovery > ce qui fait que le Mac se trouve démarré sur la RAM en indépendance du disque. Ce qui permet de démonter tous les volumes du disque interne > et par là de décharger la GPT de sa prise en charge par le kernel.

Ok compris, disponible à ta convenance pour la suite.

Un grand merci !
 

Skanda

Membre junior
24 Octobre 2007
30
0
Super Macomaniac, je suis disponible maintenant. Merci.

S'il est préférable de discuter en MP tu me dis.
 
Dernière édition:

macomaniac

Ouroboros
Club MacG
20 Septembre 2012
83 039
24 983
Forêt de Fontainebleau
Il faut d'abord > depuis ta session d'utilisateur normale du Conteneur2 > que tu passes une commande lisant la table GPT de disque interne. Pour connaître l'actuelle distribution des blocs qu'elle gère. Mais cette commande est bloquée en cas d'activation du SIP (protocole de sécurisation).

- donc passe la commande préalable :​
Bloc de code:
csrutil status
  • qui affiche le statut du SIP

Poste le retour.
 

Skanda

Membre junior
24 Octobre 2007
30
0
Je l'ai désactivé hier soir pour pouvoir faire mes tests. Je te remets ci-dessous le résultat que je viens de refaire par précaution:

Bloc de code:
Didooou ~ % csrutil status
System Integrity Protection status: disabled.
 

macomaniac

Ouroboros
Club MacG
20 Septembre 2012
83 039
24 983
Forêt de Fontainebleau
Parfait : tu peux directement passer la commande.

- donc passe la commande :​
Bloc de code:
sudo gpt show disk0
  • à 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 en : secteur de boot des tables de partitions > partitions > bandes d'espace d'espace > sauvegarde de la GPT principale en queue de disque

Poste le tableau obtenu.
 

Skanda

Membre junior
24 Octobre 2007
30
0
Que voici:

Bloc de code:
Didooou ~ % sudo gpt show disk0

Password:

      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   70769658      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
   70846464   51291664      3  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
  122138128          4         Sec GPT table
  122138132          1         Sec GPT header
 

macomaniac

Ouroboros
Club MacG
20 Septembre 2012
83 039
24 983
Forêt de Fontainebleau
Parfait. On voit la partition à éditer -->
Bloc de code:
      76806   70769658      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
  • via un nouveau descripteur GPT qui doit la déterminer ainsi -->
Bloc de code:
      76806   80322298      2  GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC

----------

Voici un petit tuto pour le démarrage en mode secours -->

- démarre les 2 touches ⌘R (cmd R) tenues pressées jusqu'à l'affichage d'une  = démarrage sur l'OS de secours. Tu obtiens un écran affichant une fenêtre de 4 Utilitaires macOS. Va à la barre de menus supérieure de l'écran > menu : Utilitaires > sous-menu : Terminal.​

Passe la commande  :
Bloc de code:
diskutil list internal
  • tu vas voir s'afficher la configuration du disque interne seule

Voici comment tu vas pouvoir poster ici ce tableau sans avoir besoin de prendre de photo (fais l'effort de poster en mode texte --> ça te facilitera la vie pour une longue commande à venir) -->

  • tu sélectionnes le tableau > ⌘C pour le copier dans le presse-papier > ⌘Q pour quitter le «Terminal» > option  : "Obtenir de l'aide en ligne" (dans la fenêtre des 4 Utilitaires) > ce qui lance un navigateur «Safari»
  • page Apple par défaut > un clic sur l'adresse de haut de page pour l'éditer > saisis  : macgénération (tout court  : c'est une barre de recherche Google) et valide > tu atteins le site MacGé > Forums > te connectes > ce fil > tu colles dans un bloc de code

=> ces informations montreront si tu es bien démarré sur la RAM > ce qui permettra de désactiver la GPT du disque interne.

Note 1 : si tu ne peux pas poster via le Safari de la session de secours (ça arrive) --> poste une photo du tableau (à partir du commencement = le disque /dev/disk0 ou disque physique interne) - tu as un bouton : "Joindre un fichier" en bas de cette page.

Note 2 : dans la session de secours > les applications se lancent en mode "alternatif" et pas parallèle. Il faut quitter le Terminal pour lancer Safari. Vice-versa > quitter Safari pour récupérer l'écran général de la session de secours et pouvoir relancer le Terminal. Aucun redémarrage n'est requis.
 

Skanda

Membre junior
24 Octobre 2007
30
0
Voici le resultat

Bloc de code:
-bash-3.2# diskutil list internal
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI ⁨EFI⁩                     314.6 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk1⁩         289.9 GB   disk0s2
   3:                 Apple_APFS ⁨Container disk3⁩         210.1 GB   disk0s3

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

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +210.1 GB   disk3
                                 Physical Store disk0s3
   1:                APFS Volume ⁨Macintosh HD - Données⁩  19.6 GB    disk3s1
   2:                APFS Volume ⁨Preboot⁩                 295.4 MB   disk3s2
   3:                APFS Volume ⁨Recovery⁩                613.7 MB   disk3s3
   4:                APFS Volume ⁨VM⁩                      20.5 KB    disk3s4
   5:                APFS Volume ⁨Macintosh HD⁩            15.1 GB    disk3s5
 

Skanda

Membre junior
24 Octobre 2007
30
0
Ca donne ceci:

Bloc de code:
-bash-3.2# diskutil unmountDisk force disk3
Forced unmount of all volumes on disk3 was successful

-bash-3.2# diskutil list internal
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI ⁨EFI⁩                     314.6 MB   disk0s1
   2:                 Apple_APFS ⁨Container disk1⁩         289.9 GB   disk0s2
   3:                 Apple_APFS ⁨Container disk3⁩         210.1 GB   disk0s3

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

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +210.1 GB   disk3
                                 Physical Store disk0s3
   1:                APFS Volume ⁨Macintosh HD - Données⁩  19.6 GB    disk3s1
   2:                APFS Volume ⁨Preboot⁩                 295.4 MB   disk3s2
   3:                APFS Volume ⁨Recovery⁩                613.7 MB   disk3s3
   4:                APFS Volume ⁨VM⁩                      20.5 KB    disk3s4
   5:                APFS Volume ⁨Macintosh HD⁩            15.1 GB    disk3s5

-bash-3.2#