diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 6c70f50a6073f..6173fca20dbb1 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -160,6 +160,7 @@ let # Misc. "systemd-sysctl.service" + "systemd-machine-id-commit.service" ] ++ optionals cfg.package.withTimedated [ "dbus-org.freedesktop.timedate1.service" "systemd-timedated.service" diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix index 0742af6aa8406..63c52227e7fdc 100644 --- a/nixos/tests/systemd.nix +++ b/nixos/tests/systemd.nix @@ -85,10 +85,17 @@ import ./make-test-python.nix ({ pkgs, ... }: { import re import subprocess + machine.start(allow_reboot=True) + # Will not succeed unless ConditionFirstBoot=yes machine.wait_for_unit("first-boot-complete.target") + # Make sure, a subsequent boot isn't a ConditionFirstBoot=yes. + machine.reboot() machine.wait_for_x() + state = machine.get_unit_info("first-boot-complete.target")['ActiveState'] + assert state == 'inactive', "Detected first boot despite first-boot-completed.target was already reached on a previous boot." + # wait for user services machine.wait_for_unit("default.target", "alice")