web-dev-qa-db-fra.com

Récupérer la partition Macbook APFS

Ma question est très similaire à ce fil , mais ma situation est légèrement différente.

Je suis parvenu à réamorcer OS X et Ubuntu depuis deux temps avec deux partitions. J'ai géré les partitions à l'aide de l'utilitaire de disque OS X pour éviter les erreurs de table de partitions pouvant survenir sous Linux, compte tenu de la nouvelle structure APFS.

Récemment, j'ai décidé de réduire la partition OS X et de créer une troisième partition en tant que partition de swap dédiée pour Ubuntu. Encore une fois, j'ai géré les partitions dans l'utilitaire de disque OS X pour éviter les erreurs. J'ai ajouté avec succès la partition de swap dans Ubuntu (je suis bien sûr la partition correcte a été spécifiée) et tout semblait bien. Cependant, après le redémarrage, le gestionnaire de démarrage (stock, pas rEFInd) ne montrait plus OS X comme option de démarrage. J'ai décidé d'utiliser gdisk (merci Rod Smith pour vos incroyables outils de récupération!) Pour vérifier la structure de la table. Il semble que la partition OS X soit toujours reconnue, mais le code de partition FF lui a été attribué. Autant que je sache, tous les secteurs sont beaux, ce qui me laisse croire que toutes mes données sont présentes. Malheureusement, je n'ai pas de sauvegarde car mon lecteur de sauvegarde a récemment disparu. J'ai de la chance.

Puis-je simplement changer le code de type de la partition OS X pour récupérer mes données? De ma compréhension, APFS ne fonctionne pas vraiment de cette façon.

Voici ma sortie de gdisk -l:

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 488397168 sectors, 232.9 GiB
Model: Crucial_CT250MX2
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 37FE5D3B-875C-471A-B4FC-A4887DDA4659
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 488397134
Partitions will be aligned on 8-sector boundaries
Total free space is 13 sectors (6.5 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       416425263   198.4 GiB   FFFF  
   3       416425264       449628383   15.8 GiB    FFFF  
   4       449628384       488397127   18.5 GiB    8300 

La partition 2 est ma partition OS X, la partition 3 est ma partition swap (vous ne savez pas pourquoi elle est également marquée FFFF au lieu de 8200?) Et la partition 4 est la partition Ubuntu.

Voici ma sortie de swapon -s && libre de prouver que je ne suis pas un abruti:

Filename                Type        Size    Used    Priority
/dev/sda3                               partition   16601556    435456  -2

              total        used        free      shared  buff/cache   available
Mem:       16335648     2089764      374952       51452    13870932    14611436
Swap:      16601556      435456    16166100
2
D. Mills

J'ai résolu mon problème en suivant la solution de ce fil et en utilisant le GUID 7C3457EF-0000-11AA-AA11-00306543ECAC car ma partition OS X d'origine était un conteneur APFS plutôt qu'une partition HFS ou volume logique.

En résumé:

1. Boot Mac in Recovery mode (Hold Cmd+R while booting)
2. Open Utilities->Terminal
3. "diskutil list" to identify the partition in question (for me, disk0s2 was marked with GUID FFFF...)
4. gpt -r show disk0" to provide the start sector and size of the disk0 partitions. The output here is very similar to the gdisk -l output of my original post above.
5. "diskutil unmountDisk disk0" to allow the next step...
6. "gpt remove -i 2 disk0" to strip the partition table data associated with the broken partition.
7. "gpt add -b 409640 -i 2 -s 416425263 -t 7C3457EF-0000-11AA-AA11-00306543ECAC"

La partie 7 est l'étape la plus critique . Il ajoute les données correctes à la table de partition et récupère la partition perdue. Voici le détail de l'instruction:

'-b' is the beginning sector of the partition as observed in step 4.
'-i' is the index of the partition to be recovered; in my case, this was disk0s2, so index position 2.
'-s' is the size of the partition as observed in step 4.
'-t' is the GUID type of the partition. Specifically, the originally broken data preventing use of the partition (previously marked FFFF...).
1
D. Mills