Crear un disco RAM APFS

6

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

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

DISK_ID='hdiutil attach -nomount ram://$((4 * 1024 * 2048))'
diskutil eraseVolume APFS "RAM Disk" "$DISK_ID"
    
pregunta DarkDust 18.09.2017 - 14:10

2 respuestas

6

Funciona si primero crea un volumen JHFS + y lo convierte 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) (block_size) o menor, no se crea una partición EFI y el tercer comando es: diskutil apfs convert $(tr -d ' '<<<${DISK_ID}s1) o más en general:

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
    
respondido por el klanomath 18.09.2017 - 15:15
0

Debe crear un contenedor de APFS y agregar su volumen de APFS en su interior.

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

Esto no es posible debido a lo que parece ser un error en High Sierra, ya que aparecerá el siguiente error:

  

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

Este es el mismo error que recibe si lo intenta en la Utilidad de Discos.

    
respondido por el grg 18.09.2017 - 14:19

Lea otras preguntas en las etiquetas