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.
df
Meldung 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 --total
sind 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.df
zeigt den belegten Speicherplatz an (vollständiger Inode-Speicherplatz gezählt), währenddu
die 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/tmp
Dateisystems verwendet wird)? Dies kann passieren, wenn Sie Dinge dort ablegen, während das/tmp
Dateisystem 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 durchsuchendu -hs /mnt/readonlyroot
und mit vergleichendu -hxs /
#-x
verhindert, dass du zu einem anderen, darunter eingehängten Dateisystem wechselt/
, wie/tmp
zum 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,mount
um zu sehen, woher ihr/
Dateisystem stammt...)
- Befehl zum Mounten (ein zweites Mal)