On Thu, 5 Dec 2019, Sergey Spiridonov wrote:
В Wed, 4 Dec 2019 07:31:26 +0300 (MSK)
yuri.nefe...@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