Відповіді:
Я думаю, що 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
абсолютно необов’язково, мені просто подобається залишати 1MiB вільних "бамперів" між розділами, чомусь.
Якщо ви хочете мати справу з відсотками, ви також можете отримати розмір пристрою з оболонки, використовуючи blockdev --getsize64 /dev/device
, так що ви можете перемістити всю математику з розбитого на скрипт оболонки. Я роблю це, щоб гарантувати вирівнювання MiB-розділів, оскільки я ніколи не знаю, що parted
саме означає -a optimal
.
parted -a optimal /dev/sdd mkpart primary 0GB 10GB
працює?