Function mbr_part_type returns one of "primary", "extended" and "logical". The type is used by parted when adding partitions.
Signed-off-by: Hu Tao <[email protected]> --- resize/resize.ml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resize/resize.ml b/resize/resize.ml index b52af83..f1861d9 100644 --- a/resize/resize.ml +++ b/resize/resize.ml @@ -1094,10 +1094,17 @@ read the man page virt-resize(1). calculate_target_partitions 1 start ~create_surplus:true partitions in + let mbr_part_type x = + (* for GPT, all partitions are regarded as Primary Partition. *) + if parttype = GPT then "primary" + else if x.p_part.G.part_num <= 4l && x.p_type <> ContentExtendedPartition then "primary" + else if x.p_part.G.part_num <= 4l && x.p_type = ContentExtendedPartition then "extended" + else "logical" in + (* Now partition the target disk. *) List.iter ( fun p -> - g#part_add "/dev/sdb" "primary" p.p_target_start p.p_target_end + g#part_add "/dev/sdb" (mbr_part_type p) p.p_target_start p.p_target_end ) partitions; (* Copy over the data. *) -- 1.9.3 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
