Festplatte voll, aber der belegte Speicherplatz kann nicht gefunden werden (Ubuntu)

Festplatte voll, aber der belegte Speicherplatz kann nicht gefunden werden (Ubuntu)

Ich habe einen kleinen Intel NUC mit einem 30 GB-Laufwerk. Mein Problem ist, dass dieses Laufwerk voll ist, ich kann aber die Ursache dafür nicht finden.

dfMeldung des folgenden

Filesystem     1K-blocks      Used Available Use% Mounted on
udev              899412         0    899412   0% /dev
tmpfs             189284      2676    186608   2% /run
/dev/sda2       28414508  27751116         0 100% /
tmpfs             946404         0    946404   0% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
tmpfs             946404         0    946404   0% /sys/fs/cgroup
/dev/loop0           128       128         0 100% /snap/bare/5
/dev/loop1         56832     56832         0 100% /snap/core18/2128
/dev/loop2         56832     56832         0 100% /snap/core18/2246
tmpfs             946404         0    946404   0% /tmp
/dev/loop3        314880    314880         0 100% /snap/makemkv/381
/dev/loop4         66688     66688         0 100% /snap/gtk-common-themes/1515
/dev/loop5         63360     63360         0 100% /snap/core20/1169
/dev/loop6         63360     63360         0 100% /snap/core20/1081
/dev/loop7         33280     33280         0 100% /snap/snapd/13270
/dev/loop8        317184    317184         0 100% /snap/makemkv/385
/dev/loop9         33280     33280         0 100% /snap/snapd/13640
/dev/loop10        66816     66816         0 100% /snap/gtk-common-themes/1519
/dev/sda1         306584      5356    301228   2% /boot/efi
tmpfs             189280         4    189276   1% /run/user/1000

Wenn man das berechnet, erhält man ungefähr 14 GB genutzten Speicherplatz.

Läuftsudo lsof | grep REG | grep -v "stat: No such file or directory" | grep -v DEL | awk '{if ($NF=="(deleted)") {x=3;y=1} else {x=2;y=0}; {print $(NF-x) " " $(NF-y) } }' | sort -n -u | numfmt --field=1 --to=iec | tail -10

gibt mir eine Liste mit einigen Prozessen, die wichtig sind:

5,5M  /usr/lib/php/20190902/fileinfo.so
6,8M  /usr/lib/jellyfin/bin/libcoreclr.so
8,0M  /var/log/journal/6296b00d07874d0a9533eed0efb81840/user-1000.journal
8,2M  /usr/lib/jellyfin/bin/System.Private.Xml.dll
8,3M  /usr/lib/locale/locale-archive
8,9M  /usr/lib/jellyfin/bin/System.Private.CoreLib.dll
10M  /usr/lib/udev/hwdb.bin
24M  /snap/snapd/13640/usr/lib/snapd/snapd
27M  /usr/lib/x86_64-linux-gnu/libicudata.so.66.1
64M  /memfd:pulseaudio

Beim Ausführen sudo du -sh / --exclude=disks --totalsind es insgesamt 13 GB.

Also, im Grunde genommen habe ich keine Idee mehr, wie ich herausfinden kann, wo die fehlenden ~16 GB sind, die laut System irgendwo auf meinem Laufwerk liegen.

Und der Bericht verhält sich tatsächlich so, er läuft

cd ~/ && touch example && echo "FooBar" > example
-bash: echo: write error: No space left on device

Vielen Dank im Voraus, und jede Idee ist eine gute Idee. Im Grunde habe ich ein Gerät, das im Moment unbrauchbar ist, und mir bleiben nur noch wenige Optionen (im Grunde eine saubere Neuinstallation / Kauf einer größeren SSD für ein Gerät, das nicht mehr als 20 GB verwenden sollte).

Antwort1

Einige Möglichkeiten, um zu versuchen, das Objekt zu finden, das Ihre "/"-Partition füllt:

  • lsof -nP +L1 # sollte alle Dateien auflisten, die gelöscht wurden (nicht verknüpft sind), aber immer noch von einem Prozess geöffnet sind und daher immer noch den Dist belegen
  • Siehe auch diese Antwort:https://unix.stackexchange.com/a/68532/27616Hier finden Sie einige zusätzliche Informationen und Tipps zum Ausprobieren
  • Eine weitere Möglichkeit: Überprüfen Sie (mit df -ih /), ob Sie nicht „Millionen“ kleiner Dateien in diesem /Dateisystem haben: jede Datei benötigt zumindest eine „kleine“ Menge an Speicherplatz (normalerweise, weil sie mindestens 1 Inode belegt, dessen Größe je nach Dateigröße und Dateisystem variiert). Das kann sich summieren … wenn der minimal belegte Speicherplatz 512 Byte beträgt, belegen 1 Million Dateien mit jeweils 1 Byte immer noch 512 Millionen Byte statt 1 Million Byte. dfzeigt den belegten Speicherplatz an (vollständiger Inode-Speicherplatz gezählt), während dudie hinzugefügten Dateigrößen angezeigt werden (d. h. nur der Inhalt dieser Dateien, nicht der Speicherplatz, den die Inodes mit diesem Inhalt belegen)
  • Eine weitere Möglichkeit: Es könnten einige große Dateien durch ein gemountetes Dateisystem versteckt sein. D.h. einige Dateien könnten "unter" einem gemounteten Dateisystem liegen (vielleicht haben Sie viele große Dateien in das/tmp Verzeichnis(dasjenige, das sich im /Dateisystem befindet und das dann als Einhängepunkt zum Einhängen des /tmpDateisystems verwendet wird)? Dies kann passieren, wenn Sie Dinge dort ablegen, während das /tmpDateisystem nicht eingehängt war. Um dies zu überprüfen, können Sie es unter Linux /(mit einem Free Loop-Gerät) irgendwo schreibgeschützt erneut einhängen (sagen wir: es unter einem /mnt/readonlyroot/Einhängepunkt einhängen) und es mit durchsuchen du -hs /mnt/readonlyrootund mit vergleichen du -hxs /# -xverhindert, dass du zu einem anderen, darunter eingehängten Dateisystem wechselt /, wie /tmpzum Beispiel dem Dateisystem).
    • Befehl zum Mounten (ein zweites Mal) /als schreibgeschützt unter einem Mount-Punkt: Sie können (aus dem Gedächtnis... ich kann das gerade unter Linux nicht überprüfen):
      • mkdir -p /mnt/rootreadonly/um den Einhängepunkt für das Verzeichnis zu erstellen (der sich ironischerweise innerhalb des Dateisystems "/" befindet ...)
      • mount -o loop -o ro /dev/sda2 /mnt/rootreadonly(damit das "/"-Dateisystem dort als schreibgeschützt angezeigt wird. Ich gebe hier sda2 an, da Sie in Ihrer Frage angeben, dass sich Ihr "/"-Dateisystem in "/dev/sda2" befindet. Eine andere Person, die diese Antwort liest, sollte zuerst die Ausgabe prüfen, mountum zu sehen, woher ihr /Dateisystem stammt...)

verwandte Informationen