mirror of
https://github.com/Dasharo/systemd.git
synced 2026-03-06 15:02:31 -08:00
mkfs-util: Add quiet argument to make_filesystem()
We default to quiet operation everywhere except for repart, where we disable quiet and have the mkfs tools write to stdout. We also make sure --quiet or equivalent is implemented for all mkfs tools.
This commit is contained in:
@@ -2356,7 +2356,15 @@ int home_create_luks(
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to determine mkfs command line options for '%s': %m", fstype);
|
||||
|
||||
r = make_filesystem(setup->dm_node, fstype, user_record_user_name_and_realm(h), NULL, fs_uuid, user_record_luks_discard(h), 0, extra_mkfs_options);
|
||||
r = make_filesystem(setup->dm_node,
|
||||
fstype,
|
||||
user_record_user_name_and_realm(h),
|
||||
/* root = */ NULL,
|
||||
fs_uuid,
|
||||
user_record_luks_discard(h),
|
||||
/* quiet = */ true,
|
||||
/* sector_size = */ 0,
|
||||
extra_mkfs_options);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -70,7 +70,15 @@ static int run(int argc, char *argv[]) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to extract file name from '%s': %m", device);
|
||||
|
||||
return make_filesystem(device, fstype, label, NULL, uuid, true, 0, NULL);
|
||||
return make_filesystem(device,
|
||||
fstype,
|
||||
label,
|
||||
/* root = */ NULL,
|
||||
uuid,
|
||||
/* discard = */ true,
|
||||
/* quiet = */ true,
|
||||
/* sector_size = */ 0,
|
||||
/* extra_mkfs_options = */ NULL);
|
||||
}
|
||||
|
||||
DEFINE_MAIN_FUNCTION(run);
|
||||
|
||||
@@ -4270,7 +4270,8 @@ static int context_mkfs(Context *context) {
|
||||
p->format);
|
||||
|
||||
r = make_filesystem(partition_target_path(t), p->format, strempty(p->new_label), root,
|
||||
p->fs_uuid, arg_discard, context->sector_size, extra_mkfs_options);
|
||||
p->fs_uuid, arg_discard, /* quiet = */ false, context->sector_size,
|
||||
extra_mkfs_options);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -5604,7 +5605,7 @@ static int context_minimize(Context *context) {
|
||||
p->format);
|
||||
|
||||
r = make_filesystem(d ? d->node : temp, p->format, strempty(p->new_label), root, fs_uuid,
|
||||
arg_discard, context->sector_size, extra_mkfs_options);
|
||||
arg_discard, /* quiet = */ false, context->sector_size, extra_mkfs_options);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -5669,7 +5670,7 @@ static int context_minimize(Context *context) {
|
||||
return log_error_errno(r, "Failed to make loopback device of %s: %m", temp);
|
||||
|
||||
r = make_filesystem(d ? d->node : temp, p->format, strempty(p->new_label), root, p->fs_uuid,
|
||||
arg_discard, context->sector_size, extra_mkfs_options);
|
||||
arg_discard, /* quiet = */ false, context->sector_size, extra_mkfs_options);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
||||
@@ -264,6 +264,7 @@ int make_filesystem(
|
||||
const char *root,
|
||||
sd_id128_t uuid,
|
||||
bool discard,
|
||||
bool quiet,
|
||||
uint64_t sector_size,
|
||||
char * const *extra_mkfs_args) {
|
||||
|
||||
@@ -355,7 +356,6 @@ int make_filesystem(
|
||||
/* When changing this conditional, also adjust the log statement below. */
|
||||
if (STR_IN_SET(fstype, "ext2", "ext3", "ext4")) {
|
||||
argv = strv_new(mkfs,
|
||||
"-q",
|
||||
"-L", label,
|
||||
"-U", vol_id,
|
||||
"-I", "256",
|
||||
@@ -368,9 +368,11 @@ int make_filesystem(
|
||||
if (root && strv_extend_strv(&argv, STRV_MAKE("-d", root), false) < 0)
|
||||
return log_oom();
|
||||
|
||||
if (quiet && strv_extend(&argv, "-q") < 0)
|
||||
return log_oom();
|
||||
|
||||
} else if (streq(fstype, "btrfs")) {
|
||||
argv = strv_new(mkfs,
|
||||
"-q",
|
||||
"-L", label,
|
||||
"-U", vol_id,
|
||||
node);
|
||||
@@ -383,9 +385,11 @@ int make_filesystem(
|
||||
if (root && strv_extend_strv(&argv, STRV_MAKE("-r", root), false) < 0)
|
||||
return log_oom();
|
||||
|
||||
if (quiet && strv_extend(&argv, "-q") < 0)
|
||||
return log_oom();
|
||||
|
||||
} else if (streq(fstype, "f2fs")) {
|
||||
argv = strv_new(mkfs,
|
||||
"-q",
|
||||
"-g", /* "default options" */
|
||||
"-f", /* force override, without this it doesn't seem to want to write to an empty partition */
|
||||
"-l", label,
|
||||
@@ -393,13 +397,15 @@ int make_filesystem(
|
||||
"-t", one_zero(discard),
|
||||
node);
|
||||
|
||||
if (quiet && strv_extend(&argv, "-q") < 0)
|
||||
return log_oom();
|
||||
|
||||
} else if (streq(fstype, "xfs")) {
|
||||
const char *j;
|
||||
|
||||
j = strjoina("uuid=", vol_id);
|
||||
|
||||
argv = strv_new(mkfs,
|
||||
"-q",
|
||||
"-L", label,
|
||||
"-m", j,
|
||||
"-m", "reflink=1",
|
||||
@@ -427,6 +433,9 @@ int make_filesystem(
|
||||
return log_oom();
|
||||
}
|
||||
|
||||
if (quiet && strv_extend(&argv, "-q") < 0)
|
||||
return log_oom();
|
||||
|
||||
} else if (streq(fstype, "vfat")) {
|
||||
|
||||
argv = strv_new(mkfs,
|
||||
@@ -444,32 +453,40 @@ int make_filesystem(
|
||||
}
|
||||
|
||||
/* mkfs.vfat does not have a --quiet option so let's redirect stdout to /dev/null instead. */
|
||||
stdio_fds[1] = -EBADF;
|
||||
if (quiet)
|
||||
stdio_fds[1] = -EBADF;
|
||||
|
||||
} else if (streq(fstype, "swap"))
|
||||
/* TODO: add --quiet here if
|
||||
* https://github.com/util-linux/util-linux/issues/1499 resolved. */
|
||||
} else if (streq(fstype, "swap")) {
|
||||
/* TODO: add --quiet once util-linux v2.38 is available everywhere. */
|
||||
|
||||
argv = strv_new(mkfs,
|
||||
"-L", label,
|
||||
"-U", vol_id,
|
||||
node);
|
||||
|
||||
else if (streq(fstype, "squashfs")) {
|
||||
if (quiet)
|
||||
stdio_fds[1] = -EBADF;
|
||||
|
||||
} else if (streq(fstype, "squashfs")) {
|
||||
|
||||
argv = strv_new(mkfs,
|
||||
root, node,
|
||||
"-noappend");
|
||||
|
||||
/* mksquashfs -quiet option is pretty new so let's redirect stdout to /dev/null instead. */
|
||||
stdio_fds[1] = -EBADF;
|
||||
if (quiet)
|
||||
stdio_fds[1] = -EBADF;
|
||||
|
||||
} else if (streq(fstype, "erofs"))
|
||||
} else if (streq(fstype, "erofs")) {
|
||||
|
||||
argv = strv_new(mkfs,
|
||||
"-U", vol_id,
|
||||
node, root);
|
||||
else
|
||||
|
||||
if (quiet && strv_extend(&argv, "--quiet") < 0)
|
||||
return log_oom();
|
||||
|
||||
} else
|
||||
/* Generic fallback for all other file systems */
|
||||
argv = strv_new(mkfs, node);
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ int make_filesystem(
|
||||
const char *root,
|
||||
sd_id128_t uuid,
|
||||
bool discard,
|
||||
bool quiet,
|
||||
uint64_t sector_size,
|
||||
char * const *extra_mkfs_args);
|
||||
|
||||
|
||||
@@ -245,16 +245,16 @@ static int run(int argc, char *argv[]) {
|
||||
assert_se(r >= 0);
|
||||
|
||||
assert_se(sd_id128_randomize(&id) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_ESP].node, "vfat", "EFI", NULL, id, true, 0, NULL) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_ESP].node, "vfat", "EFI", NULL, id, true, false, 0, NULL) >= 0);
|
||||
|
||||
assert_se(sd_id128_randomize(&id) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_XBOOTLDR].node, "vfat", "xbootldr", NULL, id, true, 0, NULL) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_XBOOTLDR].node, "vfat", "xbootldr", NULL, id, true, false, 0, NULL) >= 0);
|
||||
|
||||
assert_se(sd_id128_randomize(&id) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_ROOT].node, "ext4", "root", NULL, id, true, 0, NULL) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_ROOT].node, "ext4", "root", NULL, id, true, false, 0, NULL) >= 0);
|
||||
|
||||
assert_se(sd_id128_randomize(&id) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_HOME].node, "ext4", "home", NULL, id, true, 0, NULL) >= 0);
|
||||
assert_se(make_filesystem(dissected->partitions[PARTITION_HOME].node, "ext4", "home", NULL, id, true, false, 0, NULL) >= 0);
|
||||
|
||||
dissected = dissected_image_unref(dissected);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user