XEN: Unable to install or import DomU's on SLES 11; boot loader error returned
This document (7002815) is provided subject to the disclaimer at the end of this document.
Environment
Situation
"Boot loader did not return any data!"
"Boot loader did not return any data!"
Resolution
With the release of SLES 11, a major architectural change effected the DomU boot loader, bringing SLES closer to what the greater Linux Community uses. Previously, SLES 10 Xen used the domUloader, which did not require a boot loader configuration. Under SLES 11, pygrub is the default DomU bootloader, which uses a grub boot loader configuration in order to start a domU.
pygrub has several advantages over the SLES 10.x behavior. Most notably, under SLES 10, knowledge of the disk layout was needed in order to start a DomU. YaST and Virt-manager had special functionality to discover where the kernel and the initrd could be found. With pygrub, multiple kernels, as well as boot options can be defined giving administrators more options in controlling the booting of DomU's. Another significant advantage to pygrub is that a machine can migrate easily between physical and virtual environment, since the Grub boot loader is installed.
-
DomU's started within clustering such as Linux Heartbeat/Pacemaker
-
DomU's started via legacy files (i.e. /etc/xen/vm)
-
DomU's started within a management database on an upgraded machine
-
pre-SLES 11 DomU's physical or disk imported via Virt-Manager
- Attempting to install DomU's without Grub installed
installation change: install a boot loader
If a DomU will be run on both SLES 10 and SLES 11 Dom0 hosts, install the DomU on SLES 10. After the DomU is created, use the /etc/xen/vm file to make changes to hardware and to start and stop the DomU.
TID 3312774, " Directly attaching Xen DomU disk images to Dom0 for system rescue" describes how to attach a DomU disk image to Dom0. By following the TID, you will be able to make available the disk image inside of DomU, which will allow modifications to the DomU. Make sure to mount the boot partition, if there is one under /mnt/boot prior to chrooting. At that point, create a /boot/grub/menu.lst file. Populate it with the following:
timeout 8
title Default Kernel
root (hd0,0)
kernel /vmlinuz-xen root=/dev/xvda2 splash=silent showopts vga=0x31a
initrd /initrd-xen
Save the file and follow the reset of the TID about cleaning up. You should then be able to import the DomU using Virt-Manager with out any problems.
domUloader: use or import legacy /etc/xen/vm files
domUloader still ships with SLES 11, but is not the default boot loader for "vm-install" which is used by Virt-Manager and YaST. If you have not modified the domU using "xm" commands, YaST, or "Virt-Manager", then you can re-import the DomU configuration. To do so simply type "xm new -f <configuration file>".
domUloader: create configuration file from hand
If the other techniques fail, you can create a DomU configuration from hand. This method will allow you to import a Xen DomU created on SLES 10 SP1 or SLES 10 SP2 without modifying the guest when the configuration file or configuration in the Xenstore is not available.
Below is an example of a SLES 11 default configuration file, which will use the pygrub DomU boot loader: name="sles11"
memory=512
maxmem=512
vcpus=4
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=0
keymap="en-us"
builder="linux"
bootloader="/usr/bin/pygrub"
bootargs=""
extra=""
disk=[ 'file:/var/lib/xen/images/sles11/disk0,xvda,w', ]
vif=[ 'mac=00:16:3e:76:3d:8b,bridge=br0', ]
vfb=['type=vnc,vncunused=1']
The following is an example of a SLES 10 SP2 or SLES 10 SP1 default configuration that will use domUloader.sys.
name="sles10"
memory=512
maxmem=512
vcpus=4
on_poweroff="destroy"
on_reboot="restart"
on_crash="destroy"
localtime=0
keymap="en-us"
builder="linux"
bootloader="/usr/lib/xen/domUloader.sys"
bootargs="--entry=xvda2:/boot/vmlinuz-xen,/boot/initrd-xen"
extra=""
disk=[ 'file:/var/lib/xen/images/sles11/disk0,xvda,w', ]
vif=[ 'mac=00:16:3e:76:3d:8b,bridge=br0', ]
vfb=['type=vnc,vncunused=1']
-
This is a trial and error process. 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.
Additional Information
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7002815
- Creation Date: 24-Mar-2009
- Modified Date:15-Mar-2021
-
- SUSE Linux Enterprise Desktop
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com