Eu acho que você está confuso, possivelmente porque você leu vários documentos que usam uma terminologia diferente. Termos como "tamanho do bloco" e "tamanho do cluster" não têm um significado universal, mesmo dentro do contexto da literatura do sistema de arquivos.
Sistemas de arquivos
Para ext2 ou ext3 , a situação é relativamente simples: cada arquivo ocupa um certo número de blocos . Todos os blocos em um determinado sistema de arquivos possuem o mesmo tamanho, geralmente um de 1024, 2048 ou 4096 bytes. Um arquivo, cujo tamanho está entre N blocos mais um byte e N + 1, ocupa N + 1 blocos. Esse tamanho de bloco é o que você especifica com mke2fs -b
. Não há noção separada de clusters.
O sistema de arquivos FAT usado em particular pelo MS-DOS e versões anteriores do Windows tem uma alocação de espaço similarmente simples. O que o ext2 chama de blocos, o FAT chama clusters ; o conceito é o mesmo.
Alguns sistemas de arquivos têm um esquema de alocação mais sofisticado: eles têm blocos de tamanho fixo, mas podem usar o mesmo bloco para armazenar os últimos bytes de mais de um arquivo. Isso é conhecido como subalocação de blocos ; Reiserfs e Btrfs faça isso, mas não ext3 ou mesmo ext4.
Utilitários
Os utilitários Unix geralmente usam a palavra "bloco" para significar uma unidade de tamanho arbitrário, normalmente 512 bytes ou 1kB. Esse uso não está relacionado a nenhum sistema de arquivos ou hardware de disco específico. Historicamente, o bloco 512B surgiu porque discos e sistemas de arquivos na época frequentemente operavam em blocos de 512B, mas o uso moderno é apenas arbitrário. Utilitários e interfaces unix tradicionais ainda usam blocos 512B às vezes, embora Blocos de 1kB agora são geralmente preferidos . Você precisa verificar a documentação de cada utilitário para saber que tamanho de bloco está usando (alguns têm um switch, por exemplo, du -B
ou df -B
no Linux).
No utilitário stat
do GNU / Linux, o valor blocks
é o número de blocos de 512B usados pelo arquivo. O valor IO Block
é o tamanho preferido para o arquivo input-output, que é, em princípio, não relacionado, mas geralmente uma indicação do tamanho do bloco do sistema de arquivos subjacente (ou tamanho do cluster, se é isso que você quer chamar). Aqui, você tem um arquivo de 13 bytes, que ocupa um bloco no sistema de arquivos ext3 com um tamanho de bloco de 2048; portanto, o arquivo ocupa 4 unidades de 512 bytes (chamadas de "blocos" por stat
).
Discos
A maioria dos discos apresenta uma interface que mostra o disco como um grupo de setores . O disco só pode gravar ou ler um setor inteiro, não bits ou bytes individuais. A maioria dos discos rígidos possui setores de 512 bytes, embora os discos do setor de 4kB tenham começado há alguns anos.
O tamanho do setor do disco não está diretamente relacionado ao tamanho do bloco do sistema de arquivos, mas ter um bloco como um número inteiro de setores é melhor para o desempenho.
Exceção: arquivos esparsos economizam espaço.