512 байт насправді не є типовим розміром сектора. Це залежить від вашого обладнання.
Ви можете відобразити, які фізичні / логічні сектори розміщують звіти вашого диска через /sys
псевдофайлову систему, наприклад:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Яка різниця між цими двома значеннями?
physical_block_size
Є мінімальним розміром блоку привід має можливість писати в атомарної операції.
logical_block_size
Найменший розмір диск здатний писати (див документації ядра Linux).
Таким чином, якщо у вас диск 4k, має сенс, що ваш стек зберігання даних (файлова система тощо) використовує щось рівне або більше, ніж розмір фізичного сектора.
Ці значення також відображаються в останніх версіях fdisk
, наприклад:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
У поточних дистрибутивах Linux такі програми (які повинні піклуватися про оптимальний розмір сектору), як-от mkfs.xfs
, виберуть оптимальний розмір сектору за замовчуванням (наприклад, 4096 байт).
Але ви також можете чітко вказати це за допомогою параметра, наприклад:
# mkfs.xfs -f -s size=4096 /dev/sda
Або:
# mkfs.ext4 -F -b 4096 /dev/sda
У будь-якому випадку, більшість mkfs
варіантів також відображатиме використаний розмір блоку під час виконання.
Для існуючої файлової системи розмір блоку можна визначити за допомогою команди типу:
# 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
Або:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
Або:
# 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
Створюючи файлову систему на розділі, ще одна річ, яку потрібно перевірити, - це те, чи дійсно адреса початкового розділу розділена на фізичний розмір блоку. Наприклад, подивіться на fdisk -l
вихід, конвертуйте початкові адреси в байти, розділіть їх на фізичний розмір блоку - якщо нагадування вирівняно, нагадування має бути нульовим.
mkfs.*
повинні автоматично використовувати оптимальний розмір сектору. Ви можете зробити кількаmkfs.*
тестів і перевірити результат (або у багатослівному виведенні mkfs, або у відповідній програмі fs).