forked from mirrors/nixpkgs
8d40083690
Previously, the activation script was responsible for ensuring that /etc/machine-id exists. However, the only time it could not already exist is during stage-2-init, not while switching configurations, because one of the first things systemd does when starting up as PID 1 is to create this file. So I've moved the initialization to stage-2-init. Furthermore, since systemd will do the equivalent of systemd-machine-id-setup if /etc/machine-id doesn't have valid contents, we don't need to do that ourselves. We _do_, however, want to ensure that the file at least exists, because systemd also uses the non-existence of this file to guess that this is a first-boot situation. In that case, systemd tries to create some symlinks in /etc/systemd/system according to its presets, which it can't do because we've already populated /etc according to the current NixOS configuration. This is not necessary for any other activation script snippets, so it's okay to do it after stage-2-init runs the activation script. None of them declare a dependency on the "systemd" snippet. Also, most of them only create files or directories in ways that obviously don't need the machine-id set. |
||
---|---|---|
.. | ||
loader | ||
binfmt.nix | ||
coredump.nix | ||
emergency-mode.nix | ||
grow-partition.nix | ||
initrd-network.nix | ||
initrd-ssh.nix | ||
kernel.nix | ||
kexec.nix | ||
luksroot.nix | ||
modprobe.nix | ||
networkd.nix | ||
pbkdf2-sha512.c | ||
plymouth.nix | ||
resolved.nix | ||
shutdown.nix | ||
stage-1-init.sh | ||
stage-1.nix | ||
stage-2-init.sh | ||
stage-2.nix | ||
systemd-lib.nix | ||
systemd-nspawn.nix | ||
systemd-unit-options.nix | ||
systemd.nix | ||
timesyncd.nix | ||
tmp.nix |