Comprendre le schéma de partitions d'APFS
L'arrivée d'APFS, le nouveau système de fichier révolutionnaire (mais tout buggé) d'Apple, a changé la manière dont les partitions sont créées et gérées.
Ouvrez un terminal, et observons.
diskutil list
Sur un Mac disposant de deux disques internes, un principal et un dédié à TimeMachine, voici le résultat
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *1.0 TB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_APFS Container disk2 1000.0 GB disk0s2
/dev/disk1 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *2.0 TB disk1
1: EFI EFI 209.7 MB disk1s1
2: Apple_HFS TimeMachine 2000.0 GB disk1s2
/dev/disk2 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +1000.0 GB disk2
Physical Store disk0s2
1: APFS Volume MacPro 688.2 GB disk2s1
2: APFS Volume Preboot 44.0 MB disk2s2
3: APFS Volume Recovery 1.0 GB disk2s3
4: APFS Volume VM 20.5 KB disk2s4
Nous pouvons voir en disk0, le disque principal, en disk1, le backup TimeMachine, ... et en disk3, un autre disque...
Regardons plus en détails, le disque principal (disk0) ne contient pas directement le volume de macOS. Il contient deux partitions.
Une première partition est l'EFI, elle est automatiquement créé lorsque le disque dur est formaté en utilisant un schéma de partition GUID. Cette partition est très importante, contenant une multitude d'information et permettant le boot de votre macOS. N'essayez surtout pas de la supprimer.
La seconde partition, du type Apple_APFS, se nomme "Container disk2". On est bien loin de trouver la partition MacPro de mon Mac, ou Macintosh HD comme sont nommées les partitions systèmes lorsque l'on achète un nouveau Mac.
Continuons donc notre observation avec disk2.
Contrairement aux deux premiers disques, il n'est pas marqué "internal, physical", mais "synthesized". Pour créer son APFS, Apple créé donc un disque virtuel, qui va contenir les données. Après la ligne 0, indiquant qu'il s'agit bien d'un schéma de partition APFS, le résultat nous indique bien que le disque physique est situé en disk0s2, ce qui recoupe bien avec ce que l'on avait vu sur le premier disque.
Maintenant, jetons un oeil aux volumes présents. Nous avons un premier volume MacPro, tant attendu, qui contient le système et les données principales. C'est le seul volume qui est monté par défaut lorsque l'on démarre, les autres resteront cachées. Le second volume est la partition Preboot, le troisième, la partition de recovery, et enfin une dernière pour la partition VM.
La partition de Preboot est un macOS minimal avec le noyau principal, ainsi que quelques informations supplémentaires. C'est lui qui permet, malgré un encryptage du disque, d'accéder à la liste des utilisateurs. En effet, c'est en indiquant que le mot de passe du compte que le Mac sera capable de décrypter et donc d'afficher les données.
La partition de Recovery est celle que vous pouvez accéder via le raccourci de clavier Cmd+R au démarrage. C'est aussi un macOS minimal, mais plutôt axé sur la réparation éventuelle de votre macOS principal. Il permet aussi la réinstallation de macOS. Enfin, le mode Recovery est aussi très utile pour désactiver SIP ou faire d'autres actions de maintenance.
La partition VM est l'espace dédié à la mémoire virtuelle. Autrefois, la VM était présente dans le volume principal, pour n'avoir à gérer qu'un seul volume. Cela permettait aussi au volume principal d'occuper le maximum de place. Aujourd'hui, la VM est externe au volume principal, comme sur la plupart des Linux. Ce choix a certainement été fait pour ne pas que FileVault, appliqué sur l'ensemble du disque, ne passe son temps à crypter et décrypter la VM, ce qui est inutile mais surtout serait très très consommateur de ressource et donc une forte perte de performance.
Comme vous pouvez le voir, la somme des volumes ne fait pas les 1To du disque. Le container contient donc de l'espace libre qu'il distribue soit au volume principal pour ajouter des données, soit au volume VM pour la mémoire virtuelle.
Ainsi malgré une externalisation de la mémoire virtuelle, nous gardons toujours le maximum d'espace sur notre volume principal qui affiche comme taille maximale, celle du container et pas celle du volume.
Si vous souhaitez mieux voir la structure de votre volume APFS, vous pouvez utiliser la commande
diskutil apfs list
Voici le résultat sur le même Mac
APFS Containers (1 found)
|
+-- Container disk2 CFBB077D-6546-4A06-8ED6-2EB46A2AE574
====================================================
APFS Container Reference: disk2
Size (Capacity Ceiling): 999995129856 B (1000.0 GB)
Capacity In Use By Volumes: 689452331008 B (689.5 GB) (68.9% used)
Capacity Not Allocated: 310542798848 B (310.5 GB) (31.1% free)
|
+-< Physical Store disk0s2 68122B24-0CAB-4ADC-A310-28AA825BB63B
| -----------------------------------------------------------
| APFS Physical Store Disk: disk0s2
| Size: 999995129856 B (1000.0 GB)
|
+-> Volume disk2s1 D5601F81-88D8-475B-8388-B1FA4D4DC0F6
| ---------------------------------------------------
| APFS Volume Disk (Role): disk2s1 (No specific role)
| Name: MacPro (Case-insensitive)
| Mount Point: /
| Capacity Consumed: 688171229184 B (688.2 GB)
| FileVault: No
|
+-> Volume disk2s2 0B263A65-9FB0-4812-BCA2-F6EE661B7910
| ---------------------------------------------------
| APFS Volume Disk (Role): disk2s2 (Preboot)
| Name: Preboot (Case-insensitive)
| Mount Point: Not Mounted
| Capacity Consumed: 43966464 B (44.0 MB)
| FileVault: No
|
+-> Volume disk2s3 1927AFFB-A47C-4A82-94DD-78315E63EB98
| ---------------------------------------------------
| APFS Volume Disk (Role): disk2s3 (Recovery)
| Name: Recovery (Case-insensitive)
| Mount Point: Not Mounted
| Capacity Consumed: 1029263360 B (1.0 GB)
| FileVault: No
|
+-> Volume disk2s4 73F2D924-8C75-4C4B-B838-92FF369B73D9
---------------------------------------------------
APFS Volume Disk (Role): disk2s4 (VM)
Name: VM (Case-insensitive)
Mount Point: /private/var/vm
Capacity Consumed: 20480 B (20.5 KB)
FileVault: No
Le résultat est un peu plus complet, mais surtout se focalise sur les volumes contenus dans les containers APFS. Cet affichage donne un peu plus de détails, en particulier si le disque est encrypté par FileVault.