• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Speicherplatz auf Ext3-Festplatte wieder freigeben

fhihu

Member
Hallo.

Ich habe eine Frage bezüglich des Speicherplatzes auf meiner Festplatte.
Ich verwende OpenSUSE 11.1 mit KDE4. Hab 5 Festplatten in meinem System und jetzt scheint mir ist irgendwie Speicherplatz verloren gegangen.

z.b. Ich hab eine 500 GB Festplatte. Durch die 1000 Umrechnung bzw. korrekterweise 1024 bleiben 465 übrig (ist mir noch logisch soweit). Jetzt aber hab ich auf der Festplatte 412.9 Gbyte Daten. Das KDE4 Eigenschaften-Fenster zeigt mir jetzt an 412.9 Gb belegt, 21.2 Gbyte von 458,4 frei. Mir ist klar das jedes Dateisystem Konfigurationsdateien speichert. 465gb - 458,4 gb = 6,6gbyte. Wäre ja auch vertraglich 7 gb für 500 Platte an Konfiguration-Dateien. Aber bei mir sind einfach 30gb. Das find ich schon viel.

z.B. Auf die andere Festplatte hab ich ein DV-AVI hin enkodiert. Das hat mir die Festplatte voll geschrieben, sodass nur mehr 0 byte frei waren.
Nachdem köschen der fast 20 Gbyte Datei, ist sie nicht in den Trash gewandert, sondern wurden vom Dateimanager Dolphin nicht mehr angezeigt, aber der Speicherplatz wurde auch nicht freigegeben. Resultat: 220,1 Gb real belegt. Dolphin zeigt an 10,2 gbyte von 275,1 gbyte frei (ist eine 300er Platte). --> 279 --> 275,1 --> 230,3 --> hier fehlen fast 50 gbyte.


Hab mal in dem Yast Partitionsmanager bzw. KDE-Partitionsmanager nachgeschaut. Vor allem Der KDe-Partitionsmanager erkennt wenigstens alles genau. Hab auch mal das Programm hdparm gestartet. Hab mir gedacht das könnte man was machen, das aber fast jede option dort als "Dangerous" gekennzeichnet ist, hab ich mir gedacht ich frag mal lieber hier im Forum nach.


Code:
 desktop@linux-trl0:~> df -h
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/dev/mapper/nvidia_fiheaaha_part7
                       50G   16G   32G  34% /
udev                 1001M  260K 1001M   1% /dev
/dev/mapper/nvidia_fiheaaha_part5
                       69M   45M   21M  68% /boot
/dev/mapper/nvidia_fiheaaha_part8
                      177G  157G   12G  94% /home
/dev/sda1             459G  414G   22G  96% /local/hda1
/dev/sde1             276G  251G   11G  97% /local/hde1
/dev/sdd1             138G  126G  5,2G  97% /local/hdd1
/dev/sdd2             138G  126G  4,8G  97% /local/hdd2


Deshalb: Ist das normal? Kann man das irgendwie reinigen bzw. wieder einmal mehr Platz schaffen? Welche Programm brauch ich? Soweit ich weiß war bei der Neuinstallation der gesamte Speicher da, nur hat sich durch das ewige kopieren und veschieben scheinbar viel Datenmüll angehäuft.

Wie löse ich das Problem mit der zweiten HDD?

Bin für Lösungsansätze dankbar.

flor
 

Grothesk

Ultimate Guru
ext3 reserviert (i. d. R.) 5% für den user root.
Das kann man mit tune2fs aber auch auf 0 einstellen. Backup der Daten vor der Aktion schwer empfohlen.
 
OP
F

fhihu

Member
Wow vielen Dank.

Das erklärt einiges. 5 % sind natürlich schon einiges. Da werden aber sicher noch Daten dazukommen die das Datei-System sonst zur Arbeit braucht. Indizierung der Dateien und so was. 5% sind von 465gbyte, 23,25gbyte plus die ca. 7 gbyte für das Dateisystem. Kommt schon hin mit 30 gbyte.
Werde es aber nicht heruntersetzen, dafür sind mit die Daten zu sensibel. Was aber kann ich mit der 2ten Festplatte machen, die ich in Punkt 2 genannt habe. Gibts eine andere Möglichkeit, ohne dass ich die Festplatte neu formatieren muss? Hab im Moment keine Möglichkeit die Daten auf der Platte zu sichern und es sind ja über 220 Gbyte.

