Kann ich die Inode-Anzahl unter Linux erhöhen?

9

Ich habe einen Linux MIPS Router mit 2.4.17 Kernel. Root fs ist ein tmpfs und / rom ist ein cramfs. Es gibt 4 MB freien Speicher und 3 MB freien Speicher auf tmpfs.

Ich kann ein paar neue leere Dateien erstellen, aber die nächsten schlagen mit "nicht genügend Speicherplatz" fehl. Ich kann jedoch 1 MB Daten an eine vorhandene Datei anhängen. Mein Problem liegt also in der Inode-Zählung.

Und meine Fragen:

  1. Gibt es eine Möglichkeit, Inodes dynamisch zu erhöhen?
  2. Wenn ich es nicht dynamisch erhöhen kann - Wo kann ich es in Kernelquellen erhöhen?
vlad
quelle
Was sagt df -i?
womble
df in Busybox hat keine Option -i
Vlad
vlad: Was ist mit dem Befehl stat? Gibt es einen Befehl stat, der die Option -f unterstützt? dann einfach stat -f <mountpoint>. Wenn nicht und Sie können etwas c herausknallen und zu Mips kreuzen, können Sie vielleicht die statfs () oder Familienaufrufe selbst verwenden?
Kyle Brandt

Antworten:

5

Wenn die Anzahl der Inodes Ihr eigentliches Problem ist, können Sie die Anzahl der verfügbaren Inodes für das Dateisystem tmpfs mit der Mount-Option nr_inodes erhöhen. Wenn Sie nr_inodes = 0 setzen, gibt es unbegrenzte Inodes.

Alle diese Informationen finden Sie in der Dokumentation zum tmpfs-Kernel .

Ein Beispiel für eine erneute Montage finden Sie in der Antwort von womble. Zum Booten müssen Sie Ihre fstab bearbeiten oder was auch immer dies für Ihren speziellen Linux-Build tut, damit zukünftige Mounts korrekt behandelt werden.

Kyle Brandt
quelle
7

Mit der nr_inodesOption mount können Sie die Anzahl der in tmpfs verfügbaren Inodes festlegen . Um dies live zu machen, kannst du einfach laufen:

mount -o remount,nr_inodes=<bignum> /tmp

Ich vermute, dass das Festlegen dieser Zahl sehr, sehr groß zu einem hohen Speicherverbrauch führt. Seien Sie also vorsichtig.

womble
quelle