[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: выравнивание раздела: кому верить, fdisk или parted?



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

Reply to: