512 bytes não é realmente o tamanho padrão do setor. Depende do seu hardware.
Você pode exibir quais setores físicos / lógicos dimensionam seus relatórios de disco por meio do /sys
pseudo sistema de arquivos, por exemplo:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Qual é a diferença entre esses dois valores?
- O
physical_block_size
é o tamanho mínimo de um bloco que o inversor é capaz de gravar em uma operação atômica.
- O
logical_block_size
é o menor tamanho que a unidade pode gravar (consulte a documentação do kernel do linux).
Portanto, se você tiver uma unidade de 4k, faz sentido que sua pilha de armazenamento (sistema de arquivos etc.) use algo igual ou superior ao tamanho do setor físico.
Esses valores também são exibidos nas versões recentes de fdisk
, por exemplo:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Nas atuais distribuições Linux, os programas (que devem se preocupar com o tamanho ótimo do setor) mkfs.xfs
escolherão o tamanho ideal do setor por padrão (por exemplo, 4096 bytes).
Mas você também pode especificá-lo explicitamente através de uma opção, por exemplo:
# mkfs.xfs -f -s size=4096 /dev/sda
Ou:
# mkfs.ext4 -F -b 4096 /dev/sda
De qualquer forma, a maioria das mkfs
variantes também exibirá o tamanho do bloco usado durante a execução.
Para um sistema de arquivos existente, o tamanho do bloco pode ser determinado com um comando como:
# xfs_info /mnt
[..]
meta-data= sectsz=4096
data = bsize=4096
naming =version 2 bsize=4096
log =internal bsize=4096
= sectsz=4096
realtime =none extsz=4096
Ou:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
Ou:
# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size 4
sys_array_size 97
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
dev_item.sector_size 4096
Ao criar o sistema de arquivos em uma partição, outra coisa a verificar é se o endereço inicial da partição está realmente alinhado ao tamanho do bloco físico. Por exemplo, observe a fdisk -l
saída, converta os endereços iniciais em bytes, divida-os pelo tamanho do bloco físico - o lembrete deve ser zero se as partições estiverem alinhadas.
mkfs.*
devem usar automaticamente o tamanho ideal do setor. Você pode fazer algunsmkfs.*
testes e inspecionar o resultado (na saída detalhada do mkfs ou em um programa utilitário fs relacionado).