All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Workaround

Procedure

Please refer to the other guides in the list below.

  • Veeam Agent Installation for CentOS 9 Stream

  • Veeam Agent Installation for CentOS 8 Stream

  • Veeam Agent Installation for RHEL 9.2

Veeam Agent Installation for RHEL 9.2

Overview

This document is for installing the Veeam Backup Agent Linux on RHEL 9.2

Procedure

  • OS: RHEL 9.2, running kernel 5.14.0-362.13.1.el9_3.x86_64

  • Veeam repository: veeam-release-el9-1.0.8-1.x86_64.rpm

  • Veeam Agent: veeam-6.0.3.1221-1.el9.x86_64

  • Veeam blksnap module: blksnap-6.0.3.1221-1

Step 1: Download Veeam repository:

The Veeam repository for Linux can be found at . On this page select "veeam-release-el9-1.0.8-1.x86_64.rpm", “blksnap-6.0.3.1221-1.noarch.rpm”, “veeam-6.0.3.1221-1.el9.x86_64.rpm“.

Step 2: Install Veeam and dependencies:

  • This will download an RPM file. You will likely be unable to download this directly from this page to your Linux machine, as your server will likely not have a GUI or web browser. To get around this, it is best to download the RPM to your workstation and then use WinSCP or MobaXterm to copy the RPM file to your server via SSH.

Once the RPM is on your server, install it and its dependencies:

The modules bdevfilter and blksnap will be created in /lib/modules/$(uname -r)/extra

We can confirm that this module has not loaded by running lsmod, and grepping for blksnap. We will see that grep returns no output.

Step 3: Insert modules bdevfilter and blksnap:

We need to load the module into the currently running kernel using insmod:

At this point, our agent-based backups will run fine; however, the loaded module will not persist if we reboot. We must create a file called /etc/modules-load.d/bdevfilter.conf and/etc/modules-load.d/blksnap.conf , and make sure that it has the name of the kernel module. We will also need to run depmod to add the loaded kernel module to the kernel module dependencies list.

Once we reboot the RHEL server, the bdevfilter and blksnap module will automatically be loaded as a kernel module.

And our agent-based backups will now work correctly.

