From 340ee2f41ee30f8699e676171c37feeb33ca1435 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 29 Aug 2013 11:32:05 +0100 Subject: [PATCH] format: Add --label option for setting filesystem label. $ ./run ./format/virt-format -a /tmp/test.img --filesystem=ext2 --label=BOOT $ ./run ./cat/virt-filesystems -a /tmp/test.img --all --long -h Name Type VFS Label MBR Size Parent /dev/sda1 filesystem ext2 BOOT - 1.0G - /dev/sda1 partition - - 83 1.0G /dev/sda /dev/sda device - - - 1.0G - Thanks: Gerd Hoffmann (kraxel) (cherry picked from commit c46e41cb3c41f6283e0350cac6ef0b9178ed3941) --- format/format.c | 10 ++++++++++ format/virt-format.pod | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/format/format.c b/format/format.c index 718fb2b..cff0d82 100644 --- a/format/format.c +++ b/format/format.c @@ -47,6 +47,7 @@ const char *libvirt_uri = NULL; static const char *filesystem = NULL; static const char *vg = NULL, *lv = NULL; static const char *partition = "DEFAULT"; +static const char *label = NULL; static int wipe = 0; static int have_wipefs; @@ -77,6 +78,7 @@ usage (int status) " --filesystem=.. Create empty filesystem\n" " --format[=raw|..] Force disk format for -a option\n" " --help Display brief help\n" + " --label=.. Set filesystem label\n" " --lvm=.. Create Linux LVM2 logical volume\n" " --partition=.. Create / set partition type\n" " -v|--verbose Verbose messages\n" @@ -107,6 +109,7 @@ main (int argc, char *argv[]) { "filesystem", 1, 0, 0 }, { "format", 2, 0, 0 }, { "help", 0, 0, HELP_OPTION }, + { "label", 1, 0, 0 }, { "long-options", 0, 0, 0 }, { "lvm", 2, 0, 0 }, { "partition", 2, 0, 0 }, @@ -174,6 +177,8 @@ main (int argc, char *argv[]) partition = optarg; } else if (STREQ (long_options[option_index].name, "wipe")) { wipe = 1; + } else if (STREQ (long_options[option_index].name, "label")) { + label = optarg; } else { fprintf (stderr, _("%s: unknown long option: %s (%d)\n"), program_name, long_options[option_index].name, option_index); @@ -415,6 +420,11 @@ do_format (void) if (filesystem) { if (guestfs_mkfs_opts (g, filesystem, dev, -1) == -1) exit (EXIT_FAILURE); + + if (label) { + if (guestfs_set_label (g, dev, label) == -1) + exit (EXIT_FAILURE); + } } if (free_dev) diff --git a/format/virt-format.pod b/format/virt-format.pod index bcab888..ac2b8e6 100755 --- a/format/virt-format.pod +++ b/format/virt-format.pod @@ -114,6 +114,10 @@ If you have untrusted raw-format guest disk images, you should use this option to specify the disk format. This avoids a possible security problem with malicious guests (CVE-2010-3851). +=item B<--label=LABEL> + +Set the filesystem label. + =item B<--lvm=/dev/I/I> Create a Linux LVM2 logical volume called C/I>. You -- 1.8.3.1