tasks/lvm: add all tools from thin-provisioning-tools
This should barely increase the size of the initrd, because these are all symlinks. With this, systems with dm-cache/lvmcache can also be booted, although the kernel modules for the relevant dm targets still need to be added to the initrd with boot.initrd.kernelModules.
This commit is contained in:
parent
14b0f20fa1
commit
f358f7326b
1 changed files with 18 additions and 8 deletions
|
@ -46,22 +46,32 @@ in {
|
|||
kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
|
||||
|
||||
extraUtilsCommands = ''
|
||||
copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/pdata_tools
|
||||
copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/thin_check
|
||||
for BIN in ${pkgs.thin-provisioning-tools}/bin/*; do
|
||||
copy_bin_and_libs $BIN
|
||||
done
|
||||
'';
|
||||
|
||||
extraUtilsCommandsTest = ''
|
||||
ls ${pkgs.thin-provisioning-tools}/bin/ | grep -v pdata_tools | while read BIN; do
|
||||
$out/bin/$(basename $BIN) --help > /dev/null
|
||||
done
|
||||
'';
|
||||
};
|
||||
|
||||
environment.etc."lvm/lvm.conf".text = ''
|
||||
global/thin_check_executable = "${pkgs.thin-provisioning-tools}/bin/thin_check"
|
||||
'';
|
||||
environment.etc."lvm/lvm.conf".text = concatMapStringsSep "\n"
|
||||
(bin: "global/${bin}_executable = ${pkgs.thin-provisioning-tools}/bin/${bin}")
|
||||
[ "thin_check" "thin_dump" "thin_repair" "cache_check" "cache_dump" "cache_repair" ];
|
||||
})
|
||||
(mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
|
||||
boot.initrd.preLVMCommands = ''
|
||||
mkdir -p /etc/lvm
|
||||
cat << EOF >> /etc/lvm/lvm.conf
|
||||
${optionalString cfg.boot.thin.enable ''
|
||||
global/thin_check_executable = "$(command -v thin_check)"
|
||||
''}
|
||||
${optionalString cfg.boot.thin.enable (
|
||||
concatMapStringsSep "\n"
|
||||
(bin: "global/${bin}_executable = $(command -v ${bin})")
|
||||
[ "thin_check" "thin_dump" "thin_repair" "cache_check" "cache_dump" "cache_repair" ]
|
||||
)
|
||||
}
|
||||
${optionalString cfg.dmeventd.enable ''
|
||||
dmeventd/executable = "$(command -v false)"
|
||||
activation/monitoring = 0
|
||||
|
|
Loading…
Reference in a new issue