Pour déterminer ce qui ne va pas avec vos disques durs ou vos volumes, vous devez d'abord avoir une vue d'ensemble. Les meilleurs outils pour y parvenir sont diskutil
y gpt
- deux outils de ligne de commande qui doivent être exécutés dans Terminal.app.
Ouvrez Terminal.app et entrez :
diskutil list
Pour exécuter une commande, vous devez toujours saisir la commande Enter clé.
La commande ci-dessus donnera quelque chose comme ceci (en fonction du nombre de disques dans votre Mac) :
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 499.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk1
1: EFI EFI 209.7 MB disk1s1
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk2
2: Microsoft Basic Data tower 1 1.0 TB disk2s2
L'exemple montre ce qui suit :
- disk0 est votre lecteur système contenant une partition EFI (disk0s1), votre volume système principal "Macintosh HD" (disk0s2) et un volume de récupération (disk0s3). La taille de toutes les partitions (0.2 GB + 499 GB + 0.7 GB) est égale à la taille totale du disque (500 GB).
- disk1 est un disque de 1 To contenant uniquement une EFI d'une taille de 200 Mo et avec 999,8 Go d'espace vide.
- disk2 est un disque de 1 To contenant un volume de 1 To probablement formaté en FAT32, ExFAT ou NTFS.
On peut maintenant en déduire que le volume manquant tour 2 résidait autrefois sur le disque 1.
Après un redémarrage, les identifiants du deuxième et du troisième disque peuvent être échangés ! Donc, exécutez toujours diskutil list
avant de manipuler les tables de partition !
Pour obtenir un aperçu plus précis du disque 1, utilisez gpt
:
sudo gpt -r show /dev/disk1
Cela va révéler :
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 1953115495
1953525135 32 Sec GPT table
1953525167 1 Sec GPT header
Cela signifie :
- Le disque possède une table de partition GUID (GPT).
- La première partition (index = 1) est une partition de type EFI (C12A7328-F81F-11D2-BA4B-00A0C93EC93B), commençant au bloc 40 et ayant une taille de 409600 blocs (~209.7 MB).
- A partir du bloc 409640 1953115495 blocs (~1 TB) du disque ne sont pas alloués à une partition.
Vous pouvez supposer que votre partition "perdue" (avec le nom de volume tour 2 ) a autrefois résidé ici.
Après avoir ajouté une partition, elle doit être formatée et un système de fichiers doit être créé. Le système de fichiers peut être (entre autres) : HFS+, ExFAT ou NTFS
Si vous connaissez le système de fichiers précédent, vous pouvez continuer à restaurer une partition. Si vous ne connaissez pas le système de fichiers, vous pouvez le déterminer en recherchant les en-têtes typiques du système de fichiers.
Pour déterminer une utilisation antérieure du volume de HFSJ :
sudo hexdump /dev/disk1 | grep "48 46 53 4a"
Cela va rechercher la chaîne "HFSJ" sur votre disque brut. Après avoir obtenu les premiers résultats, entrez simplement ctrlC pour interrompre la commande.
Sur votre type de disque, vous devriez obtenir les résultats suivants :
c805400 48 2b 00 04 80 00 20 00 48 46 53 4a 00 00 01 ff
ca13e00 48 2b 00 04 80 00 20 00 48 46 53 4a 00 00 01 ff
ca40e00 48 2b 00 04 80 00 20 00 48 46 53 4a 00 00 01 ff
...
Ici, la ligne importante est la première : c805400 48 2b 00 04 80 00 20 00 48 46 53 4a 00 00 01 ff
avec c805400 étant le décalage en hexagone. Convertie avec un service hex2dec cela signifie un décalage de l'octet 209736704 (en divisant cela par 512 octets/bloc, le résultat est égal au bloc 409642). En général, le troisième bloc d'un volume HFSJ contient la chaîne "HFSJ". Vous avez donc trouvé le début d'un volume HFSJ : bloc 409640 ( BlockF ).
La fin d'un volume HFSJ peut être trouvée en conséquence car le 3ème dernier bloc contient la dernière occurrence HFSJ :
sudo hexdump -s 930g /dev/disk1 | grep "48 46 53 4a"
L'option -s signifie : Sauter les octets de décalage à partir du début de l'entrée.
Avec le dernier décalage (et en faisant le calcul comme ci-dessus), vous pouvez déterminer le dernier bloc ( BlocL) du volume HFSJ précédent en ajoutant simplement 2 blocs. La taille du volume HFSJ est alors de (BlocL-BlocF).
Après avoir rassemblé toutes les données nécessaires, vous pouvez maintenant essayer de restaurer le volume perdu. tour 2 avec le sudo gpt add ...
mando.
Pour ajouter une entrée de partition, vous devez exécuter :
sudo gpt add -i number -b number -s number -t type diskX
avec
- -i numéro d'index
- -b numéro du premier bloc
- -s taille en blocs
- -t type de partition
Je ne connais ni le premier ni le second décalage de votre volume. tour 2 mais la commande ci-dessous peut fonctionner et les tailles entrées sont probablement des valeurs par défaut :
sudo gpt add -2 -b 409640 -s 1952443704 -t 48465300-0000-11AA-AA11-00306543ECAC /dev/disk1
Après avoir ajouté cette entrée dans la table de partition, le volume devrait être monté automatiquement.
Vérifiez le disque et le volume avec :
diskutil verifyDisk disk1
diskutil verifyVolume disk1s2
Si une réparation est nécessaire, utilisez la réparation "préfixe" au lieu de vérifier !
Si vous avez des questions ou si vous ne trouvez pas la chaîne "HFSJ", veuillez ajouter un commentaire à l'adresse suivante @klanomath !