将 /tmp 从 ramdisk 移动到其他分区

将 /tmp 从 ramdisk 移动到其他分区

由于 Debian 上的 RAM 不足,我需要将 /tmp 移动到 SSD 驱动器。但我仍然不知道如何做到这一点,以便使用它的程序仍然可以在 /tmp 路径下访问它。

所以基本上,我想要实现的是将 /tmp 从 ramdisk 移动到例如 /home/tmp。并且能够通过/tmp访问它

答案1

systemctl mask tmp.mount

该命令指示systemd不要tmpfs在 /tmp 上安装基于 RAM 的文件系统 ( )。要应用更改,您必须重新启动系统。

在大多数情况下,这就是您需要做的全部。无需将 /tmp 重定向到 /home/tmp 或其他任何地方。官方推荐这个方法系统文档 --

我只是想摆脱 tmpfs 支持的 /tmp!

您有三个选择:

  1. 禁用 /tmp 上的任何安装,以便它与根目录驻留在同一物理文件系统上。为此,执行 systemctl mask tmp.mount
  2. 将不同的物理文件系统安装到 /tmp。为此,只需在 /etc/fstab 中为其创建一个条目,就像对任何其他文件系统所做的那样。
  3. 保留 /tmp 但增加/减少其大小。为此,只需在 /etc/fstab 中为其创建一个条目,就像对任何其他 tmpfs 文件系统所做的那样,并使用正确的 size= 选项。

为什么不需要将 /tmp 例如重定向到 /home/tmp?

上面应该将 /tmp 保留为内部可写目录/(根文件系统)。适用于 Debian 或大多数其他 Linux 发行版的软件应该仅将 /tmp 用于一小部分文件,因此我不必担心根文件系统中的空间不足。此要求主要源于 /tmp 可能是 RAM 文件系统的想法:-)。

您无需担心 /tmp 随着时间的推移会被陈旧的文件填满。 /tmp 在启动时自动清理:

$ cat /usr/lib/tmpfiles.d/tmp.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details

# Clear tmp directories separately, to make them easier to override
D /tmp 1777 root root -
#q /var/tmp 1777 root root 30d

# There are more lines here, but they are not important to this answer
# ...

相关内容