Verwirrung bei der Datenträgernutzung: 10 GB fehlen auf der Linux-Home-Partition auf der SSD


15

Linux Mint sagt mir, ich habe nur 622 MB freien Speicherplatz, aber es sollten noch einige Gigabyte übrig sein.

Wenn ich mir die Partitionen anschaue, erfahre ich, dass ungefähr zehn Gigabyte ungenutzt sind. Ich habe das Problem gegoogelt und keine Lösung gefunden, aber ich habe den Hinweis gefunden, dass ich die Datenträgerverwendung überprüfen soll df -h.

sudo df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p8  189G  178G  622M 100% /home

Die Ausgabe macht für mich keinen Sinn: Der Unterschied zwischen Sizeund Usedist 11GB, aber es wird nur 622Mals Verfügbar angezeigt .

Die SSD ist nicht alt, daher würde ich keine solche Diskrepanz erwarten.

Was soll ich machen?


3
Wie @Kusalananda kommentierte, sollten Sie nicht nur fragen, warum Sie diese 10 GB nicht erhalten (was ich in meiner Antwort hoffentlich richtig angesprochen habe), sondern auch, warum Sie den größten Teil des Speicherplatzes in / home nutzen. Wenn Sie wissen, warum (z. B. viele Mediendateien usw. speichern), ist das in Ordnung. Wenn Sie dies nicht tun, sollten Sie sich darüber Gedanken machen, da die potenzielle Bereinigung mehr als 10 GB Speicherplatz spart. Also was wäre es?
AB

"Wenn ich mir die Partitionen anschaue, erfahre ich, dass dort ungefähr zehn Gigabyte ungenutzt sind." - Wo wurde Ihnen das gesagt?
Strg-Alt-Delor

2
@ ctrl-alt-delor von dfder Ausgabe - Größe: 189G, Gebraucht: 178G
billyjmc

@ ctrl-alt delor, ich habe die Zahl 10GB von gparted - und später 11G von der Ausgabe von df, als billyjmc richtig abgeleitet.
Tobiornottobi

Antworten:


22

Wenn das Dateisystem ext4 ist, gibt es reservierte Blöcke, die hauptsächlich der Handhabung und Vermeidung von Fragmentierung dienen und nur dem Root-Benutzer zur Verfügung stehen. Für diese Einstellung kann sie mit tune2fs live geändert werden (nicht alle Einstellungen können so behandelt werden, wenn das Dateisystem gemountet ist):

-m reservierter-Block-Prozentsatz

Legen Sie den Prozentsatz des Dateisystems fest, der nur von privilegierten Prozessen zugewiesen werden darf. Das Reservieren einer bestimmten Anzahl von Dateisystemblöcken für privilegierte Prozesse wird durchgeführt, um eine Fragmentierung des Dateisystems zu vermeiden und um zu ermöglichen, dass System-Daemons wie syslogd (8) weiterhin ordnungsgemäß funktionieren, nachdem verhindert wurde, dass nicht privilegierte Prozesse in das Dateisystem schreiben. Normalerweise beträgt der Standardprozentsatz der reservierten Blöcke 5%.

Wenn Sie also die Reservierung auf 1% (~ 2 GB) senken möchten, um Zugriff auf ~ 8 GB nicht mehr reservierten Speicherplatz zu erhalten, können Sie dies tun:

sudo tune2fs -m 1 /dev/nvme0n1p8

Hinweis: Die -mOption akzeptiert tatsächlich eine Dezimalzahl als Parameter. Sie können -m 0.1nur ca. 200 MB reservieren (und auf die meisten der zuvor nicht verfügbaren 10 GB zugreifen). Sie können auch die -rOption verwenden, um direkt nach Blöcken zu reservieren. Es wird wahrscheinlich nicht empfohlen, 0 reservierte Blöcke zu haben.


3
Der Benutzer "bekommt" 8 GB nicht zurück. Sie müssen 8 GB mehr ausgeben. Es ist besser, herauszufinden, was den gesamten Speicherplatz belegt, und dies gegebenenfalls zu bereinigen oder es anderweitig an einen anderen Ort zu verschieben oder die Partition zu vergrößern.
Kusalananda

1
@Kusalananda Ich werde den Wortschatz ändern. Für die Nutzung benötige ich das Feedback von OP. Die Frage deutete nie darauf hin, dass eine hohe Auslastung unbekannt war und nur 10 GB fehlten.
AB

