summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Cao <nickcao@nichi.co>2022-08-04 17:06:03 +0800
committerNick Cao <nickcao@nichi.co>2022-11-21 14:33:27 +0800
commit51e4bd298f8a1b449aa6784dbfdf7d575e0c2549 (patch)
treeb183d7bd8dab536e1f53382e95da59eb6deb5990
parentc6e5939c8fa2ab2230baf1378a34746e8db1aed7 (diff)
downloadnixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.tar
nixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.tar.gz
nixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.tar.bz2
nixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.tar.lz
nixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.tar.xz
nixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.tar.zst
nixpkgs-51e4bd298f8a1b449aa6784dbfdf7d575e0c2549.zip
nixos/udev: enable initrd-udevadm-cleanup-db.service in systemd stage 1
-rw-r--r--nixos/modules/services/hardware/udev.nix9
1 files changed, 8 insertions, 1 deletions
diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix
index 7a7f8330243..d9526133241 100644
--- a/nixos/modules/services/hardware/udev.nix
+++ b/nixos/modules/services/hardware/udev.nix
@@ -46,6 +46,11 @@ let
     SUBSYSTEM=="input", KERNEL=="mice", TAG+="systemd"
   '';
 
+  nixosInitrdRules = ''
+    # Mark dm devices as db_persist so that they are kept active after switching root
+    SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS+="db_persist"
+  '';
+
   # Perform substitutions in all udev rules files.
   udevRulesFor = { name, udevPackages, udevPath, udev, systemd, binPackages, initrdBin ? null }: pkgs.runCommand name
     { preferLocalBuild = true;
@@ -364,8 +369,10 @@ in
         EOF
       '';
 
+    boot.initrd.services.udev.rules = nixosInitrdRules;
+
     boot.initrd.systemd.additionalUpstreamUnits = [
-      # TODO: "initrd-udevadm-cleanup-db.service" is commented out because of https://github.com/systemd/systemd/issues/12953
+      "initrd-udevadm-cleanup-db.service"
       "systemd-udevd-control.socket"
       "systemd-udevd-kernel.socket"
       "systemd-udevd.service"