Create APFS RAM disk on macOS High Sierra

后端 未结 3 1205
余生分开走
余生分开走 2021-01-30 11:24

usually creating RAM disks works with the following commands

hdid -nomount ram://

Returns e.g. /dev/disk2 Then I would format

相关标签:
3条回答
  • 2021-01-30 11:37

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

    0 讨论(0)
  • 2021-01-30 11:52

    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'
    
    0 讨论(0)
  • 2021-01-30 12:03

    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!

    0 讨论(0)
提交回复
热议问题