Saya pikir parted
hanya menerima yang absolut, bukan x+y
.
Anda bisa melakukannya seperti ini: ( +
ditafsirkan oleh shell)
# 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
... dan jika Anda ingin menambahkan lebih banyak, maka
# 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
Ini +1
sepenuhnya opsional, saya hanya suka meninggalkan "bumper" 1MiB gratis di antara partisi, untuk beberapa alasan.
Jika Anda ingin berurusan dengan persentase, Anda dapat memperoleh ukuran perangkat dari shell juga, menggunakan blockdev --getsize64 /dev/device
, sehingga Anda dapat memindahkan semua matematika dari sebagian menjadi skrip shell. Saya melakukan ini untuk menjamin partisi MiB-aligned, karena saya tidak pernah terlalu yakin tentang apa yang parted
sebenarnya terjadi -a optimal
.
parted -a optimal /dev/sdd mkpart primary 0GB 10GB
bekerja?