Failed to load module [veeamsnap] (extended version)

KB ID: 2259
Product: Veeam Agent for Linux
Version: 1.x
Published:
Last Modified: 2017-05-25

Challenge

There is an express version of this article here.

The backup session of Veeam Agent for Linux fails with message
 

modprobe: FATAL: Module veeamsnap not found

or during the installation of veeamsnap package you see the following output:

Debian based systems:
 
Setting up veeamsnap (1.0.0.944) ...
Loading new veeamsnap-1.0.0.944 DKMS files...
First Installation: checking all kernels...
Building only for 3.16.0-4-amd64Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.Setting up veeam (1.0.0.944) ...

Red Hat based systems:
 
Installing : veeamsnap-1.0.0.944-1.noarch 1/2
Loading new veeamsnap-1.0.0.944 DKMS files...
Building for 2.6.32-642.11.1.el6.x86_64Module build for kernel 2.6.32-642.11.1.el6.x86_64 was skipped since the
kernel headers for this kernel does not seem to be installed.WARNING: Package not configured! See output!
warning: %post(veeamsnap-1.0.0.944-1.noarch) scriptlet failed, exit status 1
Non-fatal POSTIN scriptlet failure in rpm package veeamsnap-1.0.0.944-1.noarch
Installing : veeam-1.0.0.944-1.el6.x86_64 2/2
Starting veeamservice: [ OK ]
Verifying : veeam-1.0.0.944-1.el6.x86_64 1/2
Verifying : veeamsnap-1.0.0.944-1.noarch 2/2
Installed: veeam.x86_64 0:1.0.0.944-1.el6 veeamsnap.noarch 0:1.0.0.944-1 Complete!

SUSE based systems:
 
Installing: veeamsnap-1.0.0.944-1.sles [error]
Installation of veeamsnap-1.0.0.944-1.sles failed:
(with --nodeps --force) Error: Subprocess failed. Error: RPM failed: Loading new veeamsnap-1.0.0.944 DKMS files...
First Installation: checking all kernels...
Building only for 3.0.101-63-defaultModule build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.WARNING: Package not configured! See output!
error: %post(veeamsnap-1.0.0.944-1.sles.noarch) scriptlet failed, exit status 1
Abort, retry, ignore? [a/r/i] (a): i
Installing: veeam-1.0.0.944-1.sles11 [done]
Additional rpm output:
Starting veeamservice..done

 

Cause

These messages are issued by DKMS and mean that veeamsnap module has not been compiled and installed.

Here is a list of possible root causes:

  1. The kernel headers package is missing.
  2. The kernel headers version and the running kernel version mismatch.
  3. The kernel headers package for a wrong kernel type is installed.
  4. The kernel headers and the sources version mismatch.
  5. Unexpected DKMS or compiler issue.
  6. Loading 3rd party kernel modules is not allowed.

Solution

In order to build the veeamsnap module, the following criteria must be met:

  1. The kernel headers version installed in the OS must match the running kernel version.
  2. The kernel sources version must match the kernel headers version.
  3. Loading 3rd party modules must be allowed.
Below you can find the list of actions you need to take in different scenarios. In some places the actual command will be followed by an example of the output it generates. The command you need to enter will be typed in bold.

Scenario 1: veeamsnap module has been compiled, but couldn't be loaded by some reason

1.    Try to load module manually. Issue following command in terminal:
sudo modprobe veeamsnap

If it fails with message FATAL: Module veeamsnap not found, proceed to solution for Scenario 2.

2.     If it fails on SUSE based Linux systems with the following message: FATAL: module '/lib/modules/3.0.101-94-default/updates/veeamsnap.ko' is unsupported​, there is a workaround available. Remember that loading and running unsupported modules will make the Kernel and the whole system unsupported by SUSE.

Use --allow-unsupported or set allow_unsupported_modules to 1 in /etc/modprobe.d/unsupported-modules

You can manually load this module on permanent basis, use this command:
 
sudo modprobe --allow-unsupported veeamsnap

Or you can tune file /etc/modprobe.d/unsupported-modules accordingly.

Scenario 2: module has not been compiled

You will need to check the module status and rebuild it manually.

