Mount tmpfs on macOS
Introduction
Some Linux users, especially those who have experience with Gentoo Linux, usually want some portion of their systems mounted as tmpfs. tmpfs will only keep the files in the system’s memory and is convenient for us to throw away files on system reboot. I am definitely one of the fans of tmpfs because tmpfs helps me keep some software from shitting on my computer.
However, when it comes to macOS, mounting a tmpfs seems to be a little bit complex. When I opened my new Macbook, and put “mount tmpfs on macOS” on Google, some results showed up. The answers told me that what I can do is to create a virtual ramdisk and format the ramdisk to a normal filesystem, or rather use FUSE implementations. What a shame! Is macOS such a bad OS that does not support tmpfs?
Commandline Tools in macOS
After doing some research, at least macOS does not mess up things – at least this time. Just type mount in your command line, and let zsh list all the possibilities, and we will have
user@hismacbook ~ $ mount
mount mount_afp mount_cddafs mount_fdesc mount_lifs mount_smbfs mount_virtiofs
mount_9p mount_apfs mount_devfs mount_ftp mount_msdos mount_tmpfs mount_webdav
mount_acfs mount_cd9660 mount_exfat mount_hfs mount_nfs mount_udf
user@hismacbook ~ $ which mount_tmpfs
/sbin/mount_tmpfs
There existed mount_tmpfs
, which is just what we need for mounting a tmpfs.
The man page told me that
HISTORY
The mount_tmpfs utility first appeared in macOS 11.
At least for those Apple Silicon Macbooks, mount_tmpfs
must exist on the system.
Does It Work?
It works like a charm.
With
user@hismacbook /tmp $ mkdir mpvcache && sudo mount_tmpfs -o noowners -s 2g mpvcache
user@hismacbook /tmp $ mount|grep mpvcache
tmpfs on /private/tmp/mpvcache (tmpfs, local, noowners)
I got a two-gigabyte-sized tmpfs for saving the output of mpv
.
mount_tmpfs
really eases my mind.