diff options
author | Will Fancher <elvishjerricco@gmail.com> | 2023-04-22 10:39:30 -0400 |
---|---|---|
committer | Raito Bezarius <masterancpp@gmail.com> | 2023-10-30 12:15:58 +0100 |
commit | cca22054c073694e4ca49ca6471be8326d43316b (patch) | |
tree | 2dd09922dec1a2d07ae413ac8e7d742ae115e152 /nixos/modules/system | |
parent | ac1dd9de6ce5e3040c49101f21f204744905f418 (diff) | |
download | nixlib-cca22054c073694e4ca49ca6471be8326d43316b.tar nixlib-cca22054c073694e4ca49ca6471be8326d43316b.tar.gz nixlib-cca22054c073694e4ca49ca6471be8326d43316b.tar.bz2 nixlib-cca22054c073694e4ca49ca6471be8326d43316b.tar.lz nixlib-cca22054c073694e4ca49ca6471be8326d43316b.tar.xz nixlib-cca22054c073694e4ca49ca6471be8326d43316b.tar.zst nixlib-cca22054c073694e4ca49ca6471be8326d43316b.zip |
systemd-stage-1: Add assertions for unsupported options.
Diffstat (limited to 'nixos/modules/system')
-rw-r--r-- | nixos/modules/system/boot/initrd-network.nix | 8 | ||||
-rw-r--r-- | nixos/modules/system/boot/systemd/initrd.nix | 21 |
2 files changed, 25 insertions, 4 deletions
diff --git a/nixos/modules/system/boot/initrd-network.nix b/nixos/modules/system/boot/initrd-network.nix index 5696cae8e65b..88ba43caf003 100644 --- a/nixos/modules/system/boot/initrd-network.nix +++ b/nixos/modules/system/boot/initrd-network.nix @@ -116,11 +116,11 @@ in boot.initrd.kernelModules = [ "af_packet" ]; - boot.initrd.extraUtilsCommands = '' + boot.initrd.extraUtilsCommands = mkIf (!config.boot.initrd.systemd.enable) '' copy_bin_and_libs ${pkgs.klibc}/lib/klibc/bin.static/ipconfig ''; - boot.initrd.preLVMCommands = mkBefore ( + boot.initrd.preLVMCommands = mkIf (!config.boot.initrd.systemd.enable) (mkBefore ( # Search for interface definitions in command line. '' ifaces="" @@ -148,9 +148,9 @@ in done '' - + cfg.postCommands); + + cfg.postCommands)); - boot.initrd.postMountCommands = mkIf cfg.flushBeforeStage2 '' + boot.initrd.postMountCommands = mkIf (cfg.flushBeforeStage2 && !config.boot.initrd.systemd.enable) '' for iface in $ifaces; do ip address flush dev "$iface" ip link set dev "$iface" down diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix index 175e757cbbb6..3d42e26438d3 100644 --- a/nixos/modules/system/boot/systemd/initrd.nix +++ b/nixos/modules/system/boot/systemd/initrd.nix @@ -348,6 +348,27 @@ in { }; config = mkIf (config.boot.initrd.enable && cfg.enable) { + assertions = map (name: { + assertion = lib.attrByPath name (throw "impossible") config.boot.initrd == ""; + message = '' + systemd stage 1 does not support 'boot.initrd.${lib.concatStringsSep "." name}'. Please + convert it to analogous systemd units in 'boot.initrd.systemd'. + + Definitions: + ${lib.concatMapStringsSep "\n" ({ file, ... }: " - ${file}") (lib.attrByPath name (throw "impossible") options.boot.initrd).definitionsWithLocations} + ''; + }) [ + [ "preFailCommands" ] + [ "preDeviceCommands" ] + [ "preLVMCommands" ] + [ "postDeviceCommands" ] + [ "postMountCommands" ] + [ "extraUdevRulesCommands" ] + [ "extraUtilsCommands" ] + [ "extraUtilsCommandsTest" ] + [ "network" "postCommands" ] + ]; + system.build = { inherit initialRamdisk; }; boot.initrd.availableKernelModules = [ |