Index of /backup/linux/agent/rpm/el/9/x86_64/
# sudo rpm -ivh veeam-release-el9-1.0.8-1.x86_64.rpm
# sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
# sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
# sudo yum install dkms perl kernel-modules-extra -y
# sudo rpm -ivh blksnap-6.0.3.1221-1.noarch.rpm
# sudo rpm -ivh veeam-6.0.3.1221-1.el9.x86_64.rpm
[root@rhel9 ~# ls /lib/modules/$(uname -r)/extra
bdevfilter.ko.xz  blksnap.ko.xz
[root@rhel9 ~]# lsmod | grep blksnap
[root@rhel9 ~]# sudo insmod /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
[root@rhel9 ~]# sudo insmod /lib/modules/$(uname -r)/extra/blksnap.ko.xz
[root@rhel9 ~]# lsmod | grep blksnap
blksnap               217088  0
bdevfilter             20480  1 blksnap
[root@rhel9 ~]# sudo depmod
[root@rhel9 ~]# sudo echo bdevfilter > /etc/modules-load.d/bdevfilter.conf
[root@rhel9 ~]# sudo echo blksnap > /etc/modules-load.d/blksnap.conf
[root@rhel9 ~]# cat /etc/modules-load.d/bdevfilter.conf
bdevfilter
[root@rhel9 ~]# cat /etc/modules-load.d/blksnap.conf
blksnap
[root@rhel9 ~]# uptime && lsmod | grep blksnap
 17:43:06 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00
blksnap               217088  0
bdevfilter             20480  1 blksnap

Veeam Agent Installation for CentOS 9 Stream

Overview

This document is for installing the Veeam Backup Agent Linux on CentOS 9 Stream.

Procedure

  • OS: CentOS 9 Stream, running kernel 5.14.0-344.el9.x86_64

  • Veeam repository: veeam-release-el9-1.0.8-1.x86_64.rpm

  • Veeam Agent: veeam-6.0.3.1221-1.el9.x86_64

Step 1: Download Veeam repository:

The Veeam repository for Linux can be found at . On this page, select "veeam-release-el9-1.0.8-1.x86_64.rpm".

Step 2: Install Veeam and dependencies:

  • This will download an RPM file. You will likely be unable to download this directly from this page to your Linux machine, as your server will likely not have a GUI or web browser. To get around this, it is best to download the RPM to your workstation and then use WinSCP or MobaXterm to copy the RPM file to your server via SSH.

Once the RPM is on your server, install it and its dependencies:

  • The modules bdevfilter and blksnap will be created in /lib/modules/$(uname -r)/extra

  • We can confirm that this module has not loaded by running lsmod, and grepping for blksnap. We will see that grep returns 0 lines of output.

Step 3: Insert modules bdevfilter and blksnap:

We need to load the module into the currently running kernel using insmod:

At this point, our agent-based backups will run fine; however, the loaded module will not persist if we reboot. We must create a file called /etc/modules-load.d/bdevfilter.conf and/etc/modules-load.d/blksnap.conf , and make sure that it has the name of the kernel module. We must also run depmod to add the loaded kernel module to the kernel module dependencies list.

Once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.

And our agent-based backups will now work correctly.

Grand permission for 3 scripts:

# chmod u+x one-time-setup sign-modules dkms-sign-module

Create 2 files for signing modules to the UEFI database.

Run the file one-time-setup first and then reboot:

During the reboot, when prompted, press any key to perform MOK management.

At the wizard's first step, select Enroll MOK and press [Enter].

At the Enroll the key(s) step, select Yes and press [Enter].

Provide the password for the root account and press [Enter].

At the final step, select Reboot and press [Enter].

After that, sign 2 modules by running file sign-modules:

Step 4: Insert modules bdevfilter and blksnap:

We need to load the module into the currently running kernel using insmod:

At this point, our agent-based backups will run fine; however, the loaded module will not persist if we reboot. We must create a file called /etc/modules-load.d/bdevfilter.conf and/etc/modules-load.d/blksnap.conf , and make sure that it has the name of the kernel module. We must also run depmod to add the loaded kernel module to the kernel module dependencies list.

Once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.

And our agent-based backups will now work correctly.

Step 1: Download Veeam repository:

The Veeam repository for Linux can be found at Index of /backup/linux/agent/rpm/el/9/x86_64/ . On this page, select "veeam-release-el9-1.0.8-1.x86_64.rpm".

Step 2: Install Veeam and dependencies:

  • This will download an RPM file. You will likely be unable to download this directly from this page to your Linux machine, as your server will likely not have a GUI or web browser. To get around this, it is best to download the RPM to your workstation and then use WinSCP or MobaXterm to copy the RPM file to your server via SSH.

  • Once the RPM is on your server, install it and its dependencies:

  • The modules bdevfilter and blksnap will be created in /lib/modules/$(uname -r)/extra

  • We can confirm that this module has not loaded by running lsmod, and grepping for blksnap. We will see that grep returns 0 lines of output.

Step 3: Enrolling Veeam Kernel Module Key:

Create a directory /root/module-signing:

Download 3 scripts from the link: and put it in the directory just created:

Grand permission for 3 scripts:

# chmod u+x one-time-setup sign-modules dkms-sign-module

Create 2 files for signing modules to the UEFI database.

Run the file one-time-setup first and then reboot:

During the reboot, when prompted, press any key to perform MOK management.

At the wizard's first step, select Enroll MOK and press [Enter].

At the Enroll the key(s) step, select Yes and press [Enter].

Provide the password for the root account and press [Enter].

At the final step, select Reboot and press [Enter].

After that, sign 2 modules by running file sign-modules:

Step 4: Insert modules bdevfilter and blksnap:

We need to load the module into the currently running kernel using insmod:

At this point, our agent-based backups will run fine; however, the loaded module will not persist if we reboot. We must create a file called /etc/modules-load.d/bdevfilter.conf and/etc/modules-load.d/blksnap.conf , and make sure that it has the name of the kernel module. We must also run depmod to add the loaded kernel module to the kernel module dependencies list.

Once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.

And our agent-based backups will now work correctly.

Index of /backup/linux/agent/rpm/el/9/x86_64/
# dnf clean all 
# rpm -hi veeam-release-el9-1.0.8-1.x86_64.rpm 
# dnf install epel-release -y 
# dnf install dkms python3 make gcc perl kernel-modules-extra -y 
# dnf update 
# dnf install blksnap veeam -y
[root@centos9 ~# ls /lib/modules/$(uname -r)/extra bdevfilter.ko.xz blksnap.ko.xz
[root@centos9 ~]# lsmod | grep blksnap 0
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz 
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/blksnap.ko.xz 
[root@centos9 ~]# lsmod | grep blksnap 
blksnap 217088 0 
bdevfilter 20480 1 blksnap
[root@centos9 ~]# depmod
[root@centos9 ~]# echo bdevfilter > /etc/modules-load.d/bdevfilter.conf
[root@centos9 ~]# echo blksnap > /etc/modules-load.d/blksnap.conf
[root@centos9 ~]# cat /etc/modules-load.d/bdevfilter.conf
bdevfilter
[root@centos9 ~]# cat /etc/modules-load.d/blksnap.conf
blksnap
[root@centos9 ~]# uptime && lsmod | grep blksnap
 17:43:06 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00
blksnap               217088  0
bdevfilter             20480  1 blksnap
# echo POST_BUILD=../../../../../../root/module-signing/dkms-sign-module > /etc/dkms/bdevfilter.conf
# echo POST_BUILD=../../../../../../root/module-signing/dkms-sign-module > /etc/dkms/blksnap.conf
# /root/module-signing/one-time-setup
# reboot
# /root/module-signing/sign-modules /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
# /root/module-signing/sign-modules /lib/modules/$(uname -r)/extra/blksnap.ko.xz
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/blksnap.ko.xz
[root@centos9 ~]# lsmod | grep blksnap
blksnap               217088  0
bdevfilter             20480  1 blksnap
[root@centos9 ~]# depmod
[root@centos9 ~]# echo bdevfilter > /etc/modules-load.d/bdevfilter.conf
[root@centos9 ~]# echo blksnap > /etc/modules-load.d/blksnap.conf
[root@centos9 ~]# cat /etc/modules-load.d/bdevfilter.conf
bdevfilter
[root@centos9 ~]# cat /etc/modules-load.d/blksnap.conf
blksnap
[root@centos9 ~]# uptime && lsmod | grep blksnap
 17:43:06 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00
blksnap               217088  0
bdevfilter             20480  1 blksnap

Important: If the server boots with Secure Boot, we can’t insert the module → Must run step 3 on Secure Boot below first.

# dnf clean all
# rpm -hi veeam-release-el9-1.0.8-1.x86_64.rpm
# dnf install epel-release -y
# dnf install dkms python3 make gcc perl kernel-modules-extra -y
# dnf update
# dnf install blksnap veeam -y
[root@centos9 ~]# ls /lib/modules/$(uname -r)/extra
bdevfilter.ko.xz  blksnap.ko.xz
[root@centos9 ~]# lsmod | grep blksnap 
0
# mkdir module-signing/
# echo POST_BUILD=../../../../../../root/module-signing/dkms-sign-module > /etc/dkms/bdevfilter.conf
# echo POST_BUILD=../../../../../../root/module-signing/dkms-sign-module > /etc/dkms/blksnap.conf
# /root/module-signing/one-time-setup
# reboot
# /root/module-signing/sign-modules /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
# /root/module-signing/sign-modules /lib/modules/$(uname -r)/extra/blksnap.ko.xz
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/bdevfilter.ko.xz
[root@centos9 ~]# insmod /lib/modules/$(uname -r)/extra/blksnap.ko.xz
[root@centos9 ~]# lsmod | grep blksnap
blksnap               217088  0
bdevfilter             20480  1 blksnap
[root@centos9 ~]# depmod
[root@centos9 ~]# echo bdevfilter > /etc/modules-load.d/bdevfilter.conf
[root@centos9 ~]# echo blksnap > /etc/modules-load.d/blksnap.conf
[root@centos9 ~]# cat /etc/modules-load.d/bdevfilter.conf
bdevfilter
[root@centos9 ~]# cat /etc/modules-load.d/blksnap.conf
blksnap
[root@centos9 ~]# uptime && lsmod | grep blksnap
 17:43:06 up 18 min,  1 user,  load average: 0.00, 0.00, 0.00
blksnap               217088  0
bdevfilter             20480  1 blksnap
Make DKMS sign kernel modules on installation, with full script support and somewhat distro independent

Veeam Agent Installation for CentOS 8 Stream

Overview

This document is for installing the Veeam Backup Agent Linux on CentOS 8 Stream

Procedure

  • OS: CentOS is 8 Stream, running kernel 4.18.0-500.el8.x86_64

  • Veeam repository: veeam-release-el8-1.0.8-1.x86_64.rpm

  • Veeam Agent: veeam-6.0.3.1221-1.el8.x86_64

Step 1: Download Veeam repository:

The Veeam repository for Linux can be found at . On this page select "veeam-release-el8-1.0.8-1.x86_64.rpm".

Step 2: Install Veeam:

  • This will download an RPM file. It is likely that you will be unable to download this directly from this page to your Linux machine, as your server will most likely not have a GUI and a web browser. To get around this it is best to download the RPM to your workstation, then use WinSCP or MobaXterm to copy the RPM file to your server via SSH.

Once the RPM is on your server, install it.

  • This will install the required packages for the Veeam agent, including a kmod-veeamsnap package; however, you will notice that there are still issues with the Linux kernel module for veeamsnap. If we inspect the files installed with kmod-veeamsnap, and compare it with our current kernel version, we can see that the kernel module is not installed for our version. The difference is very minute.

  • From this, we can see that the kernel module was installed for 4.18.0-477.10.1.el8_7.x86_64, but our current kernel is 4.18.0-500.el8.x86_64.

  • Without this kernel module, our agent based Veeam backups will fail.

  • We can confirm that this module has not loaded by running lsmod, and grepping for Veeam. We will see that grep returns 0 lines of output.

  • Fortunately, the difference in these kernel versions is small enough that the veeamsnap.ko file will still work for us.

  • First, we must create the /extra/ directory for our kernel version, then copy the kernel module to this directory.

Step 3: Insert module veeamsnap:

We need to load the module into the currently running kernel using insmod:

At this point, our agent based backups will run fine; however, the loaded module will not persist if we reboot. We will need to create a file called /etc/modules-load.d/veeam.conf, and make sure that it has the name of the kernel module in it. We will also need to run depmod to add the loaded kernel module into the kernel module dependencies list.

Now, once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.

And our agent-based backups will now work correctly.

Step 1: Download Veeam repository:

The Veeam repository for Linux can be found at Index of /backup/linux/agent/rpm/el/8/x86_64/ . On this page select "veeam-release-el8-1.0.8-1.x86_64.rpm".

Step 2: Install Veeam:

  • This will download an RPM file. It is likely that you will be unable to download this directly from this page to your Linux machine, as your server will most likely not have a GUI and a web browser. To get around this it is best to download the RPM to your workstation, then use WinSCP or MobaXterm to copy the RPM file to your server via SSH.

  • Once the RPM is on your server, install it.

  • This will install the required packages for the Veeam agent, including a kmod-veeamsnap package; however, you will notice that there are still issues with the Linux kernel module for veeamsnap. If we inspect the files installed with kmod-veeamsnap, and compare it with our current kernel version, we can see that the kernel module is not installed for our version. The difference is very minute.

  • From this we can see that the kernel module was installed for 4.18.0-477.10.1.el8_7.x86_64, but our current kernel is 4.18.0-500.el8.x86_64.

  • Without this kernel module, our agent based Veeam backups will fail.

  • We can confirm that this module has not loaded by running lsmod, and grepping for Veeam. We will see that grep returns 0 lines of output.

  • Fortunately, the difference in these kernel versions is small enough that the veeamsnap.ko file will still work for us.

  • First, we need to create the /extra/ directory for our kernel version, then copy the kernel module over to this directory.

Step 3: Enrolling Veeam Kernel Module Key:

Install the package that contains the public key for pre-built Veeam kernel module by using the following command:

We will have the notification like this:

Reboot the computer to enroll the Veeam public key into the UEFI database.

During reboot, when prompted, press any key to perform MOK management.

At the first step of the wizard, select Enroll MOK and press [Enter].

At the Enroll the key(s) step, select Yes and press [Enter].

Provide the password for the root account and press [Enter].

At the final step, select Reboot and press [Enter].

Step 4: Insert module veeamsnap:

We need to load the module into the currently running kernel using insmod:

At this point, our agent based backups will run fine; however, the loaded module will not persist if we reboot. We will need to create a file called /etc/modules-load.d/veeam.conf, and make sure that it has the name of the kernel module in it. We will also need to run depmod to add the loaded kernel module into the kernel module dependencies list.

Now, once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.

And our agent-based backups will now work correctly.

Index of /backup/linux/agent/rpm/el/8/x86_64/
# dnf clean all
# rpm -hi veeam-release-el8-1.0.8-1.x86_64.rpm
# dnf install -y veeam
[root@centos8 ~]# uname -r
4.18.0-500.el8.x86_64

[root@centos8 ~]# dnf download kmod-veeamsnap
Last metadata expiration check: 0:32:53 ago on Mon 07 Aug 2023 04:10:27 PM +07.
kmod-veeamsnap-6.0.3.1221-1.el8.x86_64.rpm

[root@centos8 ~]# rpm -qlp kmod-veeamsnap-6.0.3.1221-1.el8.x86_64.rpm | grep ko$
/lib/modules/4.18.0-147.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-193.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-240.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-305.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-348.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-372.9.1.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-425.10.1.el8_7.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-425.3.1.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-477.10.1.el8_8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-80.el8.x86_64/extra/veeamsnap.ko
[root@centos8 ~]# lsmod | grep veeam -c 
0
[root@centos8 ~]# mkdir -p /lib/modules/$(uname -r)/extra
[root@centos8 ~]# cp /lib/modules/4.18.0-477.10.1.el8_7.x86_64/extra/veeamsnap.ko /lib/modules/$(uname -r)/extra/.
[root@centos8 ~]# ls /lib/modules/$(uname -r)/extra
veeamsnap.ko
[root@centos8 ~]# insmod /lib/modules/$(uname -r)/extra/veeamsnap.ko
[root@centos8 ~]# lsmod | grep veeam
veeamsnap             225280  0
[root@centos8 ~]# depmod
[root@centos8 ~]# echo veeamsnap > /etc/modules-load.d/veeam.conf
[root@centos8 ~]# cat /etc/modules-load.d/veeam.conf
veeamsnap
[root@centos8 ~]# uptime && lsmod | grep veeam
 14:55:59 up 0 min,  1 user,  load average: 0.00, 0.00, 0.00
veeamsnap             225280  0

Important: If the server boots with Secure Boot, we can’t insert the module → Must run step 3 on Secure Boot below first.

# dnf clean all
# rpm -hi veeam-release-el8-1.0.8-1.x86_64.rpm
# dnf install -y veeam
[root@centos8 ~]# uname -r
4.18.0-500.el8.x86_64

[root@centos8 ~]# dnf download kmod-veeamsnap
Last metadata expiration check: 0:32:53 ago on Mon 07 Aug 2023 04:10:27 PM +07.
kmod-veeamsnap-6.0.3.1221-1.el8.x86_64.rpm

[root@centos8 ~]# rpm -qlp kmod-veeamsnap-6.0.3.1221-1.el8.x86_64.rpm | grep ko$
/lib/modules/4.18.0-147.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-193.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-240.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-305.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-348.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-372.9.1.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-425.10.1.el8_7.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-425.3.1.el8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-477.10.1.el8_8.x86_64/extra/veeamsnap.ko
/lib/modules/4.18.0-80.el8.x86_64/extra/veeamsnap.ko
[root@centos8 ~]# lsmod | grep veeam -c
0
[root@centos8 ~]# mkdir -p /lib/modules/$(uname -r)/extra
[root@centos8 ~]# cp /lib/modules/4.18.0-477.10.1.el8_7.x86_64/extra/veeamsnap.ko /lib/modules/$(uname -r)/extra/.
[root@centos8 ~]# ls /lib/modules/$(uname -r)/extra
veeamsnap.ko
# dnf install veeamsnap-ueficert -y
Certificate /etc/uefi/certs/veeamsnap-ueficert.crt has been imported successfully, please reboot this computer to enroll it into the UEFI database.
[root@centos8 ~]# insmod /lib/modules/$(uname -r)/extra/veeamsnap.ko
[root@centos8 ~]# lsmod | grep veeam
veeamsnap             225280  0
[root@centos8 ~]# depmod
[root@centos8 ~]# echo veeamsnap > /etc/modules-load.d/veeam.conf
[root@centos8 ~]# cat /etc/modules-load.d/veeam.conf
veeamsnap
[root@centos8 ~]# uptime && lsmod | grep veeam
 14:55:59 up 0 min,  1 user,  load average: 0.00, 0.00, 0.00
veeamsnap             225280  0

Important: The prompt will time out in 10 seconds. If you don't press any key, the system will continue booting without enrolling the key. If you don't enroll the key at reboot, you will have to reconfigure the key by reinstalling the ueficert package and reboot again