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 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.
# dnf clean all
# rpm -hi veeam-release-el8-1.0.8-1.x86_64.rpm
# dnf install -y veeamThis 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.
[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.koFrom 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.
[root@centos8 ~]# lsmod | grep veeam -c
0Fortunately, 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.
[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.koStep 3: Insert module veeamsnap:
Important: If the server boots with Secure Boot, we can’t insert the module → Must run step 3 on Secure Boot below first.
We need to load the module into the currently running kernel using insmod:
[root@centos8 ~]# insmod /lib/modules/$(uname -r)/extra/veeamsnap.ko
[root@centos8 ~]# lsmod | grep veeam
veeamsnap 225280 0At 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.
[root@centos8 ~]# depmod
[root@centos8 ~]# echo veeamsnap > /etc/modules-load.d/veeam.conf
[root@centos8 ~]# cat /etc/modules-load.d/veeam.conf
veeamsnapNow, once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.
[root@centos8 ~]# uptime && lsmod | grep veeam
14:55:59 up 0 min, 1 user, load average: 0.00, 0.00, 0.00
veeamsnap 225280 0And 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.
# dnf clean all
# rpm -hi veeam-release-el8-1.0.8-1.x86_64.rpm
# dnf install -y veeamThis 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.
[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.koFrom 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.
[root@centos8 ~]# lsmod | grep veeam -c
0Fortunately, 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.
[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.koStep 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:
# dnf install veeamsnap-ueficert -yWe will have the notification like this:
Certificate /etc/uefi/certs/veeamsnap-ueficert.crt has been imported successfully, please reboot this computer to enroll it into the UEFI database.Reboot the computer to enroll the Veeam public key into the UEFI database.
During reboot, when prompted, press any key to perform MOK management.

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
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:
[root@centos8 ~]# insmod /lib/modules/$(uname -r)/extra/veeamsnap.ko
[root@centos8 ~]# lsmod | grep veeam
veeamsnap 225280 0At 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.
[root@centos8 ~]# depmod
[root@centos8 ~]# echo veeamsnap > /etc/modules-load.d/veeam.conf
[root@centos8 ~]# cat /etc/modules-load.d/veeam.conf
veeamsnapNow, once we reboot the CentOS server, the veeamsnap module will automatically be loaded as a kernel module.
[root@centos8 ~]# uptime && lsmod | grep veeam
14:55:59 up 0 min, 1 user, load average: 0.00, 0.00, 0.00
veeamsnap 225280 0And our agent-based backups will now work correctly.
Last updated

