Quantcast
Channel: Veeam Support Knowledge Base
Viewing all articles
Browse latest Browse all 4362

Failed to load module [veeamsnap] (extended version)

$
0
0

Challenge

There is an express version of this article here. Please note that for Veeam Agent for Linux 2.0.0.400 packages with pre-compiled modules are available. This instruction is only for cases when you need to use dkms managed veeamsnap module.

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-amd64
Module 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_64
Module 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-default
Module 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.944

Error! 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.944

Error! 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.944

Error! 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-source

Refreshing 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 -r

3.0.101-65-default

user@host:~> sudo zypper in kernel-source-3.0.101-65.1

Refreshing 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-default

Refreshing 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.944

Kernel 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.944

veeamsnap:
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 policy

Package 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 repolist

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
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 lr

root'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 repolist

Last 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-source

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

Viewing all articles
Browse latest Browse all 4362

Trending Articles