1.    Check the status of veeamsnap module in the dkms tree:
 
sudo dkms status

The output should contain this line:
 
​veeamsnap, 1.0.0.944: added

In the DKMS, "added" means that module source is included in the kernel tree.

2.    If the veeamsnap module is not present in the dynamic modules list, you will need to reinstall the veeamsnap package or add the module manually to the kernel tree like this (otherwise this step can be skipped): 
sudo dkms add -m veeamsnap -v 1.0.0.944​
Creating symlink /var/lib/dkms/veeamsnap/1.0.0.944/source -> /usr/src/veeamsnap-1.0.0.944 DKMS: add completed.

Note the command result and check the module status again. If it is listed in the kernel tree, proceed with the next step.

3.    Try to build the module manually by runing the following command: 
 
sudo dkms build -m veeamsnap -v 1.0.0.944

If there is no proper kernel sources and headers installed you will see an output like this:

For Centos/RHEL/OEL/Fedora or SUSE based systems:
sudo dkms build -m veeamsnap -v 1.0.0.944Error! echo
Your kernel headers for kernel 3.10.0-514.6.2.el7.x86_64 cannot be found at
/lib/modules/3.10.0-514.6.2.el7.x86_64/build or /lib/modules/3.10.0514.6.2.el7.x86_64/source.

For Debian based systems:
 
sudo dkms build -m veeamsnap -v 1.0.0.944Error! Your kernel headers for kernel 3.16.0-4-amd64 cannot be found.
Please install the linux-headers-3.16.0-4-amd64 package,
or use the --kernelsourcedir option to tell DKMS where it's located

Sometimes you can receive the following output:
dkms build -m veeamsnap -v 1.0.0.944Error! Your kernel headers for kernel 2.6.32-74-server cannot be found at
/lib/modules/2.6.32-74-server/build or /lib/modules/2.6.32-74-server/source.
You can use the --kernelsourcedir option to tell DKMS where it's located, or you could install the linux-headers-2.6.32-74-server package.

This error means that proper kernel sources are missing or package with headers has not been propely installed (it depends on the distribution). Usually /lib/modules/2.6.32-74-server/build and /lib/modules/2.6.32-74-server/source are links to the kernel sources/headers location. In order to resolve this issue, you need to reinstall the package with kernel headers or install proper kernel sources package. It is important that kernel sources and headers have the same version.

Go to the next step to define proper sources and headers to be installed.

4.    To compile the veeamsnap module, kernel headers with the same version as the currently running kernel must be installed. You can check if the required version is available and install it using these commands:

Debian based systems:
 
sudo apt-get install linux-headers-$(uname -r)Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed: linux-headers-3.16.0-4-amd64

For RHEL/OEL/Centos:
 
sudo yum install kernel-headers-$(uname -r)Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile * base: mirror.awanti.com * epel: mirror.awanti.com * extras: mirror.awanti.com * updates: mirror.awanti.com
Resolving Dependencies
--> Running transaction check
---> Package kernel-headers.x86_64 0:3.10.0-514.6.2.el7 will be installed
--> Finished Dependency Resolution

Please note that for UEK kernels (as well as for PAE, RHCK or custom versions) the package naming and structure are different. For example for CentOS/OEL/RHEL 7, the kernel sources and headers are stored in kernel-uek-devel-$(uname -r) package. For detailed information please refer to your vendor.

For Fedora:
sudo dnf install kernel-headers-$(uname -r)Last metadata expiration check: 0:07:52 ago on Tue Mar 7 05:13:32 2017.
Dependencies resolved.
====================================================================================================================================== Package Arch Version Repository Si
======================================================================================================================================
Installing: kernel-headers x86_64 4.9.13-200.fc25 updates 1.1
Transaction Summary
======================================================================================================================================
Install 1 Package
Total download size: 1.1 M
Installed size: 3.8 M

For SUSE based systems

In SUSE based systems, there is no such logic in package naming, so you need to check the package versions manually. You need the kernel-source package to be installed, this way you can check all available versions of this package:
 
sudo zypper se -s --match-exact kernel-sourceRefreshing service 'nu_novell_com'.
Loading repository data...
Reading installed packages...

