diff --git a/src/partition/repart.c b/src/partition/repart.c index 58fb9c7c5d3..71ac2bc0197 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -2938,10 +2938,6 @@ static int run(int argc, char *argv[]) { if (r < 0) return r; - r = find_root(&node); - if (r < 0) - return r; - context = context_new(arg_seed); if (!context) return log_oom(); @@ -2950,6 +2946,13 @@ static int run(int argc, char *argv[]) { if (r < 0) return r; + if (context->n_partitions <= 0) + return 0; + + r = find_root(&node); + if (r < 0) + return r; + r = context_load_partition_table(context, node); if (r == -EHWPOISON) return 77; /* Special return value which means "Not GPT, so not doing anything". This isn't