512 octets n'est pas vraiment la taille de secteur par défaut. Cela dépend de votre matériel.
Vous pouvez afficher les tailles de secteurs physiques / logiques que votre disque signale via le /sys
pseudo système de fichiers, par exemple:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Quelle est la différence entre ces deux valeurs?
- C'est
physical_block_size
la taille minimale d'un bloc que le lecteur est capable d'écrire dans une opération atomique.
- C'est
logical_block_size
la plus petite taille que le disque soit capable d'écrire (cf. la documentation du noyau Linux).
Ainsi, si vous avez un lecteur 4k, il est logique que votre pile de stockage (système de fichiers, etc.) utilise quelque chose d'égal ou supérieur à la taille du secteur physique.
Ces valeurs sont également affichées dans les versions récentes de fdisk
, par exemple:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Sur les distributions Linux actuelles, les programmes (qui devraient se soucier de la taille optimale du secteur) comme mkfs.xfs
choisiront la taille optimale du secteur par défaut (par exemple 4096 octets).
Mais vous pouvez également le spécifier explicitement via une option, par exemple:
# mkfs.xfs -f -s size=4096 /dev/sda
Ou:
# mkfs.ext4 -F -b 4096 /dev/sda
Dans tous les cas, la plupart des mkfs
variantes afficheront également la taille de bloc utilisée lors de l'exécution.
Pour un système de fichiers existant, la taille du bloc peut être déterminée avec une commande comme:
# 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
Lors de la création du système de fichiers sur une partition, une autre chose à vérifier est alors si l'adresse de début de la partition est réellement alignée sur la taille du bloc physique. Par exemple, regardez la fdisk -l
sortie, convertissez les adresses de début en octets, divisez-les par la taille du bloc physique - le rappel doit être nul si les partitions sont alignées.
mkfs.*
devraient automatiquement utiliser la taille de secteur optimale. Vous pouvez faire desmkfs.*
tests et inspecter le résultat (soit dans la sortie détaillée de mkfs ou dans un programme utilitaire fs connexe).