Создать раздел с точным размером, а не на определенное расстояние

11

Как создать раздел точного размера, а не на определенном расстоянии?

Я пытался:

parted -a optimal /dev/sdd mkpart primary 0% 0%+1GB
# and...
parted -a optimal /dev/sdd mkpart primary 0% +1GB

Но безрезультатно.

Как мне сделать так, чтобы он принимал размер вместо конечного расстояния?

joltmode
источник
Какие сообщения об ошибках вы получаете? Работает ли parted -a optimal /dev/sdd mkpart primary 0GB 10GB?
Тердон

Ответы:

7

Я думаю, что partedпринимает только абсолюты, а не x+y.

Вы можете сделать это так: ( +интерпретируется оболочкой)

# start=1
# size=512
# parted /dev/loop0 unit mib mkpart primary $start $(($start+$size))
# parted /dev/loop0 unit mib print free
Model: Loopback device (loopback)
Disk /dev/loop0: 1000MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End      Size     File system  Name     Flags
        0.02MiB  1.00MiB  0.98MiB  Free Space
 1      1.00MiB  513MiB   512MiB                primary
        513MiB   1000MiB  487MiB   Free Space

... и если вы хотите добавить больше, то

# start=$(($start+$size+1))
# size=128
# parted /dev/loop0 unit mib mkpart primary $start $(($start+$size))
# parted /dev/loop0 unit mib print free                           
Model: Loopback device (loopback)
Disk /dev/loop0: 1000MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start    End      Size     File system  Name     Flags
        0.02MiB  1.00MiB  0.98MiB  Free Space
 1      1.00MiB  513MiB   512MiB                primary
        513MiB   514MiB   1.00MiB  Free Space
 2      514MiB   642MiB   128MiB                primary
        642MiB   1000MiB  358MiB   Free Space

Это +1совершенно необязательно, по какой-то причине мне просто нравится оставлять «бампера» на 1 МБ между разделами.

Если вы хотите работать с процентами, вы также можете получить размер устройства из оболочки, используя blockdev --getsize64 /dev/device, так что вы можете переместить всю математику из разделенных в сценарий оболочки. Я делаю это, чтобы гарантировать выравнивание по MiB, поскольку я никогда не уверен, что partedименно означает -a optimal.

frostschutz
источник