tmpfs 上的 tmp:fstab 与 tmp.mount 使用 systemd

tmpfs 上的 tmp:fstab 与 tmp.mount 使用 systemd

/tmp在 tmpfs 上使用,我知道我可以使用 中的条目/etc/fstab,但我不明白 的作用/etc/default/tmpfs 提及有时,以及在什么情况下我需要创建或修改它。

最近,我经常看到建议使用systemdtmp.mount配置。例如,在 Debian 上

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

这两种方法哪一种更适合日常使用?在什么情况下,一种比另一种更好?我什么时候需要处理/etc/default/tmpfs

答案1

在某些系统上,/tmptmpfs默认的,这是配置由 systemd 的“API 文件系统”提供。基于 Fedora 的系统在不同程度上遵循这种模式; Fedora 本身附带/usr/lib/systemd/system/tmp.mount并启用了它,但 RHEL 8 附带了它但没有启用它。在此类系统上,屏蔽和取消屏蔽设备是禁用或启用tmpfs /tmp如 API 文件系统文档中所述

其他系统,例如 Debian不要运送tmp.mount到可直接使用的位置;这就是为什么/etc/systemd/system如果你想使用它,你需要将其复制到。这有一个不幸的副作用,即创建对tmp.mountin的完全覆盖/etc,这意味着如果包将来systemd发布不同版本的tmp.mountin ,它将被忽略。/lib/systemd/system在这样的系统上我建议使用/etc/fstab

在这两种设置中,/etc/fstab仍然是推荐的方式定制安装/tmp,例如改变它们的大小;man systemd.mount

一般来说,通过配置挂载点/etc/fstab是管理人类挂载的首选方法。

API 文件系统文档同意

使用安装单元是推荐用于工具,IE对于自动配置:

对于工具,编写安装单元应优先于编辑/etc/fstab

(这意味着想要自动设置挂载的工具不应该尝试编辑/etc/fstab,这很容易出错,而应该安装一个挂载单元,它可以原子地完成,也可以由系统管理员使用 systemd 覆盖特征。)

/etc/default/tmpfs由 Debian 使用sysvinit,因此与 systemd 无关。

答案2

我总是禁用 /tmp 作为 /tmpfs,因为它会占用宝贵的 RAM,尤其是在 Raspberry Pi 等系统上。
因此,我使用systemctl 掩码 tmp.mount在 systemd 上禁用它。
另外,我不希望每次启动时都清除 /tmp,也不希望考虑在 /var/tmp 中存储半临时文件。
临时对我来说意味着“不是系统关键”,但并不意味着“启动之间不必要”。
因此,我将 /tmp 用于生命周期较短的所有内容,并对其进行管理。
因此,如果您在系统上主要以单个用户身份工作,我建议将 /tmp 保留在根分区上,并且根本不要将其分开。
这还允许在 /tmp 中临时保存大文件,例如压缩档案、下载等,而不会耗尽内存或仅为 /tmp 保留大部分磁盘空间。

相关内容