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).