Desbordamiento / tmp montado cuando hay espacio libre en /

26

Recientemente me enfrenté a un problema de "desbordamiento" en /tmp. No tengo una /tmppartición separada , y hay un 17% libre /, entonces ¿por qué obtuve un tmpsistema de archivos de desbordamiento ?

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

# /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 salida

/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

Estoy ejecutando Ubuntu 12.04.1 LTS.

También revisé df -i, hay inodos libres.

Rahul Patil
fuente
Interesante. ¿Podría mostrar el resultado del mountcomando y el contenido de / etc / fstab?
dchirikov
@dchirikov mensaje actualizado ..
Rahul Patil
¿No estás simplemente quedando sin memoria? ( free -m) ¿Y qué kernel estás ejecutando? ( uname -a)
gertvdijk
@gertvdijk comprueba que he actualizado esas cosas ...
Rahul Patil
1
Explique Linux 2.6.32-41-serveren "Ubuntu 12.04.1 LTS". Esto debería ser 3.2.0-*. Dar más información ¿Es esta una actualización incompleta? ¿Está ejecutando una virtualización basada en VPS / Container? etc.
gertvdijk

Respuestas:

14

Cuando el sistema arranca y el disco duro está lleno, nada puede escribir en / tmp. Entonces, durante init, se crea y monta un tmpfs. De esta manera, su sistema puede arrancar de manera segura, ya que puede escribir en / tmp.

Libere espacio en disco y reinicie su máquina. (O simplemente desmonte / tmp, si está seguro de que nada lo usa).

Establecer este valor en 0 deshabilita la configuración. , lo que esperaría conlleva el riesgo de un error de inicio o de no poder iniciar sesión en el sistema.

Creo que la respuesta de Nitesh B. es peligrosa y debe evitarse.

usuario50849
fuente
¿Quizás podamos encontrar alguna forma de revertir automáticamente el tmp respaldado por ramdisk una vez que tengamos espacio en disco?
CMCDragonkai
Libero mucho espacio, reinicio y ahora no puedo iniciar sesión. ¿Quizás la alternativa @mpontillo era más segura?
Pablo A
@PabloBianchi Quizás, fue publicado 6 meses después del mío, así que realmente no lo he evaluado. Parece una solución temporal, y estarías en el mismo lugar nuevamente cuando reinicies, así que se trata más de ocultar el problema que de solucionarlo, creo.
user50849
12

Estaba enfrentando el mismo problema en uno de mi servidor Ubuntu, después de buscar en la red obtuve la solución.

Como protección contra poco espacio en el disco, algunos demonios "sombrean" automáticamente el actual / tmp / dir con un disco ram si la partición raíz se queda sin espacio en el disco. Lamentablemente, no hay reversión automática de ese proceso una vez que hay suficiente espacio libre en el disco nuevamente.

Para resolver este problema, desmonte su / tmp y ejecute este comando:

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

Esto definitivamente resolverá tu problema.

Nitesh B.
fuente
77
¿Y qué sucede la próxima vez que el sistema se inicie sin suficiente espacio en disco una vez que le haya indicado que no cree un tmpfs? Creo que su consejo es peligroso e incorrecto para la gran mayoría de los usuarios / casos.
user50849
¿Qué está haciendo esto? echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp?
CMCDragonkai
@CMCDragonkai Vea mi respuesta para una explicación de eso.
user50849
Me funcionó después de que el disco estaba lleno. Póngalo en 0, reinicie y póngalo de nuevo en 1 después. Entonces, cuando el disco esté lleno la próxima vez, el sistema mostrará el mismo comportamiento.
Marco Hegenberg
¿Cómo "desmontas tu / tmp"? Correr sudo umount /tmparroja el error/tmp: device is busy.
Cerin
8

Esto me ayudo ; es decir, lo siguiente fue una solución alternativa después de que despejé un poco de espacio:

sudo mount -o bind /var/tmp /tmp
mpontillo
fuente