Skip to content

Commit

Permalink
sw-raid: make mdmon start from initrd
Browse files Browse the repository at this point in the history
Also add required systemd services for starting/stopping mdmon.

Closes #13447.
abbradar: fixed `mdadmShutdown` service name according to de facto conventions.
  • Loading branch information
kklas authored and abbradar committed Mar 9, 2016
1 parent b20439e commit aac666e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
1 change: 1 addition & 0 deletions nixos/modules/system/boot/stage-1.nix
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ let
# Add RAID mdadm tool.
copy_bin_and_libs ${pkgs.mdadm}/sbin/mdadm
copy_bin_and_libs ${pkgs.mdadm}/sbin/mdmon
# Copy udev.
copy_bin_and_libs ${udev}/lib/systemd/systemd-udevd
Expand Down
41 changes: 41 additions & 0 deletions nixos/modules/tasks/swraid.nix
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,45 @@
cp -v ${pkgs.mdadm}/lib/udev/rules.d/*.rules $out/
'';

systemd.services.mdadmShutdown = {
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";
};
};

}

0 comments on commit aac666e

Please sign in to comment.