由于 Debian 上的 RAM 不足,我需要将 /tmp 移动到 SSD 驱动器。但我仍然不知道如何做到这一点,以便使用它的程序仍然可以在 /tmp 路径下访问它。
所以基本上,我想要实现的是将 /tmp 从 ramdisk 移动到例如 /home/tmp。并且能够通过/tmp访问它
答案1
systemctl mask tmp.mount
该命令指示systemd
不要tmpfs
在 /tmp 上安装基于 RAM 的文件系统 ( )。要应用更改,您必须重新启动系统。
在大多数情况下,这就是您需要做的全部。无需将 /tmp 重定向到 /home/tmp 或其他任何地方。官方推荐这个方法系统文档 --
我只是想摆脱 tmpfs 支持的 /tmp!
您有三个选择:
- 禁用 /tmp 上的任何安装,以便它与根目录驻留在同一物理文件系统上。为此,执行
systemctl mask tmp.mount
- 将不同的物理文件系统安装到 /tmp。为此,只需在 /etc/fstab 中为其创建一个条目,就像对任何其他文件系统所做的那样。
- 保留 /tmp 但增加/减少其大小。为此,只需在 /etc/fstab 中为其创建一个条目,就像对任何其他 tmpfs 文件系统所做的那样,并使用正确的 size= 选项。
为什么不需要将 /tmp 例如重定向到 /home/tmp?
上面应该将 /tmp 保留为内部可写目录/
(根文件系统)。适用于 Debian 或大多数其他 Linux 发行版的软件应该仅将 /tmp 用于一小部分文件,因此我不必担心根文件系统中的空间不足。此要求主要源于 /tmp 可能是 RAM 文件系统的想法:-)。
- https://systemd.io/TEMPORARY_DIRECTORIES.html
- /tmp 和 /var/tmp 有什么区别?[unix.stackexchange.com]
您无需担心 /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
# ...