当/上有可用空间时,将安装/ tmp溢出


26

我最近在上遇到了“溢出”问题/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

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

我正在运行Ubuntu 12.04.1 LTS。

我还检查了df -i,有免费的inode。


有趣。您能显示mount命令输出和/ etc / fstab的内容吗?
dchirikov 2013年

@dchirikov更新后..
拉胡尔·帕蒂尔

您不只是耗尽内存吗?(free -m)您正在运行哪个内核?(uname -a
gertvdijk

@gertvdijk检查我已经更新了这些内容...
Rahul Patil

1
2.6.32-41-server在“ Ubuntu 12.04.1 LTS”上解释Linux 。这应该是3.2.0-*。提供更多信息。这是不完整的升级吗?运行基于VPS /容器的虚拟化?等
gertvdijk 2013年

Answers:


14

当系统启动且硬盘驱动器已满时,无法将任何内容写入/ tmp。因此,在初始化期间会创建并安装一个tmpfs。这样,您的系统就可以安全地启动,因为它可以写入/ tmp。

释放磁盘空间,然后重新启动计算机。(或者,如果确定没有任何使用,则只需卸载/ tmp)。

将此值设置为0将禁用设置。,我希望它存在初始化失败或无法登录系统的风险。

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


一旦有了磁盘空间,我们是否可以找到一种自动还原由ramdisk支持的tmp的方法?
CMCDragonkai 2015年

我释放了很多空间,重新启动,现在无法登录。也许@mpontillo替代方案更安全?
巴勃罗

@PabloBianchi也许,它是在我的六个月后发布的,所以我还没有真正评估过它。看来这是一个临时解决方法,重启后您会再次呆在同一个地方,因此,我认为这更多的是隐藏问题而不是解决问题。
user50849

12

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

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

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

echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp

这肯定会解决您的问题。


7
当您指示不要创建tmpfs时,下一次系统启动时没有足够的磁盘空间又会发生什么呢?我认为您的建议对绝大多数用户/案例而言都是危险且不正确的。
user50849年

这是在做什么 echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp
CMCDragonkai,2015年

@CMCDragonkai有关此说明,请参见我的回答。
user50849 2015年

磁盘装满后为我工作。将其设置为0,重新启动,然后再设置回1。因此,当下次磁盘已满时,系统将显示相同的行为。
Marco Hegenberg

您如何“卸载您的/ tmp”?跑步sudo umount /tmp引发错误/tmp: device is busy.
Cerin

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.