mirror of
https://github.com/systemd/systemd.git
synced 2024-10-31 07:51:21 +03:00
repart: use /sysusr/ as --root= default in initrd, if mounted
This commit is contained in:
parent
a73b2ad041
commit
8f47e32a3e
@ -4318,8 +4318,18 @@ static int parse_argv(int argc, char *argv[]) {
|
|||||||
if (arg_image && arg_root)
|
if (arg_image && arg_root)
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Please specify either --root= or --image=, the combination of both is not supported.");
|
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Please specify either --root= or --image=, the combination of both is not supported.");
|
||||||
else if (!arg_image && !arg_root && in_initrd()) {
|
else if (!arg_image && !arg_root && in_initrd()) {
|
||||||
/* Default to operation on /sysroot when invoked in the initrd! */
|
|
||||||
|
/* By default operate on /sysusr/ or /sysroot/ when invoked in the initrd. We prefer the
|
||||||
|
* former, if it is mounted, so that we have deterministic behaviour on systems where /usr/
|
||||||
|
* is vendor-supplied but the root fs formatted on first boot. */
|
||||||
|
r = path_is_mount_point("/sysusr/usr", NULL, 0);
|
||||||
|
if (r <= 0) {
|
||||||
|
if (r < 0 && r != -ENOENT)
|
||||||
|
log_debug_errno(r, "Unable to determine whether /sysusr/usr is a mount point, assuming it is not: %m");
|
||||||
|
|
||||||
arg_root = strdup("/sysroot");
|
arg_root = strdup("/sysroot");
|
||||||
|
} else
|
||||||
|
arg_root = strdup("/sysusr");
|
||||||
if (!arg_root)
|
if (!arg_root)
|
||||||
return log_oom();
|
return log_oom();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user