Je pense que vous êtes confus, peut-être parce que vous avez lu plusieurs documents qui utilisent une terminologie différente. Des termes comme «taille de bloc» et «taille de cluster» n'ont pas de signification universelle, même dans le contexte de la littérature sur les systèmes de fichiers.
Systèmes de fichiers
Pour ext2 ou ext3 , la situation est relativement simple: chaque fichier occupe un certain nombre de blocs . Tous les blocs d'un système de fichiers donné ont la même taille, généralement l'un de 1024, 2048 ou 4096 octets. Un fichier¹ dont la taille est comprise entre N blocs plus un octet et N + 1 blocs occupe N + 1 blocs. Cette taille de bloc est ce que vous spécifiez avec mke2fs -b
. Il n'y a pas de notion distincte de clusters.
Le système de fichiers FAT utilisé en particulier par MS-DOS et les premières versions de Windows a une allocation d'espace similaire. Ce que ext2 appelle des blocs, FAT appelle des clusters ; Le concept est le même.
Certains systèmes de fichiers ont un schéma d'allocation plus sophistiqué: ils ont des blocs de taille fixe, mais peuvent utiliser le même bloc pour stocker les derniers octets de plusieurs fichiers. C'est ce qu'on appelle la sous -allocation de blocs ; Reiserfs et Btrfs le font, mais pas ext3 ni même ext4.
Utilitaires
Les utilitaires Unix utilisent souvent le mot «bloc» pour désigner une unité de taille arbitraire, généralement 512 octets ou 1 Ko. Cette utilisation n'est liée à aucun système de fichiers ou matériel de disque particulier. Historiquement, le bloc 512B a été créé parce que les disques et les systèmes de fichiers fonctionnaient alors à l’aide de blocs 512B, mais l’utilisation moderne est tout simplement arbitraire. Les utilitaires et interfaces Unix traditionnels utilisent encore parfois des blocs de 512B, bien que les blocs de 1 Ko soient maintenant souvent préférés . Vous devez vérifier la documentation de chaque utilitaire pour savoir quelle taille de bloc il utilise (certains ont un commutateur, par exemple du -B
ou df -B
sous Linux).
Dans l' stat
utilitaire GNU / Linux , le blocks
chiffre est le nombre de blocs 512B utilisés par le fichier. Le IO Block
chiffre est la taille préférée pour l'entrée-sortie du fichier, qui n'est en principe pas liée mais généralement une indication de la taille de bloc du système de fichiers sous-jacent (ou la taille du cluster si c'est ce que vous voulez appeler). Ici, vous avez un fichier de 13 octets, qui occupe un bloc sur le système de fichiers ext3 avec une taille de bloc de 2048; par conséquent, le fichier occupe 4 unités de 512 octets (appelées «blocs» par stat
).
Disques
La plupart des disques présentent une interface qui montre le disque comme un tas de secteurs . Le disque ne peut écrire ou lire qu'un secteur entier, pas des bits ou octets individuels. La plupart des disques durs ont des secteurs de 512 octets, bien que les disques de 4 Ko aient commencé à apparaître il y a quelques années.
La taille du secteur du disque n'est pas directement liée à la taille du bloc du système de fichiers, mais avoir un bloc composé d'un nombre entier de secteurs est meilleur pour les performances.
¹
Exception: les fichiers épars économisent de l'espace.