В libparted, (я пользуюсь оберткой python-parted) когда разбиваешь диск на разделы, есть параметр алигмент. Что это такое само по себе - я знаю. Но. Там есть три функции: getConstraint() - возвращает обьект, позволяющий создавать партиции без алигментов.
minimalAlignedConstraint и optimalAlignedConstraint - как я понимаю, минимально рекомендуемые ограничения и оптимальные.
Так вот, если я создаю партиции с параметром optimalAlignedConstraint, то оно почему-то под алигн выделяет 15.69гиг. Не многовато ли? Откуда оно такое большое берется?
Код примера на гитхаб тут https://github.com/rhinstaller/pyparted/blob/master/examples/make_one_primary...
там они делают: disk.addPartition(partition=partition, constraint=device.optimalAlignedConstraint)
если используем device.minimalAlignedConstraint - размер алигн области 62.7мб
если используем device.optimalAlignedConstraint то размер алигн области 15.69гб перед началом партиции и 10 гиг после. Пятнадцадь гигов!!! И кроме того еще десять гигов обрезает с конца. Что это за алигн такой? Это нормально или это баг?
Инфа по винчестеру. Это ноутбучный hdd на 500гиг:
#print('give %s' % device)
give parted.Device instance --
model: ATA TOSHIBA MQ01ABD0 path: /dev/sdb type: 1
sectorSize: 512 physicalSectorSize: 4096
length: 976773168 openCount: 0 readOnly: False
externalMode: False dirty: False bootDirty: False
host: 5 did: 0 busy: False
hardwareGeometry: (60801, 255, 63) biosGeometry: (60801, 255, 63)
#print("minimumAligment=%s" % device.minimumAlignment )
minimumAligment=parted.Alignment instance --
offset: 0 grainSize: 8
#print("optimumAligment=%s" % device.optimumAlignment )
optimumAligment=parted.Alignment instance --
offset: 0 grainSize: 2048
Как видно из инфы, минимальный сектор, который рекомендуется должен быть кратен 8, но лучше чтобы был кратен 2048. Я подозреваю, что тут имеются в виду сектора логические (те что в данном винте по 512байт). Но даже если считать, что это предполагаются физические сектора, то оптимальный алигн должен быть 2048*4096=8метров, но никак не 16 гектар...