On Thu, 5 Dec 2019, Sergey Spiridonov wrote:
В Wed, 4 Dec 2019 07:31:26 +0300 (MSK) yuri.nefedov@gmail.com пишет:У parted есть опция unit (parted) print unit "s" Посмотрите, что она выдаст.В общем, что с выравниванием по цилиндру, что с "оптимальным" выравниванием, режет физический сектор на куски. Почему - непонятно. При это fdisk делает выравнивает на 4096 байт. Наверное надо слать багрепорт на партед? # parted -a cyl /dev/sdd GNU Parted 3.2 Using /dev/sdd Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mkpart primary 0% 100% (parted) print unit "s" Model: ICY BOX IB-366StU3+B (scsi) Disk /dev/sdd: 14000519643136B Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17408B 14000519626239B 14000519608832B primary (parted) print Model: ICY BOX IB-366StU3+B (scsi) Disk /dev/sdd: 27344764928s Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 34s 27344764894s 27344764861s primary # parted -a opt /dev/sdd GNU Parted 3.2 Using /dev/sdd Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) rm 1 (parted) mkpart primary 0% 100% (parted) print unit "s" Model: ICY BOX IB-366StU3+B (scsi) Disk /dev/sdd: 14,0TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 33,6MB 14,0TB 14,0TB primary (parted) print Model: ICY BOX IB-366StU3+B (scsi) Disk /dev/sdd: 27344764928s Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 65535s 27344740889s 27344675355s primary -- С уважением, Сергей Спиридонов
Боюсь, что баг-репорт не поможет, хотя можете попробовать.
Одно из возможных объяснений:
ICY BOX IB-366StU3+B - это ведь enclosure for USB 3.0?
Если контролер этой штуки прописывает optimal_io_size
как 33553920 (65535*512) то выравнивается именно на эту величину.
Логика работы parted строится таким образом [1]:
The heuristic parted uses is:
1) Always use the reported 'alignment_offset' as the offset for the
start of the first primary partition.
2a) If 'optimal_io_size' is defined (not 0) align all partitions on an
'optimal_io_size' boundary.
2b) If 'optimal_io_size' is undefined (0) and 'alignment_offset' is 0
and 'minimum_io_size' is a power of 2: use a 1MB default alignment.
- as you can see this is the catch all for "legacy" devices which
don't appear to provide "I/O hints"; so in the default case all
partitions will align on a 1MB boundary.
- NOTE: we can't distinguish between a "legacy" device and modern
device that provides "I/O hints" with alignment_offset=0 and
optimal_io_size=0. Such a device might be a single SAS 4K device.
So worst case we lose < 1MB of space at the start of the disk.
Для доступа к этим параметрам используют sys интерфейс [1]:
sysfs interface
---------------
/sys/block/<disk>/alignment_offset
/sys/block/<disk>/<partition>/alignment_offset
/sys/block/<disk>/queue/physical_block_size
/sys/block/<disk>/queue/logical_block_size
/sys/block/<disk>/queue/minimum_io_size
/sys/block/<disk>/queue/optimal_io_size
Ради любопытства, что выдает?
/sys/block/<disk>/queue/optimal_io_size
Так что остается один путь, сделать разбиение вручную.
> parted -a none <disk>
(parted) mkpart primary ext4 2048s 100%
Ю.
[1] https://people.redhat.com/msnitzer/docs/io-limits.txt