10.13 High Sierra Récupérer données APFS container corrompu

Ah oui : c'est vrai que le nom du volume source est Sophie. Alors hop ! opération clonage.

Passe d'abord la commande :
Bloc de code:
caffeinate -dimsu &

  • qui va empêcher le Mac de dormir pendant l'opération ; elle passe sans commentaire

Passe ensuite la commande :
Bloc de code:
cp -av /Volumes/Sophie/* /Volumes/Clone

  • un espace entre /* et /Volumes---
  • la commande clone Sophie dans Clone
  • une ligne s'affiche par fichier copié
  • la copie suit l'ordre alphabétique des dossiers > sous-dossiers > fichiers

=> si tu vois un défilé de lignes démarrer à l'écran > c'est que le clonage est lancé. Attends jusqu'à l'arrêt du défilé et au retour de l'invite de commande -bash-3.2# en signal de complétion. Tu peux laisser ton Mac sans surveillance. Préviens quand tout est fini.
 
Quelques infos de plus pour avancer (j'anticipe :) ) :
Bloc de code:
-bash-3.2# df -H
Filesystem     Size   Used  Avail Capacity iused               ifree %iused  Mounted on
/dev/disk2s1   2.0G   1.3G   720M    64%   45181          4294922098    0%   /
devfs          210k   210k     0B   100%     712                   0  100%   /dev
/dev/disk4     5.2M   1.9M   3.4M    37%      27          4294967252    0%   /private/var/log
/dev/disk5     524k   147k   377k    29%       6          4294967273    0%   /Volumes
/dev/disk6     524k   147k   377k    29%       7          4294967272    0%   /private/var/tmp
/dev/disk7     524k   160k   365k    31%      12          4294967267    0%   /private/var/run
/dev/disk8     2.1M   143k   2.0M     7%       2          4294967277    0%   /private/tmp
/dev/disk9     524k   147k   377k    29%       3          4294967276    0%   /System/Installation
/dev/disk10    524k   303k   221k    58%      21          4294967258    0%   /private/var/db
/dev/disk11     13M   7.1M   5.5M    57%      84          4294967195    0%   /private/var/folders
/dev/disk12    4.2M   4.0M   188k    96%     409          4294966870    0%   /private/var/root/Library
/dev/disk14    2.1M   143k   2.0M     7%       2          4294967277    0%   /private/var/root/Library/Containers
/dev/disk15    524k   180k   344k    35%      11          4294967268    0%   /Library/Preferences
/dev/disk16    524k   164k   360k    32%       6          4294967273    0%   /Library/Preferences/SystemConfiguration
/dev/disk17    1.0M   201k   848k    20%       6          4294967273    0%   /Library/Keychains
/dev/disk18    6.3M   176k   6.1M     3%       2          4294967277    0%   /private/var/tmp/RecoveryTemp
/dev/disk19    6.3M   176k   6.1M     3%       2          4294967277    0%   /private/var/tmp/OSISPredicateUpdateProductTemp
/dev/disk20    524k   143k   381k    28%       2          4294967277    0%   /private/var/tmp/InstallerCookies
/dev/disk21    2.1M   143k   2.0M     7%       2          4294967277    0%   /Library/Logs/DiagnosticReports
/dev/disk1s3   480G   519M   226G     1%      18 9223372036854775789    0%   /Volumes/Image Volume
/dev/disk1s1   480G   251G   226G    53%  854829 9223372036853920978    0%   /Volumes/Sophie
/dev/disk3s2   500G   299G   201G    60%  855017          4294112262    0%   /Volumes/Clone
 
299 Go dans Clone et 251 Go dans Sophie : + 48 Go sur la destination. Substantiel mais non inhabituel avec une source corrompue. Le clone doit être valable.

À présent > question : souhaites-tu réinstaller High Sierra 10.13 ? - ou passer à Mojave 10.14 (si le Mac est compatible) ? -->

- je pose la question > car en fonction de l'option choisie > le procédé de réinstallation va différer...​
 
Mon Macbook pro est de mi 2010, je crois qu'il n'est pas compatible, en tout cas c'est le message que j'avais dans l'Appstore quand je voulais mettre à jour. Donc sauf info contraire de ta part, on reste sur 10.13.
Comment s'y prend-ton ?
 
Alors il faut manœuvrer pour préparer la réinstallation. Passe la commande :
Bloc de code:
diskutil resizeVolume disk3s2 495g jhfs+ BOOT 0b

  • le 0 de 0b est un zéro
  • la commande rétrécit (non destructivement) la partition de Clone à 495 Go et crée une partition subalterne de + 4 Go avec un volume intitulé BOOT

Poste l'affichage retourné.
 
Et voici :
Bloc de code:
-bash-3.2# diskutil resizeVolume disk3s2 495g jhfs+ BOOT 0b
Resizing to 495000000000 bytes and adding 1 partition
Started partitioning on disk3s2 Clone
Verifying the disk
Verifying file system
Volume was successfully unmounted
Performing fsck_hfs -fn -x /dev/rdisk3s2
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking catalog hierarchy
Checking extended attributes file
Checking volume bitmap
Checking volume information
The volume Clone appears to be OK
File system check exit code is 0
Restoring the original state found as mounted
Resizing
Shrinking file system
Modifying partition map
Initialized /dev/rdisk3s3 as a 4 GB case-insensitive HFS Plus volume with a 8192k journal
Mounting disk
Finished partitioning on disk3s2 Clone
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk3
   1:                        EFI EFI                     209.7 MB   disk3s1
   2:                  Apple_HFS Clone                   495.0 GB   disk3s2
   3:                  Apple_HFS BOOT                    4.6 GB     disk3s3
 
Tu disposes donc d'un petit volume auxiliaire -->
Bloc de code:
   3:                  Apple_HFS BOOT                    4.6 GB     disk3s3

  • passe à présent la commande :
Bloc de code:
asr restore --s / --t /Volumes/BOOT --erase --noprompt

  • mets les doubles tirets -- là où tu les vois ; il y a bien une barre oblique / un espace libre après --s
  • la commande appelle l'utilitaire asr (apple_software_restore) > pour cloner en mode "copie de blocs" > le volume OS X Base System de l'OS de secours 10.13.6 démarré => dans le volume BOOT. L'emploi du procédé asr : "copie de blocs" avec une source constituée par un volume monté démarré indémontable --> est possibilisée par le seul fait que le volume OS X Base System source soit monté en mode "lecture seule".
  • en conséquence : le volume BOOT va être reformaté > renommé OS X Base System comme la source > restauré d'un clone absolu du volume source > doté d'un chemin de démarrage pointant au lanceur boot.efi de l'OS de secours cloné

Quand l'opération est finie --> poste l'affichage retourné.
 
Dernière édition par un modérateur:
On commence à être pas mal...
Bloc de code:
-bash-3.2# asr restore --s / --t /Volumes/BOOT --erase --noprompt
    Validating target...done
    Validating source...done
    Validating sizes...done
    Restoring  ....10....20....30....40....50....60....70....80....90....100
    Verifying  ....10....20....30....40....50....60....70....80....90....100
    Remounting target volume...done
 
Opération réussie : tu as un clone de volume de secours démarrable sur le DDE.

Voici le sens de la manœuvre -->

- pour réinstaller le volume apfs Sophie > il faut supprimer le Conteneur apfs total du disque interne. Or le volume Recovery de l'OS de secours actuellement démarré en fait partie. Pour pouvoir supprimer le Conteneur entier > et réinstaller l'OS ultime supporté High Sierra > tu vas démarrer sur le volume clone OS X Base System du DDE. Car l'option de démarrer par internet via ⌘⌥R --> ferait télécharger en RAM un OS de secours 10.14 incompatible.​

Redémarre (Menu  > Redémarrer) > et presse aussitôt la touche "alt". À l'écran de choix du volume de démarrage > choisis OS X Base System et démarre dessus. Tu réobtiens le même écran avec une fenêtre de 4 Utilitaires macOS.

Passe la commande :
Bloc de code:
diskutil list

  • et poste le tableau des disques (c'est pour le cas où l'index de disque virtuel du Conteneur apfs aurait varié après ce démarrage).
 
Voici :
Bloc de code:
-bash-3.2# diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *480.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         479.9 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +479.9 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Sophie                  251.3 GB   disk1s1
   2:                APFS Volume Preboot                 20.5 MB    disk1s2
   3:                APFS Volume Recovery                518.8 MB   disk1s3
   4:                APFS Volume VM                      2.1 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS Clone                   495.0 GB   disk2s2
   3:                  Apple_HFS OS X Base System        4.6 GB     disk2s3

/dev/disk3 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +5.2 MB     disk3

/dev/disk4 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk4

/dev/disk5 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk5

/dev/disk6 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk6

/dev/disk7 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk7

/dev/disk8 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk8

/dev/disk9 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk9

/dev/disk10 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +12.6 MB    disk10

/dev/disk11 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +4.2 MB     disk11

/dev/disk12 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk12

/dev/disk13 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk13

/dev/disk14 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk14

/dev/disk15 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk15

/dev/disk16 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +1.0 MB     disk16

/dev/disk17 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk17

/dev/disk18 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +6.3 MB     disk18

/dev/disk19 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +524.3 KB   disk19

/dev/disk20 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            untitled               +2.1 MB     disk20
 
Passe la commande :
Bloc de code:
diskutil ap deleteContainer disk1 Sophie

  • la commande supprime l'apfs du disque interne > reformate sa partition en jhfs+ > remonte un volume Sophie classique

Poste l'affichage retourné.
 
La suppression du Conteneur supprime les 4 volumes apfs qui partageaient son espace - dont Sophie disk1s1. Dont les données sont sauvegardées dans Clone. Le nouveau volume Sophie destination de la réinstallation sera vide.
 
C'est un clone selon le procédé "copie de fichiers" et pas "copie de blocs". Avec le surplus de taille qu'on a constaté --> ce doit être un clone suffisant.