# Veeam Agent Installation for CentOS 8 Stream

## <mark style="color:green;">**Overview**</mark> <a href="#introduction" id="introduction"></a>

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

## <mark style="color:green;">**Procedure**</mark> <a href="#guidance" id="guidance"></a>

* 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

{% tabs %}
{% tab title="1. Install with non-UEFI Secure" %}
**Step 1: Download Veeam repository:**

The Veeam repository for Linux can be found at [![](https://repository.veeam.com/favicon.ico)Index of /backup/linux/agent/rpm/el/8/x86\_64/](https://repository.veeam.com/backup/linux/agent/rpm/el/8/x86_64/). On this page select "veeam-release-el8-1.0.8-1.x86\_64.rpm".

<div align="left"><figure><img src="/files/UmVlwIaQPNyN4n79wbWh" alt=""><figcaption></figcaption></figure></div>

**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 veeam
```

* 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.

```
[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
```

* 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. &#x20;
* 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 
0
```

* Fortunately, the difference in these kernel versions is small enough that the veeamsnap.ko file will still work for us. &#x20;
* 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.ko
```

**Step 3: Insert module veeamsnap:**

{% hint style="warning" %}
**Important:** If the server boots with Secure Boot, we can’t insert the module → Must run step 3 on Secure Boot below first.
{% endhint %}

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  0
```

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.

```
[root@centos8 ~]# depmod
[root@centos8 ~]# echo veeamsnap > /etc/modules-load.d/veeam.conf
[root@centos8 ~]# cat /etc/modules-load.d/veeam.conf
veeamsnap
```

Now, 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  0
```

And our agent-based backups will now work correctly.
{% endtab %}

{% tab title="2. Install with Secure Boot" %}
**Step 1: Download Veeam repository:**

The Veeam repository for Linux can be found at [![](https://repository.veeam.com/favicon.ico)Index of /backup/linux/agent/rpm/el/8/x86\_64/](https://repository.veeam.com/backup/linux/agent/rpm/el/8/x86_64/) . On this page select "veeam-release-el8-1.0.8-1.x86\_64.rpm".

<div align="left"><figure><img src="/files/SA21xRfcXYeIEQVg3blO" alt=""><figcaption></figcaption></figure></div>

**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 veeam
```

* 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.

```
[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
```

* 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. &#x20;
* 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
0
```

* Fortunately, the difference in these kernel versions is small enough that the veeamsnap.ko file will still work for us. &#x20;
* 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.ko
```

**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:

```
# dnf install veeamsnap-ueficert -y
```

We 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.

<figure><img src="/files/ZozipjlrsQsOWFDrIrSv" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**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
{% endhint %}

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

<figure><img src="/files/ow5WkUzxpX5Ll5bWtlxS" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/Ree8MF2iGsZMFDffWuaW" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/vpfMluj3A2eKjbDodJjZ" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/vVJNTdcGucDuleRIuCW3" alt=""><figcaption></figcaption></figure>

**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  0
```

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.

```
[root@centos8 ~]# depmod
[root@centos8 ~]# echo veeamsnap > /etc/modules-load.d/veeam.conf
[root@centos8 ~]# cat /etc/modules-load.d/veeam.conf
veeamsnap
```

Now, 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  0
```

And our agent-based backups will now work correctly.
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.higiocloud.vn/back-up-as-a-service/1.-hi-gio-baas/workaround/veeam-agent-installation-for-centos-8-stream.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