Check if you see a package matching your running kernel version and then try to install it. For example:
 
user@host:~> uname -r3.0.101-65-defaultuser@host:~> sudo zypper in kernel-source-3.0.101-65.1Refreshing service 'nu_novell_com'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW packages are going to be installed:
kernel-default-devel kernel-source
2 new packages to install.
Overall download size: 95.4 MiB. After the operation, additional 429.9 MiB will be used.
Continue? [y/n/? shows all options] (y): y
Retrieving package kernel-source-3.0.101-65.1.x86_64 (1/2), 88.9 MiB (427.1 MiB unpacked)
Retrieving: kernel-source-3.0.101-65.1.x86_64.rpm [done (1.4 MiB/s)]
Retrieving package kernel-default-devel-3.0.101-65.1.x86_64 (2/2), 6.5 MiB (2.8 MiB unpacked)
Retrieving: kernel-default-devel-3.0.101-65.1.x86_64.rpm [done]
Installing: kernel-source-3.0.101-65.1 [done]
Installing: kernel-default-devel-3.0.101-65.1 [done]

The version shown by uname can be different from that in in zypper. You can check the available versions of your kernel the same way as you did for kernel sources:
 
sudo zypper se -s --match-exact kernel-defaultRefreshing service 'nu_novell_com'.
Loading repository data...
Reading installed packages...
S | Name           | Type       | Version      | Arch   | Repository
--+----------------+------------+--------------+--------+-------------------
i | kernel-default | package    | 3.0.101-94.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-91.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-88.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-84.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-80.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-77.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-71.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-68.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-65.1 | x86_64 | SLES11-SP4-Updates
v | kernel-default | package    | 3.0.101-63.1 | x86_64 | SLES11-SP4-Pool
  | kernel-default | srcpackage | 3.0.101-94.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-91.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-88.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-84.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-80.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-77.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-71.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-68.1 | noarch | SLES11-SP4-Updates
  | kernel-default | srcpackage | 3.0.101-65.1 | noarch | SLES11-SP4-Updates

It this output we have a kernel-default package matching the uname -r version (except for the last digit which indicates the package release version).

5.    After that you can rebuild the veeamsnap module again:
sudo dkms build -m veeamsnap -v 1.0.0.944Kernel preparation unnecessary for this kernel.  Skipping...
Building module:
cleaning build area....
make KERNELRELEASE=3.0.101-94-default -C /lib/modules/3.0.101-94-default/build M=/var/lib/dkms/veeamsnap/1.0.0.944/build........
cleaning build area....
DKMS: build completed.

6. Try to install this module

sudo dkms install -m veeamsnap -v 1.0.0.944veeamsnap:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/3.10.0-514.16.1.el7.x86_64/extra/
Adding any weak-modules
 
depmod...
 
DKMS: install completed.

Scenario 3: the module has been built, but for a different kernel

It is possible that this package version has been superseded by the distribution vendor or you do not have the correct repositories enabled.

1. Check the list of available repositories.

For Debian based:
sudo apt-cache policyPackage files: 100 /var/lib/dpkg/status release a=now 500 http://repository.veeam.com/backup/linux/agent/dpkg/debian/x86_64/ noname/veeam amd64 Packages release o=veeam,a=stable,n=noname,l=veeam,c=veeam origin repository.veeam.com 500 http://ftp.us.debian.org/debian/ jessie-updates/main Translation-en 500 http://ftp.us.debian.org/debian/ jessie-updates/main i386 Packages release o=Debian,a=stable-updates,n=jessie-updates,l=Debian,c=main origin ftp.us.debian.org 500 http://ftp.us.debian.org/debian/ jessie-updates/main amd64 Packages release o=Debian,a=stable-updates,n=jessie-updates,l=Debian,c=main origin ftp.us.debian.org 500 http://security.debian.org/ jessie/updates/main Translation-en 500 http://security.debian.org/ jessie/updates/main i386 Packages release v=8,o=Debian,a=stable,n=jessie,l=Debian-Security,c=main origin security.debian.org 500 http://security.debian.org/ jessie/updates/main amd64 Packages release v=8,o=Debian,a=stable,n=jessie,l=Debian-Security,c=main origin security.debian.org 500 http://ftp.us.debian.org/debian/ jessie/main Translation-en 500 http://ftp.us.debian.org/debian/ jessie/main i386 Packages release v=8.7,o=Debian,a=stable,n=jessie,l=Debian,c=main origin ftp.us.debian.org 500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages release v=8.7,o=Debian,a=stable,n=jessie,l=Debian,c=main origin ftp.us.debian.org
Pinned packages:

