将 tmp 文件夹从 '/' 分区移动到已挂载分区 (/mnt)

将 tmp 文件夹从 '/' 分区移动到已挂载分区 (/mnt)

我有一个 Amazon EC2 实例,它为我提供了一个很小的“/”分区和一个很大的“/mnt”分区。因此,我将 mysql 数据目录移到了 /mnt 分区。但是,现在我遇到了 /tmp 文件夹在执行大量连接查询时空间不足的问题,因此我也试图将 /tmp 移到 /mnt/tmp。我尝试使用符号链接执行此操作,但这导致 mysql 服务无法启动。

请指导如何将 /tmp 的存储移至 /mnt (/dev/xvdb)

答案1

您可以将/tmp挂载点绑定到/mnt/tmp

sudo mount -B /tmp /mnt/tmp

答案2

移动“/tmp”分区需要一些额外的操作,这个错误答案中没有建议https://askubuntu.com/a/371628/298086

移动数据意味着一旦克隆到目标分区,就从原始分区擦除数据,而绑定挂载绝对不会执行此操作。

建议:如果你想了解什么是绑定挂载,请阅读这篇精彩的文章https://unix.stackexchange.com/a/198591

如果你尝试一下正确的 安装选项(“移动”,不绑定):

mount -M /tmp /mnt/tmp

我确信它不会报道“tmp 是共享挂载点“(实际上意味着”如果仍有任何进程使用挂载点,则无法移动该挂载点“)

您正在寻找的“答案”可能需要在移动内容之前停止并重新启动使用/访问 /tmp 的服务。

您可以通过运行以下命令列出这些服务/进程:

lsof +D /tmp/

因此,一旦您列出了实际访问/使用的内容/tmp,您就可以真正决定“如何行动”。

我认为最安全的方法是

  1. 停止所有访问 /tmp 的服务(如果可以的话)
  2. 将整个 /tmp 内容复制到新位置
  3. 编辑 /etc/fstab 并更改 /tmp 挂载点的物理位置(无论是绑定还是设备挂载)
  4. 重新启动系统以执行重新挂载

但是还有另一种方法,不需要重启系统,但不如前一种方法安全。描述在这里并包括/tmp懒惰的什么可以让你执行mount -M

这两个链接将有助于满足您的需求:

相关内容