To prevent this issue, enable Dynamic Kernel Module Support (DKMS) before applying kernel updates.
To use DKMS with Red Hat:
1. Install the latest DKMS package:
wget http://linux.dell.com/dkms/permalink/dkms-2.1.1.2-1.noarch.rpm
rpm -ivh dkms-2.1.1.2-1.noarch.rpm
2. Copy the Linux Integration Services source code to the virtual machine. After attaching the LinuxIC v21.iso file to the virtual machine, run the following commands in the virtual machine:
a. Copy the contents of the ISO to the virtual machine.
cp -R <cdrom mount point> /usr/src/linuxic-2.1
b. Copy the dkms.conf file to /usr/src/linuxic-2.1
cp /usr/src/linuxic-2.1/scripts/dkms.conf /usr/src/linuxic-2.1/
c. Add these four extra lines to /etc/modprobe.conf.
alias scsi_hostadapter1 vmbus
alias scsi_hostadapter2 blkvsc
alias scsi_hostadapter3 storvsc
alias scsi_hostadapter4 netvsc
3. Install the drivers through DKMS.
dkms add -m linuxic -v 2.1
dkms build -m linuxic -v 2.1
dkms install --force -m linuxic -v 2.1
reboot
4. After the reboot, confirm that the drivers have loaded successfully by executing the following command:
# /sbin/modinfo vmbus
filename: /lib/modules/2.6.18-194.el5/kernel/drivers/vmbus/vmbus.ko
version: 2.1.25
license: GPL
depends:
vermagic: 2.6.18-194.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
parm: vmbus_irq:int
parm: vmbus_loglevel:int
The kernel can now be updated without affecting the currently installed kernel modules.
To use DKMS with Novell SUSE Linux Enterprise Server 10 or 11:
1. Upgrade the module-init-tools package, and install the latest DKMS package. The module-init-tools package can be downloaded through YaST or from the Novell web site.
rpm -U module-init-tools-3.4-70.7.1.x86_64.rpm
wget http://linux.dell.com/dkms/permalink/dkms-2.1.1.2-1.noarch.rpm
rpm -ivh dkms-2.1.1.2-1.noarch.rpm
2. Copy the Linux Integration Services source code to the virtual machine. After attaching the LinuxIC v21.iso file to the virtual machine, run the following commands in the virtual machine:
a. Copy the contents of the ISO to the virtual machine.
cp -R <cdrom mount point> /usr/src/linuxic-2.1
b. Copy the dkms.conf file to /usr/src/linuxic-2.1
cp /usr/src/linuxic-2.1/scripts/dkms.conf /usr/src/linuxic-2.1/
c. Edit /etc/modprobe.d/unsupported-modules to read:
allow_unsupported_modules 1
3. Install the drivers through DKMS.
dkms add -m linuxic -v 2.1
dkms build -m linuxic -v 2.1
dkms install --force -m linuxic -v 2.1
4. Modify /boot/grub/menu.lst and /etc/fstab
a. Create a backup of the original files:
cp /boot/grub/menu.lst /boot/grub/menu.lst/bak
cp /etc/fstab /etc/fstab.bak
b. As the root user, edit /etc/fstab and make the following changes:
c. Sections that begin with /dev/disk/* should be replaced by their /dev/hd* equivalents, so that /etc/fstab looks similar to the following example:
/dev/hda1 swap swap defaults 0 0
/dev/hda2 / ext3 acl,user_xattr 1 1
d. Save the changes to /etc/fstab.
e. As the root user, edit /boot/grub/menu.lst and modify the kernel options as follows:
root=/dev/hda2 resume=/dev/hda1
f. Save the changes to /boot/grub/menu.lst
g. Reboot the virtual machine.
5. After the reboot, confirm that the drivers have loaded successfully by executing the following command:
# /sbin/modinfo vmbus
filename: /lib/modules/2.6.16.60-0.54.5-smp/kernel/drivers/vmbus/vmbus.ko
version: 2.1.25
license: GPL
depends:
vermagic: 2.6.16.60-0.54.5-smp SMP gcc-4.1
parm: vmbus_irq:int
parm: vmbus_loglevel:int
6. Before a kernel update, restore the original /etc/fstab and /boot/grub/menu.lst files, then reboot the VM.
# cp /etc/fstab.bak /etc/fstab
# cp /boot/grub/menu.lst.bak /boot/grub/menu.lst
# reboot
7. Upgrade the kernel and the kernel-source package, then reboot.
8. After the reboot into the new kernel, follow the directions in the User’s Guide to modify /etc/fstab and /boot/grub/menu.lst:
a. As the root user, edit /etc/fstab and make the following changes:
b. Sections that begin with /dev/disk/* should be replaced by their /dev/hd* equivalents, so that /etc/fstab looks similar to the following example:
/dev/hda1 swap swap defaults 0 0
/dev/hda2 / ext3 acl,user_xattr 1 1
c. Save the changes to /etc/fstab.
d. As the root user, edit /boot/grub/menu.lst and modify the kernel options as follows:
root=/dev/hda2 resume=/dev/hda1
e. Save the changes to /boot/grub/menu.lst
f. Reboot the virtual machine.