After installing a Xen DomU, the VM will not start; kernel image not found error

  • 3419361
  • 17-Dec-2007
  • 30-Apr-2012

Environment

Novell SUSE Linux Enterprise Desktop 10 Service Pack 1
Novell SUSE Linux Enterprise Server 10 Service Pack 1
Novell Open Enterprise Server 2 (OES2)

Situation

After installing Xen guests (DomU), the guest can not be started. The following error may be present:

ERROR: "Error: Kernel image does not exist: /tmp/kernel.SUMgkq"

Resolution

NOTE: In this example our guest is named SLES10. For this TID, replace SLES10 with the name of the virtual machine ("xm list" will show the names of all the virtual machines installed).

method 1: Edit Python files
This method is recommended per Novell documentation.
  1. Navigate to a temporary directory.
  2. Extract the python file:
    xm list -l SLES10> sles10.py
  3. Create a backup copy of the sles10.py; it may be needed later on.
  4. Open sles10.py for editing.
  5. Locate the bootloader_args parameter. It will most likely look like this:
    ( bootloader_args )
  6. Replace it with
    ( bootloader_args'--entry=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen')
  7. Locate the bootloader parameter. It will most likely look like this:
    ( bootloader )
  8. Replace it with
    ( bootloader /usr/lib/xen/boot/domUloader.py )
  9. Reload the new configuration file by typing
    xm new -F sles10.py
  10. Start the Xen guest
    xm start SLES10
method 2: Configure /etc/xen/vm files
This method uses the same method as other Linux vendors, such as Red Hat.
  1. Go to /etc/xen/vm
  2. Locate the file with the guest's name (not the .xml file)
  3. Open the file for editing
  4. Change bootloader="" to
    bootloader="/usr/lib/xen/boot/domUloader.py"
  5. Change bootloaderargs="" to
    bootargs="--entry=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen"
  6. Save the file
  7. Import the new file
    xm new -f sles10
  8. Start the Xen Guest
    xm start sles10
caveats
  • This is a trial and error process. Because the configuration files were not made correctly, some errors may be seen. Review the configuration file and repeat steps 4 through 10 (method 1) or steps 4-8 (method 2) as needed. The most common item that will need review is the location of the kernel image. In ths example we used the first virtual disk (xvda) on the first partition (xvda1)
  • If after typing "xm start...", the command hangs, pass it "control-C". Restart Xend ("rcxend restart"). Note that restarting Xend will not affect running Xen guests.
  • If the Xen guest is in any sort of clustering or if the physical host is in a cluster, shutdown the cluster or turn off clustering for the node at hand. If not, strange things can happen with clustering as a result.
common errors
  • ERROR: "Error: Boot loader didn't return any data!": This means that the bootloader was pointing at the wrong virtual disk and/or partition. Change the xvda1 to xvda2, etc, or to the virtual device where /boot was installed. "xvda" refers to the first disk, either physical or file that is presented to the guest as the first disk.
  • ERROR: "Error: Kernel image does not exist....": Step 7 or 8 was done incorrectly. Review and test.

Additional Information

Cause

This error has been observed when the "virt-manager.py" program (this is the same program that is run by YaST's "Virtual Machine Manager" has been closed before the installation is complete. This only applies to paravirtualized guests.

Configuration files

Other Linux vendors recommend method 2, however in the Novell Documentation, the use of method 1 is preferred. When using method 2, be careful NOT to use xm create in step 7. Also, note that the Python file is imported using xm new -F while the simple text is imported using xm new -f

Related documentation

Please see the Novell Virtualization Documentation for more information.