Nombre de sous répertoire autorisés

Fermé
cath - 8 févr. 2006 à 15:26
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 31 août 2007 à 14:19
Bonjour tout le monde,

J'aimerais savoir le nombre de sous répertoires créés autorisés. Savez vous ce qu'il faut faire pour savoir ?

je vous remercie

cathy
A voir également:

8 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 août 2007 à 17:20
Salut,

Quelqu'un aurait connaissance de l'existation de cette limite est en connaitrais la cause ?
La limite est defini dans les fichiers headers de kernel (voir en gras) à 32000
root@debian:/usr/src/linux# rgrep 'E.*LINK.*32000' .
./include/linux/ext3_fs.h:#define EXT3_LINK_MAX         32000
./include/linux/ext2_fs.h:#define EXT2_LINK_MAX         32000
./include/linux/ext4_fs.h:#define EXT4_LINK_MAX         32000

Tu peux compiler toi même un nouveau noyau et changer les valeurs (je n'est jamais testé)
5
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
31 août 2007 à 14:19
Salut,

je viens de tester et ça marche, donc j'ai mis au lieu de 32000 la valeur 64000
root@debian:~# time for i in $(seq 63000);do mkdir a_$i;done

real    5m55.440s
user    1m37.018s
sys     3m52.995s
root@debian:~# find . a_*  2>/dev/null | xargs ls -1 | wc -l
63005
root@debian:~#
2
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
8 févr. 2006 à 17:36
Ce n'est limite que par la taille du disque et de la facon de formatage (combien de "inodes" par Mo) mais normalement c'est un tres grand nombre qu'on arrive pas depasser.

Peut-etre il y a une limite pour la profondeur de l'arbre de sous-repertoires (c'est ca ta question ?) mais je ne suis meme pas sur pour ca. Peut-etre dans les anciennes versions de Linux c'etait limitee. En fait ici le nombre de caracteres dans un chemin absolu, de genre: "/dossier1/dossier2/..../dossiers99/fichier" poserait plus de problemes (si ca depasse 128 ou 256 caracteres) a cause de la shell que le nombre de dossiers eux memes.
0
Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015 51
8 févr. 2006 à 17:59
Bonjour à tous,
Ben en fait, ça dépend comment le système de fichiers est conçu plutôt que de la taille du disque (de la partition plus précisémment). Sur les FS utilisés sous linux (ext2 ext3 reiserFS etc...) je crois qu'il n'y a pas de limite dans le nombre d'inodes par répertoire (inode = objet quel qu'il soit, fichier, lien, répertoire, périphérique, etc), la limite se situe comme dit kmf dans la taille du chemin absolu. J'ai entendu dire qu'elle était de 4ko (soit 4096 caractères) donc pour arriver au bout, faut y aller !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci à vous 2 pour cette réponse détaillée. Alors, si on suppose qu'il y a une limite en nombre d'inodes dans un sous répertoire, savez vous une commande permettant de l'obtenir ?

Cathy
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
10 févr. 2006 à 10:17
Le nombre d'inodes est seulement limite pour toute une partitiation, un sous repertoire n'a pas d'autre limite qui serait inferieure. Le nombre d'inodes en total est typiquement tres grand, la seule facon de le depasser serait d'avoir pleins de tres petits fichiers (inferieur a 4 Ko ou similaire).

Toutefois pour connaitre le nombre d'inodes et pleins d'autres infos d'une partitions tu peux faire la commande:
/sbin/tune2fs -l /dev/hda1

ou /dev/hda1 est le nom de la partition qu'on regarde, ca peut aussi etre /dev/hda2, /dev/hda3 etc. (regarder avec "df" ou "cat /etc/fstabl" pour savoir quelles partitions avec quels points de montages tu as).

La commande "tune2fs ..." doit etre faite en root (administrateur), alors d'abord se connecteur en root avec "su -" et suivi du mot de pass de root.

Attention: Si on utilise "tune2fs" avec d'autres options que "-l" ca fait de choses modifiant les proprietes de la partition et potentiellement tres tres dangereuses (regarde les explication de la doc avec "man tune2fs").
0
Pour relancer le débat je suis confronter au problème suivant, dans un répertoire formaté en EXT3, il m'est impossible de créer plus de 32000 répertoires dans le même répertoire, le message d'erreur est le suivant :
mkdir: cannot create directory `31999': Too many links

Il n'y a pas de problème au niveau des inodes :
Filesystem Inodes IUsed IFree IUse%
/dev/sda1 656000 77163 578837 12%
none 258087 1 258086 1%
/dev/sda6 8339456 1035905 7303551 13%

Quelqu'un aurait connaissance de l'existation de cette limite est en connaitrais la cause ?

Merci d'avance pour vos réponses
0
dubcek Messages postés 18752 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 3 octobre 2024 5 619
29 août 2007 à 16:25
Hello
parce que chaque repertoire est lié au repertoire dans lequel il se trouve (c'est ..) et visiblement 32000 est la limite du nombre de liens.
faire ls -ld du repertoire por voir le nombre de liens
32000 est visiblement un entier. il faut voir le détail de la structure de l'inode : man inode(4) ou stat(2)
0