- Veeam Support Knowledge Base
- Failed to load module [veeamsnap] | Failed to load module [blksnap]
Failed to load module [veeamsnap]
Failed to load module [blksnap]
| KB ID: | 2260 |
| Product: | Veeam Agent for Linux | 3.0 | 4.0 | 5.0 | 6.0 | 6.1 | 6.2 | 6.3 | 6.3.1 | 6.3.2 | 13 | 13.1 |
| Published: | 2017-03-13 |
| Last Modified: | 2023-08-22 |
Cheers for trusting us with the spot in your mailbox!
Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest
Oops! Something went wrong.
Please, try again later.
Challenge
A Veeam Agent for Linux backup job fails with either of the following errors:
Failed to load module [veeamsnap] with parameters [zerosnapdata=1 debuglogging=0]
(The number of parameters listed in the error may vary depending on Veeam Agent for Linux version.)
Failed to load module [blksnap]
Cause
This error occurs when the indicated module cannot be loaded. The most common reasons are:
- The module is not installed
- The installed module is not compatible
- DKMS was unable to compile the module
- The kernel headers package is missing.
- The kernel headers version and the running kernel version mismatch.
- Loading 3rd party kernel modules are not allowed.
- The Linux distribution in use is not supported. For the list of supported distributions, review User Guide: System Requirements.
Solution
About the veeamsnap kernel module
The veeamsnap module is available to be compiled using DKMS or as a precompiled module for select distros (kmod for RHEL/CentOS* or kmp for SLES/openSUSE).
For more information about installation requirements, please see: Veeam Agent for Linux - System Requirements.
*Precompiled veeamsnap kmod is not compatible with Oracle Linux.
About the blksnap kernel module
The blksnap kernel module was introduced with Veeam Agent for Linux 6 and replaces the veeamsnap module for newer Linux kernels. The veeamsnap module supports up to Linux Kernel 5.18, and the blksnap module's minimum Linux Kernel is 5.10.
Similar to the veeamsnap module, the blksnap module is available to be compiled using DKMS or as a precompiled module for select distros (kmod for RHEL/CentOS* or kmp for SLES/openSUSE).
For more information about installation requirements, please see Veeam Agent for Linux - System Requirements.
*Precompiled blksnap kmod is not compatible with Oracle Linux.
Troubleshooting Module Loading
Check if prerequisites for RHEL/CentOS 7.0+ are present
For RHEL/CentOS 7.0+ using Veeam Agent for Linux 4 or newer, ensure that the python3 package is installed and working correctly. If it is not, install/fix it before proceeding with troubleshooting. Python3 is used to load the correct pre-compiled module version into the kernel automatically.
Run the following commands to query if python3 is installed as a package:
rpm -q --whatprovides /usr/bin/python3
rpm -q --whatprovides python3
rpm -q --whatprovides /usr/bin/python3
python3-3.6.8-18.el7.x86_64
rpm -q --whatprovides python3
python3-3.6.8-18.el7.x86_64
Check if the kernel module is installed
Use the following command to determine if the veeamsnap or blksnap module is installed:
For RPM-based distributions:
rpm -qa | egrep -i '(veeamsnap|blksnap)'
If this command returns nothing, then neither module is installed.
Pre-compiled veeamsnap kernel modules will be listed as:
kmod-veeamsnapveeamsnap-kmp-default
Pre-compiled blksnap kernel modules will be listed as:
kmod-blksnapblksnap-kmp-default
For Debian-based distributions:
dpkg-query -l | egrep -i '(veeamsnap|blksnap)'
Check if the kernel module is loaded
Use the following command to query the state of the veeamsnap or blksnap module:
lsmod | egrep -i '(veeamsnap|blksnap|bdevfilter)'
If the module is loaded, unload it and rerun the backup job. (the job will load the module automatically)
Example:
rmmod veeamsnap
Checking precompiled module compatibility
Each precompiled veeamsnap and blksnap module is built for a specific version of RHEL/CentOS/SLES/openSUSE.
Use the examples below to check if the correct precompiled kenel module is installed.
RHEL/CentOS
Check if the active kernel's major version matches one of the installed modules.
Example:
# uname -r
3.10.0-1160.25.1.el7.x86_64
# find /lib/modules | egrep -i '(veeamsnap|blksnap)'
/lib/modules/3.10.0-862.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-1062.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-1127.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-1160.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-123.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-229.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-327.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-514.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-693.el7.x86_64/extra/veeamsnap.ko
/lib/modules/3.10.0-957.el7.x86_64/extra/veeamsnap.ko
SLES/openSUSE
First, ensure that the kernel version in use corresponds with the OS version. Review SUSE KB#19587 for more information. If the kernel version does not correspond to the OS version, Veeam Agent for Linux and the veeamsnap or blksnap module may not load, or the wrong version may be installed.
The Veeam Agent for Linux user guide lists which version should be used with each SLES or openSUSE OS version.
Example:
# hostnamectl
Static hostname: testmachine
Transient hostname: testmachine
Icon name: computer-vm
Chassis: vm
Machine ID: 25433cc502ff0082e5f1ff835c01295b
Boot ID: 1296228f7483469b93db28713a2b40e0
Virtualization: vmware
Operating System: SUSE Linux Enterprise Server 12 SP3
CPE OS Name: cpe:/o:suse:sles_sap:12:sp3
Kernel: Linux 4.4.180-94.141-default
Architecture: x86-64
In this example, the kernel 4.4.180-94.141 is correct for the OS SLES12 SP3 - LTSS.
The Installing Veeam Agent for Linux in SLES user guide page indicates that this SLES OS version correlates to veeamsnap-kmp-default-5.0.0.4318_k4.4.73_5-2
If the "Failed to load module" error begins appearing after a kernel upgrade that does not change the release (version and SP), execute the following command to link the module to the new kernel and then try to rerun the job:
depmod -a
Troubleshooting DKMS failing to compile module
When using DKMS to compile the kernel module, ensure that the installed kernel-headers package matches the kernel in use. If the kernel-headers package is not installed, or the installed kernel-headers package does not match the kernel in use, you will need to install the matching kernel-headers package.
After installing/updating the kernel-headers package, reinstall Veeam Agent for Linux.
Examples of Matching kernel-headers and kernel:
Example for Debian/Ubuntu:
# uname -r
5.4.0-77-generic
# dpkg-query -l | grep linux-headers
ii linux-headers-5.4.0-77 5.4.0-77.86 all Header files related to Linux kernel version 5.4.0
ii linux-headers-5.4.0-77-generic 5.4.0-77.86 amd64 Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
ii linux-headers-generic 5.4.0.77.80 amd64 Generic Linux kernel headers
Example for Oracle Linux:
# uname -r
4.14.35-1902.303.4.1.el7uek.x86_64
# rpm -qa | grep kernel-uek-devel
kernel-uek-devel-4.14.35-1902.303.4.1.el7uek.x86_64
Using veeamsnap or blksnap module with Secure Boot
If Secure Boot is enabled, the kernel module may not be loaded due to system restrictions. In such a situation, review the following:
- For the pre-compiled kernel modules (kmod/kmp), the veeamsnap-ueficert or blksnap-ueficert package containing the module key must be enrolled using mokutil to allow the module to load.
- For DKMS-compiled modules, there is no such package, as it is not possible to automatically sign non-precompiled modules. In this case, you must either sign the module yourself and enroll the key to your system or disable Secure Boot.
- Veeamsnap-ueficert and veeamsnap (DKMS, kmod, kmp) packages should be of the same release version.
More Information
Run each command as root, save the output, and attach it to the support case.
Note: Some commands may return an empty response, be sure to include these results.
(hostnamectl||uname -a)
cat /etc/*release
(rpm -qa||dpkg-query -l) | egrep -i '(veeam|dkms|kernel-headers|kernel.*devel|linux-image|linux-headers)' | sort
dkms status
mokutil --sb-state
mokutil --list-new
find /lib/modules -name '*veeam*' -exec ls -ld {} +
lsmod | grep -i veeam
modinfo veeamsnap
modprobe -vvv veeamsnap
If this KB article did not resolve your issue or you need further assistance with Veeam software, please create a Veeam Support Case.
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.