usually creating RAM disks works with the following commands
hdid -nomount ram://
Returns e.g. /dev/disk2 Then I would format
@Glyph provided the best answer in a comment to the accepted answer, but it deserves its own answer:
diskutil partitionDisk $(hdiutil attach -nomount ram://$((2048*sizeInMB))) 1 GPTFormat APFS 'Ramdisk' '100%'
Change sizeInMB
to your desired size.
I've updated Glyph's answer to simplify the volume name a little.
Also, info to delete/destroy the RAM disk needs to be corrected. ramdisk will be created at path /Volumes/'ramdisk', so the command is:
diskutil eject /Volumes/'ramdisk'
Found a solution:
hdid -nomount ram://<blocksize>
diskutil erasedisk <format> <diskname> <output path of previous hdid command>
where <format>
is taken from diskutil listFilesystems
from the "Personality" column. Yes, it seems weird to me too that you may have to quote this parameter, e.g. when specifying case-sensitive variants, but oh well...
<blocksize>
is 2048 * desired size in megabytes
The last command formats the RAM disk and mounts it to /Volumes/<diskname>
It seems to be the case that when now entering diskutil list
that you will see two new disks, the one hdid
created, and a synthesized one.
To destroy the RAM disk again, call diskutil eject <output path of previous hdid command>
, e.g. diskutil eject /dev/disk2
This will do all the work for you, unmounting the /Volumes/<diskname>
path and destroy the two disks, releasing your memory.
Keep in mind that the minimum/maximum values for <blocksize>
depend on the chosen <format>
. Also, <diskname>
cannot always be chosen arbitrarily. Exemplary, FAT32 requires it to consist of upper-case letters!
Cheers!