将/ tmp移至RAM


16

我正在尝试移至/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
tmpfs被认为是有害的。值得深思。
sr_

8
@sr_对不起,我非常不同意链接的文章。/tmp可以并且应该用于临时文件,这就是重点。/tmp是不是应该在重新启动后幸存下来(/var/tmp用于此目的),谁撰写的电子邮件只有RAM + swap大小的一半(不保存)?
Marco

@Marco当然,我只是扔了一些我认为相关的东西。
sr_

Answers:


19

你不必做这一切,你可以安装/tmptmpfs通过使用像下面一行/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

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


克里斯,我的观点是“最佳做法”。开发人员将本机支持放在/ tmp上... / shm; 我读过最好重新使用相同的tmpfs。
马西莫

3
@Massimo我的观点是最佳实践是绑定mount。它增加了不必要的复杂性。
克里斯·

5
@Massimo您在哪里找到这种“最佳实践”?我反对将其挂载/tmp为tmpfs 的唯一原因是因为您现在拥有2个可能的tmpfs文件系统,它们可以填满并使用更多的内存(/tmp/dev/shm)。但是,如果您真的担心要填满2个tmpfs挂载,则可以减小tmpfs挂载的最大大小。
Patrick

@ChrisDown绑定安装有什么不好?还有一个tmpfs可能会使事情变得更简单吧?
CMCDragonkai 2014年

2
@CMCDragonkai绑定坐骑在内部并不是很简单,它们带有许多您可能不希望看到的不直观的警告(一个特别公开的警告是关于需要重新安装只读坐骑的戏剧)。只需使用两个tmpfs安装座即可。
克里斯·唐纳 Chris Down)2014年

17

/etc/default/tmpfs是for sysvinit,对于systemd(自jessie以来默认为Debian),您只需要执行以下操作:

systemctl enable tmp.mount

在Debian Stretch上

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

请参阅https://bugs.debian.org/cgi-bin/bugreport.cgi上的 changelog bug = 787542#74


谢谢!这是在Jessie中将/ tmp移至tmpfs的正确方法。
Yasiru G

非常感谢!在gentoo上,我不明白为什么我的/ tmp挂载了tmpfs。systemd脚本tmp.mount可以做到。
ufk

4

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.