diff options
Diffstat (limited to 'nixos/modules/tasks')
-rw-r--r-- | nixos/modules/tasks/bcache.nix | 8 | ||||
-rw-r--r-- | nixos/modules/tasks/filesystems/bcachefs.nix | 14 | ||||
-rw-r--r-- | nixos/modules/tasks/lvm.nix | 17 | ||||
-rw-r--r-- | nixos/modules/tasks/swraid.nix | 8 |
4 files changed, 34 insertions, 13 deletions
diff --git a/nixos/modules/tasks/bcache.nix b/nixos/modules/tasks/bcache.nix index 408ddc02373..35b922dc8a1 100644 --- a/nixos/modules/tasks/bcache.nix +++ b/nixos/modules/tasks/bcache.nix @@ -1,8 +1,12 @@ { config, lib, pkgs, ... }: { - options.boot.initrd.services.bcache.enable = (lib.mkEnableOption (lib.mdDoc "bcache support in the initrd")) // { - visible = false; # only works with systemd stage 1 + options.boot.initrd.services.bcache.enable = lib.mkEnableOption (lib.mdDoc "bcache support in the initrd") // { + description = lib.mdDoc '' + *This will only be used when systemd is used in stage 1.* + + Whether to enable bcache support in the initrd. + ''; }; config = { diff --git a/nixos/modules/tasks/filesystems/bcachefs.nix b/nixos/modules/tasks/filesystems/bcachefs.nix index 851c0978133..19ef188ce78 100644 --- a/nixos/modules/tasks/filesystems/bcachefs.nix +++ b/nixos/modules/tasks/filesystems/bcachefs.nix @@ -6,6 +6,15 @@ let bootFs = filterAttrs (n: fs: (fs.fsType == "bcachefs") && (utils.fsNeededForBoot fs)) config.fileSystems; + mountCommand = pkgs.runCommand "mount.bcachefs" {} '' + mkdir -p $out/bin + cat > $out/bin/mount.bcachefs <<EOF + #!/bin/sh + exec "/bin/bcachefs" mount "\$@" + EOF + chmod +x $out/bin/mount.bcachefs + ''; + commonFunctions = '' prompt() { local name="$1" @@ -58,13 +67,12 @@ in boot.initrd.systemd.extraBin = { "bcachefs" = "${pkgs.bcachefs-tools}/bin/bcachefs"; - "mount.bcachefs" = pkgs.runCommand "mount.bcachefs" {} '' - cp -pdv ${pkgs.bcachefs-tools}/bin/.mount.bcachefs.sh-wrapped $out - ''; + "mount.bcachefs" = "${mountCommand}/bin/mount.bcachefs"; }; boot.initrd.extraUtilsCommands = lib.mkIf (!config.boot.initrd.systemd.enable) '' copy_bin_and_libs ${pkgs.bcachefs-tools}/bin/bcachefs + copy_bin_and_libs ${mountCommand}/bin/mount.bcachefs ''; boot.initrd.extraUtilsCommandsTest = '' $out/bin/bcachefs version diff --git a/nixos/modules/tasks/lvm.nix b/nixos/modules/tasks/lvm.nix index a14f26c02e4..325a5aa45b1 100644 --- a/nixos/modules/tasks/lvm.nix +++ b/nixos/modules/tasks/lvm.nix @@ -25,8 +25,12 @@ in { boot.vdo.enable = mkEnableOption (lib.mdDoc "support for booting from VDOLVs"); }; - options.boot.initrd.services.lvm.enable = (mkEnableOption (lib.mdDoc "enable booting from LVM2 in the initrd")) // { - visible = false; + options.boot.initrd.services.lvm.enable = mkEnableOption (lib.mdDoc "booting from LVM2 in the initrd") // { + description = lib.mdDoc '' + *This will only be used when systemd is used in stage 1.* + + Whether to enable booting from LVM2 in the initrd. + ''; }; config = mkMerge [ @@ -40,12 +44,13 @@ in { systemd.packages = [ cfg.package ]; services.udev.packages = [ cfg.package.out ]; - + }) + (mkIf config.boot.initrd.services.lvm.enable { # We need lvm2 for the device-mapper rules - boot.initrd.services.udev.packages = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ]; + boot.initrd.services.udev.packages = [ cfg.package ]; # The device-mapper rules want to call tools from lvm2 - boot.initrd.systemd.initrdBin = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ]; - boot.initrd.services.udev.binPackages = lib.mkIf config.boot.initrd.services.lvm.enable [ cfg.package ]; + boot.initrd.systemd.initrdBin = [ cfg.package ]; + boot.initrd.services.udev.binPackages = [ cfg.package ]; }) (mkIf cfg.dmeventd.enable { systemd.sockets."dm-event".wantedBy = [ "sockets.target" ]; diff --git a/nixos/modules/tasks/swraid.nix b/nixos/modules/tasks/swraid.nix index 7832bbf9201..1c3f1db1509 100644 --- a/nixos/modules/tasks/swraid.nix +++ b/nixos/modules/tasks/swraid.nix @@ -5,8 +5,12 @@ in { options.boot.initrd.services.swraid = { - enable = (lib.mkEnableOption (lib.mdDoc "swraid support using mdadm")) // { - visible = false; # only has effect when the new stage 1 is in place + enable = lib.mkEnableOption (lib.mdDoc "swraid support using mdadm") // { + description = '' + *This will only be used when systemd is used in stage 1.* + + Whether to enable swraid support using mdadm. + ''; }; mdadmConf = lib.mkOption { |