Encontre o tamanho do cluster

Encontre o tamanho do cluster

Estou executando o Ubuntu 11.04 e estou me perguntando como encontrar o tamanho da unidade de alocação? Existe um comando no Ubuntu para descobrir isso? Dependendo também do tamanho da unidade de alocação, a quantidade total de espaço no disco rígido usado em um arquivo muda? Verifiquei os tamanhos dos arquivos usando lse du -bem ambos os casos estou obtendo os mesmos valores.

Incluindo dados:

 sudo tune2fs -l <file system> 
  Block count:              8052736
  Reserved block count:     402636
  Free blocks:              2797402
  First block:              0
  Block size:               4096
  Reserved GDT blocks:      1022
  Blocks per group:         32768
   Inode blocks per group:   512
  Flex block group size:    16
  Reserved blocks uid:      0 (user root)
  Reserved blocks gid:      0 (group root)
  Journal backup:           inode blocks

Portanto, se o tamanho do bloco for 4.096 bytes, os arquivos menores que 4.096 ocupam 4.096 bytes de armazenamento no disco rígido, e os arquivos maiores que 4.096 bytes, quanto espaço eles ocupam? Existe um comando para encontrar o mesmo?

Responder1

Edição da postagem principal:
Encontre o tamanho preventivamente:

temp = int(tamanho/bloco)  
if mod(tamanho/bloco) != 0:  
    temperatura += 1
temp = temp*bloco
temperatura de impressão

para saber quantos blocos um arquivo possui no disco:

eus -s

onde o tamanho do bloco é o tamanho do bloco de partição
e o tamanho do disco é o tamanho do bloco * número de blocos

Explicação sobre diferenças de terminologia de tamanho de bloco
sudo fdisk -l /dev/sda
onde /dev/sda é o disco rígido em questão

Disco /dev/sda: 500,1 GB, 500107862016 bytes
255 cabeçotes, 63 setores/pista, 60.801 cilindros, total de 976773168 setores
Unidades = setores de 1 * 512 = 512 bytes
Tamanho do setor (lógico/físico): 512 bytes/512 bytes
Tamanho de E/S (mínimo/ideal): 512 bytes/512 bytes
Identificador de disco: 0x000c1f6b

   Sistema de identificação de blocos de início de inicialização do dispositivo
/dev/sda1 * 63 498014 248976 83 Linux
/dev/sda2 498015 976768064 488135025 5 Estendido
/dev/sda5 498078 976768064 488134993+ 83 Linux
Isso lhe diz várias coisas. Alguém já disse isso melhor, então blockquote:

O problema com isso é que existem quatro unidades distintas que você deve ter em mente. Para piorar ainda mais a situação, duas dessas unidades têm o mesmo nome. Estas são as diferentes unidades:

  1. Tamanho do bloco de hardware, "tamanho do setor"
  2. Tamanho do bloco do sistema de arquivos, "tamanho do bloco"
  3. Tamanho do bloco de cache do buffer do kernel, "tamanho do bloco"
  4. Tamanho do bloco da tabela de partição, "tamanho do cilindro"

Para diferenciar entre o tamanho do bloco do sistema de arquivos e o tamanho do bloco do cache do buffer, seguirei a terminologia FAT e usarei "tamanho do cluster" para o tamanho do bloco do sistema de arquivos.

O tamanho do setor são as unidades com as quais o hardware lida. Isso varia entre diferentes tipos de hardware, mas a maioria do hardware estilo PC (disquetes, discos IDE, etc.) usa setores de 512 bytes.

O tamanho do cluster é a unidade de alocação que o sistema de arquivos usa e é o que causa a fragmentação - tenho certeza que você sabe disso. Em um sistema de arquivos ext3 de tamanho moderado, geralmente são 4.096 bytes, mas você pode verificar isso com dumpe2fs. Lembre-se de que eles também são geralmente chamados de "blocos", só que aqui me refiro a eles como clusters.

O tamanho do cluster é o que é retornado em st_blksize no buffer estatístico, para que os programas possam calcular o uso real do disco de um arquivo.

O tamanho do bloco é o tamanho dos buffers que o kernel usa internamente quando armazena em cache setores que foram lidos de dispositivos de armazenamento (daí o nome "dispositivo de bloco"). Como esta é a forma mais primitiva de armazenamento no kernel, todos os tamanhos de cluster do sistema de arquivos devem ser múltiplos disso. Esse tamanho de bloco também é quase sempre referido pelos programas do espaço do usuário. Por exemplo, quando você executa "du" sem as opções -h ou -H, ele retornará quantos desses blocos um arquivo ocupa. df também reportará tamanhos nesses blocos, a coluna "Blocos" na saída fdisk -l é desse tipo e assim por diante. É o que é mais comumente chamado de "bloco". Dois setores de disco cabem em cada bloco.

O tamanho do cilindro é usado apenas na tabela de partição e pelo BIOS (e o BIOS não é usado pelo Linux).

"df" opera apenas em sistemas de arquivos, então não, não pode ser usado sem um sistema de arquivos - sem um sistema de arquivos, os dados que ele retornaria não existem. "du" opera em arquivos individuais.

deaqui.

Responder2

statcomando executado com um ponto de montagem como parâmetro, mostra o tamanho do cluster do sistema de arquivos na IO Blockpropriedade

stat /dev/shm/minifs-mounted

mostrará

  File: /dev/shm/minifs-mounted
  Size: 1024            Blocks: 2          IO Block: 1024   directory
Device: 709h/1801d      Inode: 2           Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-12-27 14:03:15.000000000 -0300
Modify: 2022-12-27 14:01:50.000000000 -0300
Change: 2022-12-27 14:01:50.000000000 -0300
 Birth: -

as informações acima pertencem a um sistema de arquivos criado com

cd /dev/shm
dd if=/dev/zero bs=1M count=100 of=minifs.img
mkfs.ext4 -b 1024 ./minifs.img
mount -o loop minifs.img minifs-mounted

forçando cluster de 1024 bytes de comprimento

informação relacionada