Convenience wrapper for managing RAM disks across different operating systems with a consistent interface.
Help screen:
$ ramdisk -h
ramdisk 0.1.0 🐏
Usage:
ramdisk [options] create [<mount-path>]
ramdisk destroy <device-path>
Options:
-h -help Show this screen.
-v Verbose output.
-size=<mb> Size in megabytes [default: 32].
Creating a new ram disk with a specified size:
$ ramdisk -size=512 create
512MB ramdisk created as /dev/disk5, mounted at /tmp/ramdisk-401987900
To later remove do: `ramdisk destroy /dev/disk5`
- 💾 Download a precompiled binary.
- 🍺 Homebrew on macOS:
brew install mroth/tap/ramdisk
- 📦 Compile via Go toolchain:
go install github.com/mroth/ramdisk/cmd/ramdisk@latest
Works great and does not require superuser access.
The basic steps followed are:
- Create an unmounted but attached device in RAM that consists of the
appropriate number of device blocks via
hdiutil
. - Format a new uniquely named HFS+ volume on that device via
newfs_hfs
. - Mounts the volume at a uniquely generated path within the
/tmp
filesystem, viamount
.
This normally requires a sequence of arcane commands on the macOS command line which I can never remember, and thus was the primary reason I created this wrapper.
Things are quite simple and work great via tmpfs
on Linux! (But note that most
Linux implementations unfortunately requires sudo access to mount new volumes.)
This would be great, unfortunately there is no built-in support at the operating system level at current time. The standard solution seems to be to use ImDisk, but I haven't built support for that into this library yet because well, relying on third-party drivers to be installed on an end user system isn't going to work.