现在系统在 LUKS 上使用 LVM,只有 2 个 lvm 分区/
和/home
.
如果我现在想使用tmpfs
for/tmp
和/var/tmp
,我可以只添加必要的更改/etc/fstab
并且它可以在不破坏任何内容的情况下工作吗?或者这会导致任何问题吗?
tmpfs /tmp tmpfs size=16G,noatime 0 0
tmpfs /var/tmp tmpfs size=1G,noatime 0 0
答案1
是的,它应该可以工作 - 假设您有足够的 RAM 用于 16GiB ramdisk 和所有正在运行的应用程序!如果您总共只有 16GiB RAM,那么向 ramdisk 分配如此多的内存并没有意义,因为它可以将正在运行的应用程序(或其本身)部分推入交换空间,因为这会使您的系统速度减慢。
您可能不希望某些现有应用程序使用或尝试使用“隐藏在”安装点后面的临时文件,因此我会重新启动系统以激活此更改,而不是仅仅安装 /tmp 和 /正在运行的系统上的 var/tmp。
另外,如果那里已经有大量临时文件,您可以停止所有正在运行的服务(例如,通过进入单用户模式 - 但如果您必须通过 ssh 连接到计算机,则这将不起作用),然后删除这内容/tmp 和 /var/tmp,在重新启动之前,回收一些磁盘空间和 inode。但不要删除目录本身,因为它们是挂载点并且必须存在。
答案2
现在一个系统使用LVM...
然后您应该遵循该系统的启动过程和安装指南/工具。对于 systemd ,规则是:
/tmp 应该是 tmpfs(速度快,并且文件在重启后无法保存)
/var/tmp 应保留在真实设备上(对于大文件,需要清空)
我发现这两个目录目前仅由 systemd 本身在我的系统上使用;还有更多的事情正在发生
/var/运行
它还安装了 tmpfs。我的 etc/fstab 中没有 tmpfs 行。
并且:某些 initscript 或 systemd 仍然必须挂载这两点,如果可能的话,在正确的时间,一一挂载:
挂载/tmp;挂载 /var/tmp
或者通过滥用 --all 选项:
挂载-a
根据我的 archlinux 上的 systemd,LVM 和 tmp.mount 都是独立且早期完成的。
正如第一个答案中所指出的:当您第一次开始将其挂载为 tmpfs 时,请确保 /tmp 或多或少是空的。否则,您的 /tmp ramdisk 下可能会隐藏数十年的旧 tmp 文件。