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(