struct gpt_header *header, uint64_t lba)
{
uint64_t first, last;
+ int has_id = 0;
if (!cxt || !header)
return -ENOSYS;
header->last_usable_lba = cpu_to_le64(last);
gpt_mknew_header_common(cxt, header, lba);
- uuid_generate_random((unsigned char *) &header->disk_guid);
- swap_efi_guid(&header->disk_guid);
+ if (cxt->script) {
+ const char *id = fdisk_script_get_header(cxt->script, "label-id");
+ if (id && string_to_guid(id, &header->disk_guid) == 0)
+ has_id = 1;
+ }
+
+ if (!has_id) {
+ uuid_generate_random((unsigned char *) &header->disk_guid);
+ swap_efi_guid(&header->disk_guid);
+ }
return 0;
}
int rc;
cxt = fdisk_new_context();
- fdisk_assign_device(cxt, devname, 1);
+ fdisk_assign_device(cxt, devname, 0);
dp = fdisk_new_script_from_file(cxt, scriptname);
if (!dp)
done:
fdisk_free_iter(itr);
fdisk_unref_table(tb);
+
+ /*fdisk_write_disklabel(cxt);*/
fdisk_unref_context(cxt);
return 0;
}