0 Inodes, dennoch ~70 GB frei

email.listen at googlemail.com email.listen at googlemail.com
Don Nov 16 06:39:37 GMT 2006


Am Thu, 16. November 2006 04:34 schrieb Bernd Schwendele:
> Hallo Liste,
>
> ich hab da ein kleines Problemchen mit meiner externen Festplatte.
> Leider lässt sich auf dieser nichts mehr speichern, trotz ca. 70 freien
> GBs. Allerdings verrät mir ein df -i, dass dort keine Inodes "mehr frei
> sind".
>
> besc2008 at defiant:~$ df -h
> Dateisystem            Größe Benut  Verf Ben% Eingehängt auf
> [...]
> /dev/sda2             230G  152G   67G  70% /media/MAPOWER-EXT3
>
> ----
>
> besc2008 at defiant:~$ df -i
>
> Dateisystem            INodes  IBenut.  IFrei IBen% Eingehängt auf
> [...]
> /dev/sda2             235008  235008       0  100% /media/MAPOWER-EXT3
>
> Was kann ich denn tun, um an die restlichen 67 GBs zu kommen?

Erst mal herausbekommen warum keine inodes mehr frei sind.
Was sagt ein 'sudo fdisk -l /dev/sda' bzw. 'fdisk -l /dev/sda2' wenn du es auf 
einem Terminal eingibst?

Interessant ist auch was du auf der Platte gespeichert hast. z.B. ob es sehr 
viele kleine Dateien sind.

Hontergrund:
Siehe auch http://www.linux.org/docs/ldp/howto/Filesystems-HOWTO.html ist 
allerdings von 2000 und damit etwas alt.

Einige Dateisysteme erlauben es die Blockgrössen vor zu geben. 
So bei ext2:
       -b block-size
              Specify the size of blocks in bytes.  Valid block size vales are
              1024, 2048 and 4096 bytes per block.  If omitted, mke2fs  block-
              size is heuristically determined by the file system size and the
              expected usage of the filesystem (see the -T option).  If block-
              size  is  negative, then mke2fs will use heuristics to determine
              the appropriate block size, with the constraint that  the  block
              size will be at least block-size bytes.  This is useful for cer‐
              tain hardware devices which require that the blocksize be a mul‐
              tiple of 2k.

Eine Datei belegt dabei auf dem Datenträger immer ein vielfaches dieser Blöcke 
auf der Platte. 

Programme wie mke2fs die die Partition formatieren sorgen in der Regel 
eigendlich immer dafür das die Blockgrösse und die Anzahl inodes in einem 
vernünftigen Grösse angelegt werden. Trotzdem kann es manchmal dazu kommen 
das dies nicht immer für den jew. Einsatzzweck richtig sein muss. So ist eine 
Partition die sehr gross ist und per ext2 eine Blockgrösse von 4096 bytes per 
Block zum sichern von Dateien die überwiegend kleiner sind (Dateien auf 
einnem newsserver sind so ab 1000 bytes gross) eine immense 
Platzverschwendung. Solch eine Partition wäre bereits voll wenn sie zu einem 
viertel mit 1000 byte grossen Dateien gefüllt wäre da jede Datei mindestens 
einen Block von 4096 byte belegt.

(Es gibt Dateisysteme die ein sog. Sub-Block Allocation beherrschen, dort 
werden die Blöcke noch mal in Sub-Blöcke unterteilt (z.B. 4, 8, oder 16 
Sub-Blocks) und die Dateien können auch teilweise bereits belegte Blöcke 
nutzen. Wenn ich mich recht erinnere beherrschen jfs und xfs sub-block 
allocation, bin mir da aber nicht mehr ganz sicher, man möge mich berichtigen 
wenn ich hier falsch liege.
Dateisysteme wie ext3, xfs, jfs und andere sind auch in der lage die inodes 
dynamisch zu verwalten. So kommt es erst gar nicht zu dem von dir 
beobachteten Problem.)

Allerdings sind solche Szenarien _äusserst_ selten.

Häufiger kommt es vor das gerade ein externer Datenträger mit einem falschen 
FAT Dateisystem formatiert wurde. Ein 12-Bit FAT wie es für Disketten 
verwendet wird ist bei einer Festplatte mit einigen GB ein ziemlicher Schuss 
in den eigenen Fuss...

Von da her wäre es noch interessant zu wissen wie die Platte paritioniert und 
das Dateisystem formatiert wurde.


regards,
Thomas