From 75ddd3b2566ce3a007bd5731b910586b53d3e14f Mon Sep 17 00:00:00 2001 From: Antonio Alvarez Feijoo Date: Tue, 22 Oct 2024 16:49:39 +0200 Subject: [PATCH] mkosi-initrd: honor x-initrd.attach options in crypttab --- mkosi/initrd.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mkosi/initrd.py b/mkosi/initrd.py index 80c21ed38..a06511c96 100644 --- a/mkosi/initrd.py +++ b/mkosi/initrd.py @@ -169,6 +169,23 @@ def main() -> None: cmdline += ["--sandbox-tree", sandbox_tree] + # Generate crypttab with all the x-initrd.attach entries + if Path("/etc/crypttab").exists(): + crypttab = [ + line + for line in Path("/etc/crypttab").read_text().splitlines() + if ( + len(entry := line.split()) >= 4 + and not entry[0].startswith("#") + and "x-initrd.attach" in entry[3] + ) + ] + if crypttab: + with (Path(staging_dir) / "crypttab").open("w") as f: + f.write("# Automatically generated by mkosi-initrd\n") + f.write("\n".join(crypttab)) + cmdline += ["--extra-tree", f"{staging_dir}/crypttab:/etc/crypttab"] + # Prefer dnf as dnf5 has not yet officially replaced it and there's a much bigger chance that there # will be a populated dnf cache directory. run(