当 / 上有可用空间时溢出 /tmp 挂载

Rah*_*til 28 ubuntu tmp

我最近在/tmp. 我没有单独的/tmp分区,而且有 17% 的空闲空间/——那为什么我会得到一个溢出的tmp文件系统呢?

在此处输入图片说明

在此处输入图片说明

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/safesquid-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=d029e04b-11e9-42e1-b1d3-9cde73cb3b67 /boot           ext2    defaults        0       2
/dev/mapper/safesquid-swap_1 none            swap    sw              0       0
Run Code Online (Sandbox Code Playgroud)

mount 输出

/dev/mapper/safesquid-root on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sda1 on /boot type ext2 (rw)
overflow on /tmp type tmpfs (rw,size=1048576,mode=1777)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)


root@safesquid:~# free -m
             total       used       free     shared    buffers     cached
Mem:          2009        182       1826          0          9         48
-/+ buffers/cache:        124       1885
Swap:          715        130        585
root@safesquid:~# uname -a

Linux safesquid 2.6.32-41-server #94-Ubuntu SMP Fri Jul 6 18:15:07 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我正在运行 Ubuntu 12.04.1 LTS。

我也检查过df -i,有免费的inode。

use*_*849 16

当系统启动并且硬盘驱动器已满时,没有任何内容可以写入 /tmp。因此,在 init 期间会创建并挂载 tmpfs。这样您的系统就可以安全启动,因为它可以写入 /tmp。

释放磁盘空间,然后重新启动机器。(或者干脆卸载/tmp,如果你确定没有使用它)。

将此值设置为 0 将禁用设置。,我预计这会带来初始化失败或无法登录系统的风险。

我认为 Nitesh B. 的答案是危险的,应该避免。


Nit*_* B. 11

我在我的一台 Ubuntu 服务器上遇到了同样的问题,在网上搜索后我得到了解决方案。

为了防止磁盘空间不足,如果根分区的磁盘空间不足,一些守护进程会自动使用 ram 磁盘“遮蔽”当前的 /tmp/ 目录。遗憾的是,一旦有足够的磁盘空间再次可用,该过程就不会自动恢复。

要解决此问题,请卸载 /tmp 并运行以下命令:

echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp
Run Code Online (Sandbox Code Playgroud)

这绝对可以解决您的问题。

  • 一旦您指示系统不要创建 tmpfs,下次系统在没有足够磁盘空间的情况下启动时会发生什么?我认为您的建议对于绝大多数用户/案例来说是危险且不正确的。 (8认同)

mpo*_*llo 9

这对我有帮助;也就是说,以下是我清理了一些空间后的解决方法:

sudo mount -o bind /var/tmp /tmp
Run Code Online (Sandbox Code Playgroud)