57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ pkgs, ... }:
 | 
						|
 | 
						|
{
 | 
						|
 | 
						|
  environment.systemPackages = [ pkgs.mdadm ];
 | 
						|
 | 
						|
  services.udev.packages = [ pkgs.mdadm ];
 | 
						|
 | 
						|
  boot.initrd.availableKernelModules = [ "md_mod" "raid0" "raid1" "raid10" "raid456" ];
 | 
						|
 | 
						|
  boot.initrd.extraUdevRulesCommands = ''
 | 
						|
    cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
 | 
						|
  '';
 | 
						|
 | 
						|
  systemd.services.mdadm-shutdown = {
 | 
						|
    wantedBy = [ "final.target"];
 | 
						|
    after = [ "umount.target" ];
 | 
						|
 | 
						|
    unitConfig = {
 | 
						|
      DefaultDependencies = false;
 | 
						|
    };
 | 
						|
 | 
						|
    serviceConfig = {
 | 
						|
      Type = "oneshot";
 | 
						|
      ExecStart = ''${pkgs.mdadm}/bin/mdadm --wait-clean --scan'';
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  systemd.services."mdmon@" = {
 | 
						|
    description = "MD Metadata Monitor on /dev/%I";
 | 
						|
 | 
						|
    unitConfig.DefaultDependencies = false;
 | 
						|
 | 
						|
    serviceConfig = {
 | 
						|
      Type = "forking";
 | 
						|
      Environment = "IMSM_NO_PLATFORM=1";
 | 
						|
      ExecStart = ''${pkgs.mdadm}/bin/mdmon --offroot --takeover %I'';
 | 
						|
      KillMode = "none";
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  systemd.services."mdadm-grow-continue@" = {
 | 
						|
    description = "Manage MD Reshape on /dev/%I";
 | 
						|
 | 
						|
    unitConfig.DefaultDependencies = false;
 | 
						|
 | 
						|
    serviceConfig = {
 | 
						|
      ExecStart = ''${pkgs.mdadm}/bin/mdadm --grow --continue /dev/%I'';
 | 
						|
      StandardInput = "null";
 | 
						|
      StandardOutput = "null";
 | 
						|
      StandardError = "null";
 | 
						|
      KillMode = "none";
 | 
						|
    };
 | 
						|
  };
 | 
						|
 
 | 
						|
}
 |