mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-15 10:12:58 +00:00
Merge pull request #185116 from NickCao/udev
nixos/udev: enable initrd-udevadm-cleanup-db.service in systemd stage 1
This commit is contained in:
commit
551296c657
@ -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"
|
||||
|
@ -23,6 +23,8 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
cryptroot2.device = "/dev/vdd";
|
||||
};
|
||||
virtualisation.bootDevice = "/dev/mapper/cryptroot";
|
||||
# test mounting device unlocked in initrd after switching root
|
||||
virtualisation.fileSystems."/cryptroot2".device = "/dev/mapper/cryptroot2";
|
||||
};
|
||||
};
|
||||
|
||||
@ -31,6 +33,8 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdc -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksFormat -q --iter-time=1 /dev/vdd -")
|
||||
machine.succeed("echo -n supersecret | cryptsetup luksOpen -q /dev/vdd cryptroot2")
|
||||
machine.succeed("mkfs.ext4 /dev/mapper/cryptroot2")
|
||||
|
||||
# Boot from the encrypted disk
|
||||
machine.succeed("bootctl set-default nixos-generation-1-specialisation-boot-luks.conf")
|
||||
@ -44,5 +48,6 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
|
||||
assert "/dev/mapper/cryptroot on / type ext4" in machine.succeed("mount")
|
||||
assert "/dev/mapper/cryptroot2 on /cryptroot2 type ext4" in machine.succeed("mount")
|
||||
'';
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user