9 votos

Crear un disco RAM APFS

Hay varios recursos sobre cómo crear un disco RAM, pero todos tratan de discos RAM HFS+. Pero, ¿cómo se crea un disco RAM APFS?

Intenté pasar APFS como sistema de archivos al diskutil como el de abajo, pero eso no funciona. Desde diskutil tiene un montón de subcomandos relacionados con APFS supongo que hay más magia necesaria.

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

0 votos

¿es esto más rápido que el hfs?

1 votos

Interesante pregunta. Pero tengo curiosidad por saber cuáles serían los beneficios de APFS para un ramdisk

7voto

klanomath Puntos 19587

Funciona si primero creas un volumen JHFS+ y lo conviertes a APFS en un segundo paso:

  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 el disco RAM tiene un tamaño de 2 GiB (4 * 1024 * 1024)(tamaño_de_bloque) o menor no se crea ninguna partición EFI y el tercer comando es: diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1) o más generalmente:

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

Resultado:

...
/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

0 votos

Gracias. En mi prueba, necesitaba usar s1 en lugar de s2 en el tercer comando, ¡pero ha funcionado!

3voto

siva Puntos 23

Tienes que crear un contenedor APFS y añadir tu volumen APFS dentro.

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

Debido a lo que parece ser un error en High Sierra, esto no es posible, ya que obtendrá el siguiente error:

Error: -69802: Se requiere una partición, no un disco entero, para esta operación

Este es el mismo error que recibes si lo intentas en la Utilidad de Discos.

Sin embargo, funciona al menos en MacOS 10.15 Catalina.

1 votos

Así que así es como es supuestamente que funcione, pero no funciona?

0 votos

@Dark Sí, hasta donde yo sé

0 votos

¡Acabo de probar esto en MacOS 10.15 y ahora funciona! Pero hay que pasar la ruta completa al dispositivo (por ejemplo /dev/disk4 ), por lo que el comando es ahora: diskutil apfs create "$DISK_ID" "RAM Disk"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X