int do_part_disk (const char *device, const char *parttype) { parttype = check_parttype (parttype); if (!parttype) { reply_with_error ("unknown partition type: common choices are \"gpt\" and \"msdos\""); return -1; } /* Align all partitions created this way to 128 sectors, and leave * the last 128 sectors at the end of the disk free. This wastes * 64K+64K = 128K on 512-byte sector disks. The rationale is: * * - aligned operations are faster * - absolute minimum recommended alignment is 64K (1M would be better) * - GPT requires at least 34 sectors at the end of the disk. */ const char *startstr = "128s"; const char *endstr = "-128s"; RUN_PARTED (return -1, device, "mklabel", parttype, /* See comment about about the parted mkpart command. */ "mkpart", STREQ (parttype, "gpt") ? "p1" : "primary", startstr, endstr, NULL); udev_settle (); return 0; }
int do_part_init (const char *device, const char *parttype) { int r; CLEANUP_FREE char *err = NULL; parttype = check_parttype (parttype); if (!parttype) { reply_with_error ("unknown partition type: common choices are \"gpt\" and \"msdos\""); return -1; } udev_settle (); r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, "parted", "-s", "--", device, "mklabel", parttype, NULL); if (r == -1) { reply_with_error ("parted: %s: %s", device, err); return -1; } udev_settle (); return 0; }
int do_part_init (const char *device, const char *parttype) { parttype = check_parttype (parttype); if (!parttype) { reply_with_error ("unknown partition type: common choices are \"gpt\" and \"msdos\""); return -1; } RUN_PARTED (return -1, device, "mklabel", parttype, NULL); udev_settle (); return 0; }
int do_part_disk (const char *device, const char *parttype) { int r; char *err; parttype = check_parttype (parttype); if (!parttype) { reply_with_error ("unknown partition type: common choices are \"gpt\" and \"msdos\""); return -1; } /* Align all partitions created this way to 128 sectors, and leave * the last 128 sectors at the end of the disk free. This wastes * 64K+64K = 128K on 512-byte sector disks. The rationale is: * * - aligned operations are faster * - absolute minimum recommended alignment is 64K (1M would be better) * - GPT requires at least 34 sectors* at the end of the disk. * * *=except for 4k sector disks, where only 6 sectors are required */ const char *startstr = "128s"; const char *endstr = "-128s"; udev_settle (); r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR, "parted", "-s", "--", device, "mklabel", parttype, /* See comment about about the parted mkpart command. */ "mkpart", STREQ (parttype, "gpt") ? "p1" : "primary", startstr, endstr, NULL); if (r == -1) { reply_with_error ("parted: %s: %s", device, err); free (err); return -1; } free (err); udev_settle (); return 0; }