openSUSE:Tmp 在 tmpfs 上
简介
tmpfs 是驻留在内存中的临时文件系统。将目录挂载为 tmpfs 可以有效地加速对其文件的访问,并确保在重新启动时自动清除其内容。这使其成为一些挂载点(例如 `/tmp`)的逻辑选择
openSUSE Tumbleweed
在 opensuse-factory 邮件列表上从以下地址开始的讨论后,决定将 `/tmp` 挂载为 tmpfs:
https://lists.opensuse.org/opensuse-factory/2020-07/msg00130.html
从 Snapshot 版本 20200806 开始,新安装将默认使用 tmpfs 作为 /tmp。现有系统将不会更改。
将旧安装转换为使用 tmpfs
- 备份您希望从 /tmp 保留的任何文件
- 从 /etc/fstab 中删除 /tmp 的行
- 删除 /tmp 中的所有文件
- 重新启动
在 Snapshot 20200806 之前已经使用 /tmp 在 tmpfs 上的旧安装
在 Snapshot 20200806 之前,一些用户可能已经采取了步骤来使用 systemd 提供的 tmp.mount 单元,该单元已被重新定位到 /usr/share/systemd/tmp.mount。这很可能以以下两种步骤之一的形式进行:
- 运行 "systemctl link /usr/share/systemd/tmp.mount"
- 将 /usr/share/systemd/tmp.mount 复制到 /etc/systemd/system
对于任何一种情况,您首先需要确保您在 /etc/fstab 中没有针对 /tmp 的条目。如果有,请将其删除。
然后,对于 #1,您 *必须* 删除 /etc/systemd/system/tmp.mount,以确保您使用的是作为使 /tmp 在 tmpfs 上默认化的一部分引入的新挂载单元。
对于 #2,删除 /etc/systemd/system/tmp.mount 并非强制性的,但建议这样做,以确保您继续使用最新的 /tmp 在 tmpfs 上的设置,以防未来更新更改我们的推荐设置。
openSUSE Leap
以下过程在 openSUSE Leap 15.2 上进行了测试
- 备份您希望从 /tmp 保留的文件
- 通过执行以下命令清除 /tmp 文件夹:rm -rf /tmp/*
- 从 fstab 中删除包含 /tmp 挂载点的行
- 执行以下命令:systemctl link /usr/share/systemd/tmp.mount
- 重新启动
为 /tmp 使用磁盘空间
如果您不想为 tmp 使用 tmpfs,您只需要在 /etc/fstab 中定义一个挂载点即可。然后 tmpfs 将不再用于 /tmp。
这在使用 btrfs 和创建子卷时最容易,使用 "mksubvolume /tmp" 命令。
或者,您可以使用 "systemctl mask tmp.mount" 屏蔽 /tmp 挂载点。注意:如果您在使用 btrfs 的同时只屏蔽 tmp.mount,您将填满您的根文件系统 *并且* 创建包含 tmp 内容的快照(换句话说,不要这样做,并定义一个子卷)
下次重新启动后,所有写入 /tmp 的文件将再次存储在磁盘上,并将保留在未来的重新启动中。