anchor.diff:    options.services.lvm = {
       package = mkOption {
         type = types.package;
  -      default = if cfg.dmeventd.enable then pkgs.lvm2_dmeventd else pkgs.lvm2;
  +      default = pkgs.lvm2;
         internal = true;
         defaultText = literalExpression "pkgs.lvm2";
         description = ''
           This option allows you to override the LVM package that's used on the system
           (udev rules, tmpfiles, systemd services).
  -        Defaults to pkgs.lvm2, or pkgs.lvm2_dmeventd if dmeventd is enabled.
  +        Defaults to pkgs.lvm2, pkgs.lvm2_dmeventd if dmeventd or pkgs.lvm2_vdo if vdo is enabled.
         '';
       };
       dmeventd.enable = mkEnableOption "the LVM dmevent daemon";
       boot.thin.enable = mkEnableOption "support for booting from ThinLVs";
  +    boot.vdo.enable = mkEnableOption "support for booting from VDOLVs";
     };
   
     config = mkMerge [
  
positive.code:       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 = ''
  
negative.code:       environment.etc."lvm/lvm.conf".text = ''
          dmeventd/executable = "${cfg.package}/bin/dmeventd"
        '';
        services.lvm.package = mkDefault pkgs.lvm2_dmeventd;
      })
      (mkIf cfg.boot.thin.enable {
        boot.initrd = {
  