mfg
 

josef-wien

Ultimate Guru
Damit nicht soviel herumgeraten werden muß, gib einmal
Code:
dumpe2fs -h /dev/sde1 | grep [B,b]lock
ein. Wenn Du "Block count" minus "Reserved block count" minus "Free blocks" rechnest, kommst Du auf den von Dir benutzten Speicherplatz (ob "Reserved GDT blocks" auch noch berücksichtigt werden muß, entzieht sich meiner Kenntnis, das ist aber von der Größe her nicht wirklich relevant).

Sind Deine Mülleimer geleert? Wenn ja, scheint mir eine Dateisystemprüfung angesagt. Zuerst ist unbedingt /dev/sde1 auszuhängen und dann bei einem Ext3-Dateisystem
Code:
e2fsck -f /dev/sde1
durchzuführen.
 
A

Anonymous

Gast
the black one schrieb:
Resultat: 220,1 Gb real belegt. Dolphin zeigt an 10,2 gbyte von 275,1 gbyte frei (ist eine 300er Platte). --> 279 --> 275,1 --> 230,3 --> hier fehlen fast 50 gbyte.
Wahrscheinlich vergleichst du hier 2 komplett verschiedene Werte.
ZB der Wert den dir der Befehl
Code:
cd /home
du -sk
liefert, das ist die Summe der Größen aller Dateien in diesem Filesystem. ( hier /home)
während dir
Code:
df -k
einen Überblick liefert über die Blöcke des Filesystems. Hierbei gibt es zwar Abhängigkeiten, da wenn man 1 GB schreibt man ja auch die entsprechende Anzahl an Blöcken im Filesystem braucht. Aber hier gibt es immer Differenzen, das ist ganz normal. Wenn du eine leere Datei anlegst, dann belegt sie auf der Festplatte erstmal noch keinen Platz. Eine Datei die aus nur einem einzigem Zeichen besteht, belegt dagegen schon mal einen ganzen Filesystemblock ( also typisch 4K). Auch ein Verzeichnis benötigt Plattenplatz, also immer mindestens einen Filesytemblock, also 4K. Die Datenblöcke größer Dateien können nicht allein nur aus der Inode direkt heraus adressiert werden, so das auch hier immer noch mal ein paar Blöcke mehr benötigt werden, als die Datei wirklich lang ist. Auch am Ende jeder Datei gibt es "Verschwendung", da der letzte Block, in dem dann das Ende der Datei abgelegt ist, auch nur einen kompletten Filesystemblock sein kann, auch wenn es nur ein paar Byte sind die dort rein müssen. Also musst du hier auch gleich mal auf volle 4K aufrunden. So kommen dann schnell ein paar zig Megabyte zusammen, je mehr ( vor allem kleine) Dateien und Verzeichnisse, um so größer wird die Differenz zwischen der Summe der Dateigrößen und der benötigten Blockanzahl im Filesystem. Auch gibt es gelegentlich Dateien die sind schon gelöscht, (besser unlinked) also der Dateinamen ist gelöscht, aber die Datei ist noch von einem Prozess geöffnet. Eine solche Datei existiert noch im Filesystem und kann dort von diesem Prozess auch noch gelesen und beschrieben werden. Andere Prozesse finden diese Datei aber nicht mehr, auch "du" kann diese Datei nicht mehr sehen und deren Größe desshalb auch nicht mit einrechenen. Die Datenblöcke werden aber erst zu dem Zeitpunkt im Filesystem freigegeben wenn der Prozess endet, der diese Datei noch geöffnet hat. Also durchaus auch mal möglich das ein Prozess sich aufgehängt hat und jetzt klemmt, der eine riesige Datei geschrieben hat und noch immer geöffnet hält. Zwar kann man diese Datei jetzt löschen, doch die Datenblöcke werden erst freigegeben wenn der klemmende Prozess beendet ist, also in dem einem oderer anderem Fall muss man da sogar auch mal rebooten, damit man einen solchen Prozessklemmer los wird, der einem eventuell die halbe Festplatte blockiert. Solche Prozesse die unlinked Dateien offen haben findet man mit "lsof -a +L1" http://www.linux-club.de/viewtopic.php?f=4&t=102659&p=628140


