Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




Red Hat Enterprise Linux 9 Essentials Book now available.

Purchase a copy of Red Hat Enterprise Linux 9 (RHEL 9) Essentials

Red Hat Enterprise Linux 9 Essentials Print and eBook (PDF) editions contain 34 chapters and 298 pages

Preview Book

12.3.2. Installation and Configuration of Para-virtualized Drivers on Red Hat Enterprise Linux 3

This section contains detailed instructions for the para-virtualized drivers in a Red Hat Enterprise 3 guest operating system.

Please note

These packages do not support booting from a para-virtualized disk. Booting the guest operating system kernel still requires the use of the emulated IDE driver, while any other (non-system) user-level application and data disks can use the para-virtualized block device driver.
Driver Installation
The list below covers the steps to install a Red Hat Enterprise Linux 3 guest with para-virtualized drivers.
  1. Copy the kmod-xenpv rpm for your hardware architecture and kernel variant to your guest operating system.
  2. Use the rpm utility to install the RPM packages. Ensure you have correctly identified which package you need for your guest operating system variant and architecture.
    [root@rhel3]# rpm -ivh kmod-xenpv*
  3. You need to perform the commands below to enable the correct and automated loading of the para-virtualized drivers. %kvariant is the kernel variant the para-virtualized drivers have been build against and %release corresponds to the release version of the para-virtualized drivers.
    [root@rhel3]# mkdir -p /lib/modules/'uname -r'/extra/xenpv	
    [root@rhel3]# cp -R /lib/modules/2.4.21-52.EL[%kvariant]/extra/xenpv/%release \
    /lib/modules/'uname -r'/extra/xenpv
    [root@rhel3]# cd /lib/modules/'uname -r'/extra/xenpv/%release
    [root@rhel3]# insmod xen-platform-pci.o
    [root@rhel3]# insmod xen-balloon.o`	
    [root@rhel3]# insmod xen-vbd.o
    [root@rhel3]# insmod xen-vnif.o


    Warnings will be generated by insmod when installing the binary driver modules due to Red Hat Enterprise Linux 3 having MODVERSIONS enabled. These warnings can be ignored.
  4. Verify /etc/modules.conf and make sure you have an alias for eth0 like the one below. If you are planning to configure multiple interfaces add an additional line for each interface.
    alias eth0 xen-vnif
    Edit /etc/rc.local and add the line:
    insmod /lib/modules/'uname -r'/extra/xenpv/%release/xen-vbd.o


    Substitute “%release” with the actual release version (for example 0.1-5.el) for the para-virtualized drivers. If you update the para-virtualized driver RPM package make sure you update the release version to the appropriate version.
  5. Shutdown the virtual machine (use “#shutdown -h now” inside the guest).
  6. Edit the guest configuration file in /etc/xen/YourGuestsName in the following ways:
    • Remove the “type=ioemu” entry from the “vif=” entry.
    • Add any additional disk partitions, volumes or LUNs to the guest so that they can be accessed via the para-virtualized (xen-vbd) disk driver.
    • For each additional physical device, LUN, partition or volume add an entry similar to the one below to the “disk=” section in the guest configuration file. The original “disk=” entry might also look like the entry below.
      disk = [ "file:/var/lib/xen/images/rhel3_64_fv.dsk,hda,w"]
    • Once you have added additional physical devices, LUNs, partitions or volumes; the para-virtualized driver entry in your XML configuration file should resemble the entry shown below.
      disk = [ "file:/var/lib/xen/images/rhel3_64_fv.dsk,hda,w",
      "tap:aio:/var/lib/xen/images/UserStorage.dsk,xvda,w" ]


      Use “tap:aio” for the para-virtualized device if a file based image is used.
  7. Boot the virtual machine using the virsh command:
    # virsh start 


    You must use "xm create <virt-machine-name>” on Red Hat Enterprise Linux 5.1. The para-virtualized network driver(xen-vnif) will not be connected to eth0 properly if you are using Red Hat Enterprise Linux 5.1 and the virt-manager or virsh interfaces. This issue is currently a known bug, BZ 300531.
    Red Hat Enterprise Linux 5.2 does not have this bug and the virt-manager or virsh interfaces will correctly load the para-virtualized drivers.

Be aware

The para-virtualized drivers are not automatically added and loaded to the system because weak-modules and modversions support is not provided in Red Hat Enterprise Linux 3. To insert the module execute the command below.
insmod xen-vbd.ko
Red Hat Enterprise Linux 3 requires the manual creation of the special files for the block devices which use xen-vbd. The steps below will cover how to create and register para-virtualized block devices.
Use the following script to create the special files after the para-virtualized block device driver is loaded.
major=`awk "\\$2==\"$module\" {print \\$1}" /proc/devices`
# < mknod for as many or few partitions on xvd disk attached to FV guest >
# change/add xvda to xvdb, xvbd, etc. for 2nd, 3rd, etc., disk added in
# in xen config file, respectively.
mknod /dev/xvdb b $major 0
mknod /dev/xvdb1 b $major 1
mknod /dev/xvdb2 b $major 2
chgrp disk /dev/xvd*
chmod $mode /dev/xvd*
For each additional virtual disk, increment the minor number by 16. In the example below an additional device, minor number 16, is created.
mknod /dev/xvdc b $major 16
mknod /dev/xvdc1 b $major 17
This would make the next device 32 which can be created by:
mknod /dev/xvdd b $major 32
mknod /dev/xvdd1 b $major 33
Now you should verify the partitions which you have created are available.
[root@rhel3]# cat /proc/partitions
major   minor     #blocks   name

  3        0      10485760  hda
  3        1        104391  hda1
  3        2      10377990  hda2
202        0         64000  xvdb
202        1         32000  xvdb1
202        2         32000  xvdb2
253        0       8257536  dm-0
253        1       2031616  dm-1
In the above output, you can observe that the partitioned device “xvdb” is available to the system.
The commands below mount the new block devices to local mount points and updates the /etc/fstab inside the guest to mount the devices/partitions during boot.
[root@rhel3]# mkdir /mnt/pvdisk_p1
[root@rhel3]# mkdir /mnt/pvdisk_p2
[root@rhel3]# mount /dev/xvdb1 /mnt/pvdisk_p1
[root@rhel3]# mount /dev/xvdb2 /mnt/pvdisk_p2
[root@rhel3]# df /mnt/pvdisk_p1
Filesystem           1K-blocks      Used   Available Use%  Mounted on
/dev/xvdb1               32000        15       31985   1%  /mnt/pvdisk_p1

Performance tip

Using a Red Hat Enterprise Linux 5.1 host(dom0), the "noapic" parameter should be added to the kernel boot line in your virtual guest's /boot/grub/grub.conf entry as seen below. Keep in mind your architecture and kernel version may be different.
kernel /vmlinuz-2.6.9-67.EL ro root=/dev/VolGroup00/rhel4_x86_64 rhgb noapic
A Red Hat Enterprise Linux 5.2 dom0 will not need this kernel parameter for the guest.


The Itanium (ia64) binary RPM packages and builds are not presently available.

  Published under the terms of the GNU General Public License Design by Interspire