1
Eine sehr gute und hilfreiche Antwort, danke. 5% scheinen den fehlenden 10 Gigabyte sehr deutlich zu entsprechen. Ich mache mir keine Sorgen darüber, wie viel Speicherplatz insgesamt verwendet wird, und ich kann meine Partition trotzdem vergrößern. :)
tobiornottobi

4
Ihre Antwort ist sicherlich richtig, aber es kann erwähnenswert sein, dass der Wert des für Root reservierten Speicherplatzes in diesem Fall nicht sehr groß ist. Dies ist der /homeFall, und das Reservieren von Speicherplatz für root ist nicht so wichtig wie für andere Teile des Dateisystems (z. B. um sicherzustellen, dass Systemprotokolle weiterhin geschrieben werden können). Da es sich um eine SSD handelt, hat das Verhindern von Fragmentierung möglicherweise nicht die Priorität, die es beim Drehen von Metallplatten hat.
Marcelm

@marcelm Das macht für mich Sinn. Aber ist es auf einer / home-Partition auf einer SSD immer noch nützlich oder ist es nur eine Verschwendung von Speicherplatz? Würden Sie empfehlen, den reservierten Stammspeicherplatz auf 1% zu senken?
Tobiornottobi

8

Gelöschte Dateien können auch zu "fehlendem Speicherplatz" beitragen

lsof | grep deleted | grep /home

Gibt diese Ausgabe für mich zurück

chrome    11181           criggie   15u      REG              254,0   
4194304  50651663 /home/criggie/.config/google-chrome/BrowserMetrics/BrowserMetrics-5D0236AF-2BAD.pma (deleted)

Dies zeigt, dass Chrome, das als PID 11181 ausgeführt wird, diese BrowserMetrics-Datei geöffnet und dann gelöscht hat und das Dateihandle weiterhin geöffnet ist. Dies bedeutet, dass die Datei in einer Verzeichnisliste unsichtbar ist, aber immer noch Speicherplatz belegt.

Warum machen Programme das? Wenn die ausgeführte Binärdatei beendet wird, gibt das Betriebssystem das geöffnete Dateihandle frei und die Datei auf der Festplatte wird gelöscht, ohne dass die Gefahr besteht, dass eine veraltete temporäre Datei zurückbleibt.

Was ich nicht sehen kann, ist, wie groß die Festplattenbelegung dieser Datei ist.


2
Die meisten gut geschriebenen Programme sollten dies nicht tun. Es ist ein Fehler und sollte gemeldet werden, es ist nur so, dass die meisten dieser obskuren Fehler nicht wirklich auftauchen, bis Sie sich in einer Optimierungsphase befinden, und wenn es sich um einen Fehler handelt, wird er möglicherweise während des Testens überhaupt nicht erkannt. Beachten Sie, dass es möglicherweise einen bestimmten Grund gibt, warum sie dies tun. Möglicherweise gibt es einen Grund, den ich hier nicht kenne, um den Griff so lange offen zu halten.
Betrunkener Code-Affe

4
@ DrunkenCodeMonkey Dude - sein Chrome ... du bist völlig richtig.
Criggie

4
@ DrunkenCodeMonkey, viele gut geschriebene Programme tun dies. Das Open-Delete-Close-Muster zum Erstellen temporärer Dateien auf * nix ist nahezu universell, da es garantiert, dass die Datei beim Beenden des Programms gelöscht wird, unabhängig davon, wie es beendet wird: normale Beendigung, Absturz, Speicherausfall, Absturz durch Stromausfall usw.
Mark

3
@ DrunkenCodeMonkey Also, was ist, wenn das Programm nie damit fertig ist?
Abfahrt um den

3
@ DrunkenCodeMonkey: Das Muster ist Öffnen-Löschen- Arbeiten- Schließen. Wenn das Programm noch etwas mit dem Inhalt der temporären Datei tut (z. B. als Festplatten-Cache verwenden oder Telemetriedaten darin protokollieren), muss es diese natürlich geöffnet lassen. (Natürlich ist es auch möglich, dass dies in der Tat ein veralteter nicht geschlossener Datei-Handle ist, den das Programm hätte schließen sollen, aber nicht hätte schließen sollen. Da es jedoch nur eine solche Datei gibt und es keine anderen offensichtlichen Anzeichen für ein Ressourcenleck gibt, Ich würde mit der Annahme beginnen, dass die Datei wahrscheinlich absichtlich offen gehalten wird.)
Ilmari Karonen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.