so, after digging for quite a while and wrapping my head around the whole concept of nixpkgs modules, I have finally found my answer. The swraid module unconditionally adds the
mdadm
package to the environment.systemPackages
.
I have reported the issue on GitHub, but for the time being I solved it by creating the module replacement:
{ config, lib, ... }:
with lib;
let
cfg = config.boot.initrd.services.swraid;
in
{
disabledModules = [ "tasks/swraid.nix" ];
options.boot.initrd.services.swraid = {
enable = (mkEnableOption (mdDoc "swraid support using mdadm")) // {
visible = false; # only has effect when the new stage 1 is in place
};
mdadmConf = mkOption {
description = mdDoc "Contents of {file}`/etc/mdadm.conf` in initrd.";
type = types.lines;
default = "";
};
};
config = {
assertions = [
{
assertion = cfg.enable != true;
message = "swraid is forcefully disabled";
}
];
};
}
Thanks once again @ryantm for giving me some clues to figure out the right direction!