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