512 byte non corrispondono in realtà alle dimensioni del settore predefinito. Dipende dal tuo hardware.
Puoi visualizzare quale settore fisico / logico dimensiona i rapporti del tuo disco tramite lo /sys
pseudo filesystem, ad esempio:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Qual è la differenza tra questi due valori?
- La
physical_block_size
è la lunghezza minima di un blocco l'unità è in grado di scrivere in un'operazione atomica.
- Il
logical_block_size
è la dimensione più piccola l'unità è in grado di scrivere (Cf. la documentazione del kernel linux).
Pertanto, se si dispone di un'unità 4k, è logico che lo stack di archiviazione (file system ecc.) Utilizzi qualcosa di uguale o maggiore delle dimensioni del settore fisico.
Tali valori vengono visualizzati anche nelle versioni recenti di fdisk
, ad esempio:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Sulle attuali distribuzioni di Linux, i programmi (che dovrebbero preoccuparsi della dimensione ottimale del settore) mkfs.xfs
sceglieranno come impostazione predefinita la dimensione ottimale del settore (es. 4096 byte).
Ma puoi anche specificarlo esplicitamente tramite un'opzione, ad esempio:
# mkfs.xfs -f -s size=4096 /dev/sda
O:
# mkfs.ext4 -F -b 4096 /dev/sda
In ogni caso, la maggior parte delle mkfs
varianti visualizzerà anche la dimensione del blocco utilizzato durante l'esecuzione.
Per un filesystem esistente la dimensione del blocco può essere determinata con un comando come:
# 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
O:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
O:
# 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
Quando si crea il filesystem su una partizione, un'altra cosa da verificare è se l'indirizzo iniziale della partizione è effettivamente allineato alla dimensione del blocco fisico. Ad esempio, guardare l' fdisk -l
output, convertire gli indirizzi iniziali in byte, dividerli per la dimensione del blocco fisico: il promemoria deve essere zero se le partizioni sono allineate.
mkfs.*
dovrebbero utilizzare automaticamente la dimensione ottimale del settore. È possibile eseguire alcunimkfs.*
test e ispezionare il risultato (nell'output dettagliato di mkfs o in un programma di utilità fs correlato).