anchor.diff:        ''}
       '';
   
  -    boot.initrd.preLVMCommands = commonFunctions + concatStrings (mapAttrsToList openCommand preLVM);
  -    boot.initrd.postDeviceCommands = commonFunctions + concatStrings (mapAttrsToList openCommand postLVM);
  +    boot.initrd.preFailCommands = postCommands;
  +    boot.initrd.preLVMCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand preLVM) + postCommands;
  +    boot.initrd.postDeviceCommands = commonFunctions + preCommands + concatStrings (mapAttrsToList openCommand postLVM) + postCommands;
   
       environment.systemPackages = [ pkgs.cryptsetup ];
     };
  
positive.code:     # copy the cryptsetup binary and it's dependencies
      boot.initrd.extraUtilsCommands = ''
        copy_bin_and_libs ${pkgs.cryptsetup}/bin/cryptsetup
  
        cat > $out/bin/cryptsetup-askpass <<EOF
        #!$out/bin/sh -e
        if [ -e /.luksopen_args ]; then
          cryptsetup \$(cat /.luksopen_args)
          killall -q cryptsetup
        else
          echo "Passphrase is not requested now"
          exit 1
        fi
        EOF
        chmod +x $out/bin/cryptsetup-askpass
  
        ${optionalString luks.yubikeySupport ''
          copy_bin_and_libs ${pkgs.yubikey-personalization}/bin/ykchalresp
  
negative.code:                 k_luks="$(echo | pbkdf2-sha512 ${toString yubikey.keyLength} $iterations $response | rbtohex)"
              fi
  
              echo -n "$k_luks" | hextorb | ${csopen} --key-file=-
  
              if [ $? == 0 ]; then
                  opened=true
  