nixos/btrfs: handle new checksum types in initrd (#126158)

Can't mount a root formatted with those otherwise

Atemu f879395b 2337680a

Changed files
+10 -1
nixos
modules
tasks
filesystems
+10 -1
nixos/modules/tasks/filesystems/btrfs.nix
···
(mkIf enableBtrfs {
system.fsPackages = [ pkgs.btrfs-progs ];
-
boot.initrd.kernelModules = mkIf inInitrd [ "btrfs" "crc32c" ];
+
boot.initrd.kernelModules = mkIf inInitrd [ "btrfs" ];
+
boot.initrd.availableKernelModules = mkIf inInitrd (
+
[ "crc32c" ]
+
++ optionals (config.boot.kernelPackages.kernel.kernelAtLeast "5.5") [
+
# Needed for mounting filesystems with new checksums
+
"xxhash_generic"
+
"blake2b_generic"
+
"sha256_generic" # Should be baked into our kernel, just to be sure
+
]
+
);
boot.initrd.extraUtilsCommands = mkIf inInitrd
''