For RHEL/OEL/CentOS:
sudo yum repolistLoaded plugins: fastestmirror
Loading mirror speeds from cached hostfile * base: mirror.awanti.com * epel: mirror.awanti.com * extras: mirror.awanti.com * updates: mirror.awanti.com
repo id repo name status
!base/7/x86_64 CentOS-7 - Base 9,363
!epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 11,290
!extras/7/x86_64 CentOS-7 - Extras 266
!updates/7/x86_64 CentOS-7 - Updates 1,086
!veeam Veeam Backup for GNU/Linux - x86_64 2
repolist: 22,007
repo id repo name status
base CentOS-6 - Base 6,696
epel Extra Packages for Enterprise Linux 6 - x86_64 12,251
extras CentOS-6 - Extras 63
updates CentOS-6 - Updates 955
veeam Veeam Backup for GNU/Linux - x86_64 2
repolist: 19,967
[user@host ~]$

For SUSE based:
 
sudo zypper lrroot's password:
# | Alias | Name | Enabled | Refresh
---+--------------------------------------------------+--------------------------------------------------+---------+-------- 1 | SUSE-Linux-Enterprise-Server-11-SP4 11.4.4-1.109 | SUSE-Linux-Enterprise-Server-11-SP4 11.4.4-1.109 | No | No 2 | nu_novell_com:SLE11-Public-Cloud-Module | SLE11-Public-Cloud-Module | No | Yes 3 | nu_novell_com:SLE11-SP4-Debuginfo-Pool | SLE11-SP4-Debuginfo-Pool | No | Yes 4 | nu_novell_com:SLE11-SP4-Debuginfo-Updates | SLE11-SP4-Debuginfo-Updates | No | Yes 5 | nu_novell_com:SLE11-Security-Module | SLE11-Security-Module | No | Yes 6 | nu_novell_com:SLES11-Extras | SLES11-Extras | No | Yes 7 | nu_novell_com:SLES11-SP4-Pool | SLES11-SP4-Pool | Yes | Yes 8 | nu_novell_com:SLES11-SP4-Updates | SLES11-SP4-Updates | Yes | Yes 9 | packman_1 | packman | Yes | Yes
10 | veeam | Veeam Backup for GNU/Linux - x86_64 | Yes | Yes

For Fedora:
sudo dnf repolistLast metadata expiration check: 1:13:54 ago on Wed Mar 8 14:58:04 2017.
repo id repo name status
*fedora Fedora 25 - x86_64 51,669
*updates Fedora 25 - x86_64 - Updates 17,234

2.    If all necessary repositories are enabled, try to find all available package versions manually:

For Debian:
sudo apt-cache madison linux-headers-*linux-headers-3.16.0-4-all | 3.16.39-1+deb8u1 | http://security.debian.org/ jessie/updates/main amd64 Packages
linux-headers-3.16.0-4-all | 3.16.39-1 | http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
linux-headers-3.16.0-4-all | 3.16.7-ckt25-2 | http://ftp.us.debian.org/debian/ jessie-updates/main amd64 Packages
linux-headers-3.16.0-4-amd64 | 3.16.39-1+deb8u1 | http://security.debian.org/ jessie/updates/main amd64 Packages
linux-headers-3.16.0-4-amd64 | 3.16.39-1 | http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
linux-headers-3.16.0-4-amd64 | 3.16.7-ckt25-2 | http://ftp.us.debian.org/debian/ jessie-updates/main amd64 Packages
linux-headers-amd64 | 3.16+63 | http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
linux-headers-3.16.0-4-common | 3.16.39-1+deb8u1 | http://security.debian.org/ jessie/updates/main amd64 Packages
linux-headers-3.16.0-4-common | 3.16.39-1 | http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
linux-headers-3.16.0-4-common | 3.16.7-ckt25-2 | http://ftp.us.debian.org/debian/ jessie-updates/main amd64 Packages
linux-headers-3.16.0-4-all-amd64 | 3.16.39-1+deb8u1 | http://security.debian.org/ jessie/updates/main amd64 Packages
linux-headers-3.16.0-4-all-amd64 | 3.16.39-1 | http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
linux-headers-3.16.0-4-all-amd64 | 3.16.7-ckt25-2 | http://ftp.us.debian.org/debian/ jessie-updates/main amd64 Packages

