Title : Use ramdisk on /tmp on OpenBSD
Author: Solène
Date : 08 May 2018
Tags : openbsd66 openbsd
If you have enough memory on your system and that you can afford to
use a few hundred megabytes to store temporary files, you may want to
mount a mfs filesystem on /tmp. That will help saving your SSD drive,
and if you use an old hard drive or a memory stick, that will reduce
your disk load and improve performances. You may also want to mount a
ramdisk on others mount points like ~/.cache/ or a database for some
reason, but I will just explain how to achieve this for /tmp with is a
very common use case.
First, you may have heard about **tmpfs**, but it has been disabled in
OpenBSD years ago because it wasn't stable enough and nobody fixed
it. So, OpenBSD has a special filesystem named **mfs**, which is a FFS
filesystem on a reserved memory space. When you mount a mfs
filesystem, the size of the partition is reserved and can't be used
for anything else (tmpfs, as the same on Linux, doesn't reserve the
memory).
Add the following line in /etc/fstab (following fstab(5)):
swap /tmp mfs rw,nodev,nosuid,-s=300m 0 0
The permissions of the mountpoint /tmp should be fixed **before**
mounting it, meaning that the `/tmp` folder on `/` partition
should be changed to 1777:
# umount /tmp
# chmod 1777 /tmp
# mount /tmp
This is required because **mount_mfs** inherits permissions from the
mountpoint.