Überlauf / tmp gemountet, wenn freier Speicherplatz vorhanden ist /

26

Ich hatte vor kurzem ein "Überlauf" -Problem /tmp. Ich habe keine separate /tmpPartition und es sind 17% frei /- warum habe ich dann ein Überlauf- tmpDateisystem bekommen?

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

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

/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

Ich verwende Ubuntu 12.04.1 LTS.

Ich habe auch nachgesehen df -i, es gibt freie Inodes.

Rahul Patil
quelle
Interessant. Können Sie die Ausgabe des mountBefehls und den Inhalt von / etc / fstab anzeigen?
Dchirikov
@dchirikov aktualisierten Beitrag ..
Rahul Patil
Geht Ihnen nicht einfach der Speicher aus? ( free -m) Und welchen Kernel läufst du? ( uname -a)
gertvdijk
@Gertvdijk überprüfen Ich habe diese Dinge aktualisiert ...
Rahul Patil
1
Bitte erläutern Sie Linux 2.6.32-41-serverunter "Ubuntu 12.04.1 LTS". Das sollte sein 3.2.0-*. Geben Sie weitere Informationen. Ist das ein unvollständiges Upgrade? Ausführen einer VPS / Container-basierten Virtualisierung? etc.
gertvdijk

Antworten:

14

Wenn das System hochfährt und die Festplatte voll ist, kann nichts nach / tmp schreiben. Also wird während init ein tmpfs erstellt und gemountet. Auf diese Weise kann Ihr System sicher booten, da es in / tmp schreiben kann.

Geben Sie Speicherplatz frei und starten Sie Ihren Computer neu. (Oder einfach / tmp aushängen, wenn Sie sicher sind, dass nichts es verwendet).

Wenn Sie diesen Wert auf 0 setzen, wird das Setup deaktiviert. Dies birgt, wie ich es erwarten würde, das Risiko eines Init-Fehlers oder der Unfähigkeit, sich beim System anzumelden.

Ich denke, die Antwort von Nitesh B. ist gefährlich und sollte vermieden werden.

user50849
quelle
Können wir vielleicht eine Möglichkeit finden, das RAM-Laufwerk automatisch zurückzusetzen, sobald wir Speicherplatz haben?
CMCDragonkai
Ich mache viel Speicherplatz frei, starte neu und kann mich jetzt nicht anmelden. Vielleicht war die @mpontillo-Alternative sicherer?
Pablo A
@PabloBianchi Vielleicht wurde es 6 Monate nach meinem gepostet, also habe ich es nicht wirklich bewertet. Es sieht nach einer vorübergehenden Problemumgehung aus, und Sie würden sich beim Neustart wieder am selben Ort befinden. Ich denke, es geht mehr darum, das Problem zu verbergen, als es zu beheben.
user50849
12

Ich hatte das gleiche Problem auf einem meiner Ubuntu-Server, nachdem ich im Internet gesucht hatte, bekam ich die Lösung.

Als Schutz gegen zu wenig Speicherplatz "spiegeln" einige Daemons automatisch das aktuelle / tmp / dir mit einer RAM-Disk, wenn auf der Root-Partition nicht mehr genügend Speicherplatz vorhanden ist. Leider gibt es keine automatische Umkehrung dieses Vorgangs, wenn wieder genügend Speicherplatz verfügbar ist.

Um dieses Problem zu beheben, mounten Sie Ihr / tmp und führen Sie den folgenden Befehl aus:

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

Dies wird Ihr Problem definitiv lösen.

Nitesh B.
quelle
7
Und was passiert beim nächsten Systemstart ohne genügend Speicherplatz, wenn Sie angewiesen haben, keine tmpfs zu erstellen? Ich denke, Ihr Rat ist gefährlich und für die große Mehrheit der Benutzer / Fälle falsch.
user50849
Was macht das echo 'MINTMPKB=0' > /etc/default/mountoverflowtmp?
CMCDragonkai
@ CMCDragonkai Siehe meine Antwort für eine Erklärung davon.
user50849
Arbeitete für mich, nachdem die Festplatte voll war. Setzen Sie es auf 0, starten Sie es neu und setzen Sie es anschließend wieder auf 1. Wenn die Festplatte das nächste Mal voll ist, zeigt das System dasselbe Verhalten.
Marco Hegenberg
Wie "umountet" ihr euer / tmp? Laufen sudo umount /tmpwirft den Fehler/tmp: device is busy.
Cerin
8

Das hat mir geholfen ; Das heißt, das Folgende war eine Problemumgehung, nachdem ich etwas Platz aufgeräumt hatte:

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