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

Inodes löschen?

Nexion

Newbie
Hallo Leute,

ich habe hier das Problem mit inodes.

Hintergrund ist der das unser Kunde eine Suse 8.2-Maschine laufen hat auf der ein NT-Basic emuliert wird. Es werden Daten im /home-Verzeichnis abgelegt die dann in der Emulation verwendet werden.

Jetzt habe ich das Problem das die Inodes im /home-Verzeichnis 6stellig sind und das zu Problemen führt.

Das home-Verzeichnis ist eine seperate Partition.

bin wie folgt vorgegangen.

- die Daten aus dem home-Verzeichnis gepackt und wegkopiert

init 1

umount /home

mkfs.ext3 /dev/sda4

mount /dev/sda4 /home

init 5

Daten wieder ins home-Verzeichnis entpackt.

Wenn ich eine neue Datei im home-Verzeichnis anlege bekommt diese auch inode 12.

Die Dateien die ich aber entpackt habe, bekommen wieder 6-8stellige inodes.

Daher die Frage:

Wie bekomm ich es hin das die neue Inodes für die entpackten Daten vergeben werden?

Hoffe es weiß jemand ne Lösung.

lg Nexion
 

stka

Guru
Also verwendest du Samba? Oder was meinst du mit NT-Emulation? Wenn ja, was haben die Inodes damit zu tun? Inodes sind abhängig von der Größe der Partition und der Größe der einzelnen Datenblöcke. Welche Fehlermeldungen bekommst du wann?
 
A

Anonymous

Gast
Du kannst die Daten packen wie du es willst, wenn du sie in Filesystem wieder auspackst bekommen sie vom Filesystem automatisch neue Inode, und die gehen bei ext2/3/4 nunmal mit 12 los, da die 11 die erste frei zu Verfügung stehende Inode ist und die beim Anlegen für lost+found verwendet wird. Welche Inode verwendet werden, kannst du nicht bestimmen. Das Filesystem macht das automatisch und zwar so wie es will aus dem Fundus der Inode die es zur Verfügung hat. Die erste Datei bekommt in einem ext3 Dateisystem zB immer die Inode 12, da dieser Block ja nun einmal angefangen ist, wird dieser Inodblock dann auch für die ersten Inode des Rootverzeichnisses in diesem Filesystem verwendet. Legst du dort ein Verzeichnis an, und in diesem Verzeichnis dann Dateien, dann werden die bei einem ext3 ( bei moderenen ext4 ist das etwas anders) dann einen neuen Inodeblock zugewiesen bekommen, und der kann am ganz anderem Ende des Filesystem liegen, so das diese Inode dann auch schon 6 oder 7 Stellig sein könnten, obwohl eigentlich bisher nur eine Handvoll Inodes im Filesystem verwendet werden. Ob du die Dateien per Hand anlegst oder aus einem Backup einspielst ist dabei vollkommen Wurst, das Filesystem wird automatisch die Inode neu vergeben und im Filesystem verteilen ohne das du das beeinflussen kannst.

Wenn du wirklich die Inode auf 5 Stellen begrenzen willst, hast du nur eine einzige Möglichkeit dieses zu tun, in dem du beim Anlegen des Filesystems festlegst, das das Filesystem nur eine bestimmte Anzahl von Inodes erzeugt. bei mkfs.ext3 die Option -N in heutigen Versionen.
-N number-of-inodes
Overrides the default calculation of the number of inodes that should be reserved for the filesystem (which is based on the number f
blocks and the bytes-per-inode ratio). This allows the user to specify the number of desired inodes directly.
ob die Option über die Jahre gleich geblieben ist kannst du ja vorher mal in der Manpage nachschauen. mkfs wird wahrscheinlich deinen eingegebenen Wert auf einen durch 16 oder 32 teilbaren Wert auf oder abrunden. Es gibt noch eine andere Möglichkeit die Inodeanzahl zu bestimmen über das "byte-per-inode ratio" aber dazu brauchst du einen Taschenrechner und ein wenig mehr Wissen dann kann man über die Größe des Filesystems einen Wert errechnen der auch die Inodeanzahl genau bestimmt. Ist ein bissel kompliziert und ehr was für Profis.
Anschließend mit " tune2fs -l /dev/sd?? "den Wert von "Inode count" überprüfen, wenn dieser nicht 6 Stellig ist, dann kann dein Filesystem auch keine 6 Stelligen Inode verwenden. Bedenken musst du aber, du kannst nur soviele Dateien haben wie du auch Inodes hast, Ob es schon knapp wird, kannst du im eingehängten Filesystem mit "df -i" jederzeit überprüfen.

robi
 
Oben