XEN VM Boot Error: PCI: Fatal: No config space access function found

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

[root@test ~]# xe vm-list name-label=OEL_64bit
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 ~]# xe vm-shutdown uuid=927d0d79-24f3-93d8-1a04-649ef40e92b7
[root@test ~]#

3) Edit Boot Loader: execute following command to edit the boot loader

[root@test ~]# xe-edit-bootloader -u 927d0d79-24f3-93d8-1a04-649ef40e92b7 -p 1

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.

# grub.conf generated by anaconda
#
# 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:

# grub.conf generated by anaconda
#
# 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.

About: Mike

Milind Koyande loves to work on new technologies specially virtualization and troubleshoot server problems. I’m an avid photographer and love to spend my free time close to nature, trying to capture its glory on my camera.


One thought on “XEN VM Boot Error: PCI: Fatal: No config space access function found”

  1. What if I have this error message but my VM boots fine? I’m running Xenserver 6.2 and the VM is centos 6.4…

    In other words I see the error message in my VM’s error log but I have no problems booting….

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.