While testing Oracle Enterprise Linux 5 on Citrix based VM; It got stuck showing error “PCI: Fatal: No config space access function found” while booting the VM for the first time after installation.
I have searched this error on Internet but didn’t found any perfect solution for the issue. The only information or hint I was able to get is that the problem is related to the OS kernel and para-virtualized kernel (Xen) compatibility.
To diagnose the problem I have decided to check the grub (bootloader) of the VM. Following are the steps to check and edit bootloader of a VM in Citrix.
1) Find VM uuid: first we have to fetch the UUID of the VM (Oracle VM in this case). Use “xe vm-list” to find the VM UUID
uuid ( RO) : 927d0d79-24f3-93d8-1a04-649ef40e92b7
name-label ( RW) : OEL_64bit
power-state ( RO): running
2) Shutdown the VM: Shutdown the VM using Xen Center or you can execute following command to shutdown the VM
[root@test ~]#
3) Edit Boot Loader: execute following command to edit the boot loader
Here, “927d0d79-24f3-93d8-1a04-649ef40e92b7” is the UUID of the VM and “-p 1” is the partition number. After executing the command following screen (Grub) appeared.
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/xvda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server (2.6.32-200.13.1.el5uek)
root (hd0,0)
kernel /vmlinuz-2.6.32-200.13.1.el5uek ro root=/dev/VolGroup00/LogVol00 console=xvc0 rhgb quiet
initrd /initrd-2.6.32-200.13.1.el5uek.img
title Oracle Linux Server-xen (2.6.18-274.el5xen)
root (hd0,0)
kernel /vmlinuz-2.6.18-274.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0 rhgb quiet
initrd /initrd-2.6.18-274.el5xen.img
“default=0” shows that the VM is booting with kernel having title “Oracle Linux Server (2.6.32-200.13.1.el5uek)“. So, I have changed the default value from 0 to 1 which will now boot the VM with kernel “Oracle Linux Server-xen (2.6.18-274.el5xen)“. Your Grub file should look like:
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/xvda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Oracle Linux Server (2.6.32-200.13.1.el5uek)
root (hd0,0)
kernel /vmlinuz-2.6.32-200.13.1.el5uek ro root=/dev/VolGroup00/LogVol00 console=xvc0 rhgb quiet
initrd /initrd-2.6.32-200.13.1.el5uek.img
title Oracle Linux Server-xen (2.6.18-274.el5xen)
root (hd0,0)
kernel /vmlinuz-2.6.18-274.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0 rhgb quiet
initrd /initrd-2.6.18-274.el5xen.img
I have started the VM after saving grub, Bingo !! VM booted successfully.




Milind Koyande is the Senior Research Engineer and his job is to work with new technologies, specially Cloud Computing / Virtualization Technology. His past projects include Government Sector initiatives, Backup and Disaster Recovery Solutions. Follow him on 


