Tôi nghĩ rằng parted
chỉ chấp nhận tuyệt đối, không x+y
.
Bạn có thể làm như thế này: ( +
diễn giải bằng 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
... và nếu bạn muốn nối thêm, thì
# 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
Điều +1
này là hoàn toàn tùy chọn, tôi chỉ muốn để lại "bộ đệm" miễn phí 1MiB giữa các phân vùng, vì một số lý do.
Nếu bạn muốn xử lý tỷ lệ phần trăm, bạn cũng có thể lấy kích thước thiết bị từ vỏ, bằng cách sử dụng blockdev --getsize64 /dev/device
, do đó bạn có thể chuyển tất cả toán học ra khỏi một phần trong tập lệnh shell. Tôi làm điều này để đảm bảo các phân vùng phù hợp với MiB, vì tôi không bao giờ quá chắc chắn về ý parted
nghĩa chính xác của nó -a optimal
.
parted -a optimal /dev/sdd mkpart primary 0GB 10GB
hoạt động không?