For RHEL/OEL/CentOS:

sudo yum list kernel-headers-\*

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.awanti.com
 * epel: mirror.awanti.com
 * extras: mirror.awanti.com
 * updates: mirror.awanti.com
Installed Packages
kernel-headers.x86_64                                                                               3.10.0-514.10.2.el7                                                                                @updates


For Fedora:
 
sudo dnf list kernel-headers-\*Last metadata expiration check: 1:47:48 ago on Wed Mar 8 14:58:04 2017.
Installed Packages
kernel-headers.x86_64 4.9.13-200.fc25 @updates

For SUSE based systems:
sudo zypper se -s --match-exact kernel-sourceRefreshing service 'nu_novell_com'.
Retrieving repository 'SLES11-SP4-Updates' metadata [done]
Building repository 'SLES11-SP4-Updates' cache [done]
Loading repository data...
Reading installed packages...
S | Name | Type | Version | Arch | Repository
--+---------------+------------+--------------+--------+-------------------
i | kernel-source | package | 3.0.101-94.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-91.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-88.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-84.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-80.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-77.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-71.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-68.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-65.1 | x86_64 | SLES11-SP4-Updates
v | kernel-source | package | 3.0.101-63.1 | x86_64 | SLES11-SP4-Pool | kernel-source | srcpackage | 3.0.101-94.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-91.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-88.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-84.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-80.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-77.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-71.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-68.1 | noarch | SLES11-SP4-Updates | kernel-source | srcpackage | 3.0.101-65.1 | noarch | SLES11-SP4-Updates
3.    If the package has not been found, here is what can be done to resolve this issue:
  • Search for the package on the installation media of your distribution
  • Request the package from your vendor or search for it in a secure public repository. Keep in mind, that Veeam is not responsible for the content of public repositories
  • Install the most recent kernel version for your distribution and reboot the machine
After installing the proper versions of sources or installing the most recent kernel version, it will be possible to compile the veeamsnap module using the steps from scenario 2.

More Information

If none of the solutions help, please follow these instructions to collect the diagnostic data for submitting a support case.

The behavior described above is the design of DKMS. DKMS framework builds modules for the currently running kernel. Otherwise the module would be built for another kernel version and would not be loaded or built at all.

When you create a support case, it will be very helpful if you complete the steps above and share a short summary of what has been done. It will also be helpful if you collect the diagnostic information as follows:

1.    Open your Linux shell.
2.    Run the following commands in the terminal:
 
cat /etc/*release
uname -a
lsb_release -a

3.    Depending on your distribution vendor and version, run the following commands to provide us with the information about the installed packages and repositories:

For Debian based systems:
sudo apt-cache madison veeam*
sudo apt-cache madison linux*
sudo apt-cache policy

For SUSE based systems:
sudo zypper se -s --match-exact veeam\*
sudo zypper se -s --match-exact kernel\*
sudo zypper lr

For RHEL/OEL/CentOS systems:
 
sudo yum list veeam\*
sudo yum list kernel\*
sudo yum repolist all

For Fedora:
sudo dnf list veeam\*
sudo dnf list kernel\*
sudo dnf repolist all

4.    Provide the information about DKMS modules and build attempt:
 
dkms status
dkms build -m veeamsnap -v 1.0.0.944 –all

5.    Compiler information and module load attempt:
 
gcc -v
modprobe veeamsnap

Please save the output of all these actions and provide it to us.
 
5 / 5 (44 votes cast)

Report a typo on this page:

Please select a spelling error or a typo on this page with your mouse and press CTRL + Enter to report this mistake to us. Thank you!

Orphus system