Aber auch das Gegenteil von Verschwendung kann man so beobachten. Sind zB Hardlinks im Verzeichnis, dann würden diese bei "du -sk" auch mehrmals mit gezählt, aber im Filesystem selbst gibt es die Datenblöcke dazu jeweils nur ein einziges mal. Es gibt zB auch Sparse Dateien, die haben eine reelle Dateigröße aber belegen nicht annähernd so viele Blöcke im Filesystem wie sie ihrer Größe nach eigentlich belegen müssten. Erst wenn der Inhalt einer solchen Datei geändert oder beschrieben wird, dann werden auch die Blöcke im Filesystem entsprechend den Erfordernissen dann auch hinzugenommen so wie sie gebraucht werden. http://www.linupedia.org/opensuse/Dd#Erzeugen_von_Sparse_Dateien


Es gibt also immer Differenzen zwischen der Summe der Dateigrößen und der Summe der benutzten Datenblöcke, kein Grund zur Beunruigung.

robi
 

Spielwurm

Advanced Hacker
Code:
tune2fs -m 0
habe ich schon mehrfach angewendet und hat keinen Schaden angerichtet. Warum auch?

Hartmut
 
OP
F

fhihu

Member
Hallo

sorry, dass ich mich solange nicht gemeldet habe, aber ich hatte gerade viel zu tun.

@josef-wien

hab die Blöcke gezählt, komm auf ein ganz anderes Ergebnis, außerdem möchte ich ja die größe in Megabyte haben, nicht in Blöcken.


Hab auch e2fsck verwendet, gleich zweimal. Bringt aber leider überhaupt nichts.

@robi

Danke das mit dem Blöcken hab ich schon begriffen. Deshalb würde man ja in meinem Fall bei Videobearbeitung größere Blöcke verwenden, da schnellere Suchzeiten, nicht so hohe Fragmentierung, bei Festplatten mit vielen kleinen Dateien sind natürlich kleine Blöcke besser, es geht auch nicht so viel Speicherplatz verloren.

Also auf der einen Festplatte hab ich eigentlich eher größere Dateien drauf. So ab 1gb.

Hab auch mit dem Befehlt df -h mal alles zusammengerechnet, kommt aber genau auf das gleiche Ergebnis wie Dolpin. Hab auch den Prozess Dolphin gekillt und wieder gestartet, hilft leider auch nicht.
Hab übrigens den Computer in der Zwischenzeit schon öfters neu gestartet. Es müssten also alle Prozesse neu gestartet sein.

Bei mir handelt sich es aber nicht um ein logfile, sondern um die gelöschte Datei. Es ist so eine Art verwaiste Datei, die nirgends mehr zu finden ist, aber trotzdem noch den Platz braucht. Ich glaub das Problem war das meine Videoprogramm die Platte bis auf den letzten Byte vollgeschrieben hat, weil vorher hab ich auch immer so große Dateien gelöscht, aber da hatte ich immer noch 1-2 Gbyte freien Platz zur Verfügung.

mit "ls -R" zeigt es mir auch nichts an und mit "ls- a" find ich die Datei auch nicht. Dass 50 Gbyte zusätzlich belegt sind kann nicht sein, denn vor dem löschen waren es genau gleichviel. Es hat sich also mit dem löschen nichts getan.

Ich glaub mir bleibt nichts anderes übrig als die Festplatte neu zu formatieren. Ich weiß im Moment eben noch nicht, wo ich die Dateien zwischenzeitlich auslagern soll.

Trotzdem vielen Dank
 
Wenn diese Datei noch irgendwo vermerkt ist, dann solltest Du sie auch finden können, ich würde dafür 'find' verwenden:

Code:
find / -size +500M

...findet z.B. alle Dateien ab 500MB Größe. Da mit diesem Kommando auch restriktiv gehandhabte Verzeichnisse durchsucht werden, müsstest Du es als root ausführen.
 
OP
F

fhihu

Member
Ok hab es nun gelöst. Die Datei war natürlich im Trash Folder und wurde irgendwie nicht mehr angezeigt.

mit "rm -rf .Trash-1000" hab ich es dann löschen können und siehe da 40 Gbyte mehr Speicher.

Vielen Dank nochmal für die hilfreichen Lösungvorschläge. Bin ja so froh, dass die Linux-Commutities immer so hilfsbereit sind. Hab schon wieder was dazugelernt.

Vielen Dank
 
Oben