Ubuntu-Root-Laufwerk hat nicht genügend Speicherplatz. Ich kann die Quelle nicht über du oder lsof finden

10

Das Root-Laufwerk auf einem Ubuntu 15.10-Computer hat fast keinen Speicherplatz mehr, aber ich kann die Quelle nicht finden. Das Laufwerk, auf dem nicht sdb2genügend Speicherplatz vorhanden ist , verfügt über 313 MB 51 G. Das Dateisystem ist ext4.

Hier ist die sudo du -h / --max-depth=1Ausgabe:

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           789M  9.4M  780M   2% /run
/dev/sdb2        51G   48G  313M 100% /
tmpfs           3.9G   12K  3.9G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sdb1       511M  3.4M  508M   1% /boot/efi
tmpfs           789M  8.0K  789M   1% /run/user/1000
/dev/sda1       239G  122M  239G   1% /media/DATA

Aber ich kann keine großen Dateien finden. Die Gesamtnutzung bei /scheint nur 3,4 G zu betragen. Hier ist die Ausgabe von sudo du -h / --max-depth=1:

4.0K    /mnt
188K    /tmp
406M    /home
339M    /var
8.1M    /etc
361M    /lib
du: cannot access ‘/proc/7626/task/7626/fd/4’: No such file or directory
du: cannot access ‘/proc/7626/task/7626/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/7626/fd/3’: No such file or directory
du: cannot access ‘/proc/7626/fdinfo/3’: No such file or directory
0    /proc
13M    /bin
du: cannot access ‘/run/user/1000/gvfs’: Permission denied
9.4M    /run
1.6M    /root
4.0K    /lib64
16K    /lost+found
0    /sys
1.1M    /media
12K    /dev
222M    /opt
2.0G    /usr
62M    /boot
9.5M    /sbin
4.0K    /cdrom
8.0K    /srv
3.4G    /

Ich habe hier eine ähnliche Frage gefunden: Wo ist der Speicherplatz, wenn nicht genügend Speicherplatz vorhanden ist?

In diesem Fall sieht es so aus, als ob das Problem durch ein gelöschtes Protokoll verursacht wurde, das irgendwie nicht durch einen laufenden Prozess geschlossen wurde, und der Weg, es zu finden, bestand darin, es auszuführen sudo lsof | grep deleted. In meinem Fall ist die Ausgabe

lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

Das Problem bleibt auch nach dem Neustart des Systems bestehen, sodass es unwahrscheinlich ist, dass dies die Ursache ist.

Eine andere vorgeschlagene Lösung ist das Abhängen /var/lib/ureadahead/debugfs, aber ich zögere, dies zu tun.

Was könnte sonst noch falsch sein?

biggvsdiccvs
quelle
Führen Sie einen Neustart durch. Es gibt einige gelöschte, aber gesperrte Dateien.
Ipor Sircer
Ich habe das versucht, aber nichts hat sich geändert.
biggvsdiccvs
1
Überprüfen Sie das Dateisystem auf Fehler und aktualisieren Sie es auf eine unterstützte Ubuntu-Version.
Michael Hampton
6
Führen Sie einfach "du -sh *" aus, wenn Sie sich im Stammordner befinden. Verwenden Sie nicht --max-Tiefe Flagge
Waisen
1
@Orphans sieht so aus, als hätte ich das nicht *gegen ypu eingebettet gesehen"
user9517

Antworten:

21

Nun, es ist nur eine Vermutung, aber es kann funktionieren: Ich denke, dass der Benutzer einmal vergessen hat, /dev/sda1als zu mounten , /media/DATAund alle Daten wurden /dev/sdb2anstelle von geschrieben /dev/sda1.

Um dies zu überprüfen, heben Sie bitte die Bereitstellung von /media/DATADateien und Ordnern unter diesem Pfad auf und überprüfen Sie sie.

Fedor Dikarev
quelle
Danke, das war es auch! Außer ich denke, es könnte eher eine schlechte Laufwerksverbindung gewesen sein, als dass jemand vergessen hätte, irgendetwas zu mounten. Das ganze Setup ist unzuverlässig und ich bin mir nicht sicher, wie das Laufwerk montiert ist /media/DATA- es ist nicht in /etc/fstab.
biggvsdiccvs
Wenn Sie das Dateisystem nicht aushängen möchten (z. B. wenn Sie die Prozesse, die es verwenden, nicht herunterfahren möchten), können Sie mithilfe eines Bind-Mount die vom Mount ausgeblendeten Dateien anzeigen (und löschen).
Johnny
7

Ich benutze dafür regelmäßig 'ncdu', es ist klein genug, um es noch zu installieren.

sudo apt-get install ncdu

Stellen Sie einfach sicher, dass Sie es als root oder über sudo ausführen:

sudo ncdu /
Roy Jacobs
quelle
1
Hätte in diesem Fall allerdings nicht geholfen.
Gerald Schneider
2

Wenn Sie wissen möchten, wo Speicherplatz in einem bestimmten Dateisystem verwendet wird, können Sie mit diesem Befehl die 20 größten Verzeichnisse suchen, um herauszufinden, wo der größte Speicherplatz verwendet wird.

du -m / |sort -n |tail -20

Das Root-Dateisystem ist jedoch schwieriger, da alle Dateisysteme auf root gemountet sind. Das Argument -x (--one-file-system) gibt jedoch nur das gewünschte Dateisystem aus.

du -m -x / |sort -n |tail -20
ChuckCottrill
quelle
1
df -h *.* 

Könnte helfen.

Durchläuft Verzeichnisse und fasst die verwendeten Bytes zusammen.

steJav
quelle