J'ai besoin de créer un très grand nombre de fichiers qui ne sont pas très volumineux (comme 4 Ko, 8 Ko). Ce n'est pas possible sur mon ordinateur car cela prend tous les inodes jusqu'à 100% et je ne peux pas créer plus de fichiers:
$ df -i /dev/sda5
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda5 54362112 36381206 17980906 67% /scratch
(J'ai commencé à supprimer des fichiers, c'est pourquoi c'est maintenant 67%)
Les octets par nœud sont de 256 sur mon système de fichiers (ext4)
$ Sudo tune2fs -l /dev/sda5 | grep Inode
Inode count: 54362112
Inodes per group: 8192
Inode blocks per group: 512
Inode size: 256
Je me demande s'il est possible de régler cette valeur très bas même en dessous de 128 (lors du reformatage). Si oui, quelle valeur dois-je utiliser? THX
Les octets par défaut par inode sont généralement 16384, ce qui est la valeur par défaut inode_ratio
dans /etc/mke2fs.conf
(lu avant la création du système de fichiers). Si vous manquez d'inodes, vous pouvez essayer par exemple:
mkfs.ext4 -i 8192 /dev/mapper/main-var2
Une autre option qui affecte cela est -T
, généralement -T news
ce qui le réduit encore à 4096.
De plus, vous ne pouvez pas modifier le nombre d'inodes dans un système de fichiers ext3 ou ext4 sans le recréer ou le modifier en hexadécimal. Les systèmes de fichiers Reiser sont dynamiques, vous n'aurez donc jamais de problème avec eux.
Vous pouvez connaître le rapport approximatif des inodes en divisant la taille de l'espace disponible par le nombre d'inodes disponibles. Par exemple:
$ Sudo tune2fs -l /dev/sda1 | awk -F: ' \
/^Block count:/ { blocks = $2 } \
/^Inode count:/ { inodes = $2 } \
/^Block size:/ { block_size = $2 } \
END { blocks_per_inode = blocks/inodes; \
print "blocks per inode:\t", blocks_per_inode, \
"\nbytes per inode:\t", blocks_per_inode * block_size }'
blocks per inode: 3.99759
bytes per inode: 16374.1