9 votes

Créer un disque RAM APFS

Il existe plusieurs ressources sur la création d'un disque RAM, mais elles traitent toutes des disques RAM HFS+. Mais comment créer un disque RAM APFS ?

J'ai essayé de passer APFS en tant que système de fichiers vers le diskutil comme ci-dessous, mais cela ne fonctionne pas. Depuis diskutil possède tout un tas de sous-commandes liées à l'APFS, je suppose qu'il y a plus de magie nécessaire.

DISK_ID=`hdiutil attach -nomount ram://$((4 * 1024 * 2048))`
diskutil eraseVolume APFS "RAM Disk" "$DISK_ID"

7voto

klanomath Points 63400

Cela fonctionne si vous créez d'abord un volume JHFS+ et que vous le convertissez en APFS dans une deuxième étape :

  1. DISK_ID=$(hdiutil attach -nomount ram://$((<number_of_blocks>)))
  2. diskutil eraseDisk JHFS+ "RAM Disk" $DISK_ID
  3. diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s2)

Si le disque RAM a une taille de 2 GiB (4 * 1024 * 1024)(block_size) ou inférieure, aucune partition EFI n'est créée et la troisième commande est : diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1) ou plus généralement :

DISK_ID=$(hdiutil attach -nomount ram://$((<number_of_blocks>)))
SIZE=$(diskutil info $DISK_ID | awk -F'[^0-9]*' '/Disk Size/ {print$4}')
diskutil eraseDisk JHFS+ "RAM Disk" $DISK_ID
if [ $SIZE -le 2147483648 ]; then diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1); else diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s2); fi

Résultat :

...
/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +4.3 GB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                 Apple_APFS Container disk3         4.0 GB     disk2s2

/dev/disk3 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +4.0 GB     disk3
                                 Physical Store disk2s2
   1:                APFS Volume RAM Disk                32.8 KB    disk3s1

3voto

grg Points 181593

Vous devez créer un conteneur APFS et y ajouter votre volume APFS.

DISK_ID=$(hdiutil attach -nomount ram://$((4 * 1024 * 2048)))
diskutil apfs create "$DISK_ID" "RAM Disk"

En raison de ce qui semble être un bug dans High Sierra, ce n'est pas possible, car vous obtiendrez l'erreur suivante :

Erreur : -69802 : Une partition, et non un disque entier, est requise pour cette opération.

C'est la même erreur que vous recevez si vous essayez dans l'Utilitaire de disque.

Il fonctionne au moins sur MacOS 10.15 Catalina.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X