static char *arg_usr_options = NULL;
static char *arg_usr_hash = NULL;
static VolatileMode arg_volatile_mode = _VOLATILE_MODE_INVALID;
+static bool arg_verity = true;
STATIC_DESTRUCTOR_REGISTER(arg_root_what, freep);
STATIC_DESTRUCTOR_REGISTER(arg_root_fstype, freep);
}
if (isempty(arg_usr_what)) {
- log_debug("Could not find a usr= entry on the kernel command line.");
+ log_debug("Could not find a mount.usr= entry on the kernel command line.");
return 0;
}
if (proc_cmdline_value_missing(key, value))
return 0;
- return free_and_strdup_warn(&arg_root_what, value);
+ return free_and_strdup_warn(&arg_root_what, empty_to_null(value));
} else if (streq(key, "rootfstype")) {
if (proc_cmdline_value_missing(key, value))
return 0;
- return free_and_strdup_warn(&arg_root_fstype, value);
+ return free_and_strdup_warn(&arg_root_fstype, empty_to_null(value));
} else if (streq(key, "rootflags")) {
if (proc_cmdline_value_missing(key, value))
return 0;
- return free_and_strdup_warn(&arg_root_hash, value);
+ return free_and_strdup_warn(&arg_root_hash, empty_to_null(value));
} else if (streq(key, "mount.usr")) {
if (proc_cmdline_value_missing(key, value))
return 0;
- return free_and_strdup_warn(&arg_usr_what, value);
+ return free_and_strdup_warn(&arg_usr_what, empty_to_null(value));
} else if (streq(key, "mount.usrfstype")) {
if (proc_cmdline_value_missing(key, value))
return 0;
- return free_and_strdup_warn(&arg_usr_fstype, value);
+ return free_and_strdup_warn(&arg_usr_fstype, empty_to_null(value));
} else if (streq(key, "mount.usrflags")) {
if (proc_cmdline_value_missing(key, value))
return 0;
- return free_and_strdup_warn(&arg_usr_hash, value);
+ return free_and_strdup_warn(&arg_usr_hash, empty_to_null(value));
} else if (streq(key, "rw") && !value)
arg_root_rw = true;
log_warning("Failed to parse systemd.swap switch %s. Ignoring.", value);
else
arg_swap_enabled = r;
+
+ } else if (streq(key, "systemd.verity")) {
+
+ r = value ? parse_boolean(value) : 1;
+ if (r < 0)
+ log_warning("Failed to parse systemd.verity= kernel command line switch %s. Ignoring.", value);
+ else
+ arg_verity = r;
}
return 0;
if (!hash)
return 0;
+ if (!arg_verity)
+ return 0;
+
*what = path_join("/dev/mapper/", name);
if (!*what)
return log_oom();