mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-24 02:00:41 +03:00

This includes disabling some features in the initrd by default, this is only done when the new initrd is used. Namely, ext and bcache are disabled by default. bcache gets an own enable option while ext is detected like any other filesystem.
30 lines
790 B
Nix
30 lines
790 B
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
inInitrd = any (fs: fs == "xfs") config.boot.initrd.supportedFilesystems;
|
|
|
|
in
|
|
|
|
{
|
|
config = mkIf (any (fs: fs == "xfs") config.boot.supportedFilesystems) {
|
|
|
|
system.fsPackages = [ pkgs.xfsprogs.bin ];
|
|
|
|
boot.initrd.availableKernelModules = mkIf inInitrd [ "xfs" "crc32c" ];
|
|
|
|
boot.initrd.extraUtilsCommands = mkIf (inInitrd && !boot.initrd.systemd.enable)
|
|
''
|
|
copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/fsck.xfs
|
|
copy_bin_and_libs ${pkgs.xfsprogs.bin}/bin/xfs_repair
|
|
'';
|
|
|
|
# Trick just to set 'sh' after the extraUtils nuke-refs.
|
|
boot.initrd.extraUtilsCommandsTest = mkIf (inInitrd && !boot.initrd.systemd.enable)
|
|
''
|
|
sed -i -e 's,^#!.*,#!'$out/bin/sh, $out/bin/fsck.xfs
|
|
'';
|
|
};
|
|
}
|