else:
cmdline = []
- if roothash:
- cmdline += [roothash]
-
cmdline += context.config.kernel_command_line
- if not roothash:
- for name in ("root", "mount.usr"):
- type_prefix = name.removeprefix("mount.")
- if not (root := next((p.uuid for p in partitions if p.type.startswith(type_prefix)), None)):
- continue
+ for name in ("root", "mount.usr"):
+ type_prefix = name.removeprefix("mount.")
+ if not (root := next((p.uuid for p in partitions if p.type.startswith(type_prefix)), None)):
+ continue
- cmdline = [f"{name}=PARTUUID={root}" if c == f"{name}=PARTUUID" else c for c in cmdline]
+ cmdline = [f"{name}=PARTUUID={root}" if c == f"{name}=PARTUUID" else c for c in cmdline]
+
+ if roothash and (
+ (roothash.startswith("roothash=") and not any(c.startswith("root=") for c in cmdline))
+ or (roothash.startswith("usrhash=") and not any(c.startswith("mount.usr") for c in cmdline))
+ ):
+ cmdline += [roothash]
return cmdline