将 /tmp 移动到 RAM

将 /tmp 移动到 RAM

我正在尝试转向/tmpRAM 并遵循良好实践:

  • /var/tmp不应放置在 中tmpfs,因为它必须在重新启动后仍然存在

  • /tmp作为独立安装tmpfs,而是依赖/dev/shm/run/shm

然而,2.6 和 3.2 内核之间的情况发生了变化:

tmpfs 文件系统的配置和默认值的更改

在 3.2 内核上,RAMTMP=yes/etc/default/tmpfs.

我的问题是:如何使用旧内核实现这个目标?

我的选择是也不修改 /etc/fstab :

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

RAMTMP2.6 内核有类似的东西吗?

答案1

您不必执行所有这些操作,只需使用如下所示的行/tmp进行安装即可:tmpfs/etc/fstab

tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0

您也可以实时执行此操作(但请记住,/tmp除非通过 inode 和当前打开的文件描述符,否则无法访问当前文件系统中当前的内容,因此您应该通过修改/etc/fstab和重新启动来执行此操作):

mount -o mode=1777,nosuid,nodev -t tmpfs tmpfs /tmp

注意atmpfs可以交换。如果您想要一个真正仅 RAM 的文件系统,请使用ramfs.

答案2

/etc/default/tmpfs是 for sysvinit, for systemd(Debian 自 jessie 以来的默认设置)你只需要执行以下操作:

systemctl enable tmp.mount

在 Debian Stretch 或更高版本上:

cp /usr/share/systemd/tmp.mount /etc/systemd/system/
systemctl enable tmp.mount

变更日志

有关 RAMDISK/tmpfs 的更多详细信息,请参阅SSD优化Debian 维基页面。

答案3

我知道这相当旧,但在 Debian 类型的发行版中,在 /etc/default/tmpfs 中设置 Set RAMTMP、RAMRUN 和 RAMLOCK (/etc/default/rcS 或 wheezy 之前)可以完成相同的工作。

相关内容