Ce message d'erreur se produit lorsqu'il y a peu ou pas d'espace libre directement sous le conteneur APFS que vous essayez d'agrandir. Par exemple, voici le conteneur diskutil list disk2
sortie d'une image de disque où la quasi-totalité de l'espace libre a été allouée à des partitions.
/dev/disk2 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.0 TB disk2
1: EFI EFI 209.7 MB disk2s1
2: Apple_HFS tbd 749.9 GB disk2s2
3: Apple_APFS Container disk3 249.8 GB disk2s3
On peut voir 209.7 MB + 749.9 GB + 249.8 GB = 1.000 TB
. Si les commandes suivantes sont saisies, alors disk2s1
y disk2s2
sera converti en espace libre.
diskutil erasevolume free none disk2s1
diskutil erasevolume free none disk2s2
La sortie résultante de diskutil list disk2
Après avoir saisi les commandes ci-dessus, le résultat est le suivant.
/dev/disk2 (disk image):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme +1.0 TB disk2
1: Apple_APFS Container disk3 249.8 GB disk2s3
La commande ci-dessous peut être utilisée pour renvoyer l'espace libre situé directement sous une partition apfs vers le conteneur apfs inclus.
diskutil apfs resizeContainer disk2s3 0
Cependant, comme tout l'espace libre significatif se trouve au-dessus de la partition, le message d'erreur suivant est généré.
Started APFS operation
Error: -69743: The new size must be different than the existing size
La position et la taille exactes de la disk2s3
peut être déterminée en entrant la commande suivante.
diskutil info disk2s3 | grep -e Offset -e Size
Dans ce cas, la commande produit le résultat suivant.
Partition Offset: 750209736704 Bytes (1465253392 512-Byte-Device-Blocks)
Disk Size: 249.8 GB (249790263296 Bytes) (exactly 487871608 512-Byte-Units)
Device Block Size: 512 Bytes
La somme suivante permet d'obtenir la position finale du disk2s3
partition.
750,209,736,704 bytes 249,790,263,296 bytes = 1,000,000,000,000 bytes = 1.000 TB
On peut voir qu'il n'y a pas d'espace libre appréciable après le disk2s3
ce qui explique l'apparition du message d'erreur.
La taille exacte de l'image disque peut être déterminée en entrant la commande suivante
diskutil info disk2 | grep Size
Dans ce cas, la sortie est indiquée ci-dessous.
Disk Size: 1.0 TB (1000000020480 Bytes) (exactly 1953125040 512-Byte-Units)
Device Block Size: 512 Bytes
Cela montre qu'il reste 20480 octets d'espace après la fin du fichier disk2s3
partition. Cependant, tout cet espace n'est pas libre. Une partie de cet espace est occupée par la copie de sauvegarde de la table de partition GUID (GPT).
Comme il s'agit d'une image disque, la commande suivante peut être saisie sans avoir à désactiver la protection de l'intégrité du système (SIP).
gpt -r show /dev/disk2
Dans ce cas, la commande produit le résultat suivant.
start size index contents
0 1 PMBR
1 1 Pri GPT header
2 32 Pri GPT table
34 1465253358
1465253392 487871608 1 GPT part - 7C3457EF-0000-11AA-AA11-00306543ECAC
1953125000 7
1953125007 32 Sec GPT table
1953125039 1 Sec GPT header
Cette sortie montre qu'il y a en fait 7 secteurs d'espace libre après le fichier disk2s3
partition. La taille du secteur (taille du bloc du périphérique) étant de 512 octets, l'espace libre est de 3 584 octets. Ce chiffre est inférieur à la taille de bloc d'allocation de 4096 octets requise pour la partition diskutil apfs resizeContainer disk2s3 0
pour continuer.
Actuellement, la taille des blocs d'allocation pour APFS est fixée à 4096 octets. Dans ce cas, la taille du bloc d'allocation peut être confirmée en entrant la commande ci-dessous.
diskutil info disk3s1 | grep Allocation
La sortie de cette commande est illustrée ci-dessous.
Allocation Block Size: 4096 Bytes