Reference: bnc#863821 grub.xen is required to boot PV VMs that use the BTRFS filesystem. This patch forces the use of grub.xen (instead of using pygrub) for suse distros SLE12GA, openSUSE 13.2, and newer. Index: virt-manager-2.2.1/virtinst/install/installer.py =================================================================== --- virt-manager-2.2.1.orig/virtinst/install/installer.py +++ virt-manager-2.2.1/virtinst/install/installer.py @@ -167,7 +167,8 @@ class Installer(object): def _alter_treemedia_bootconfig(self, guest): if not self._treemedia: - return + if not self._treemedia_bootconfig or "grub.xen" not in self._treemedia_bootconfig[0]: + return kernel, initrd, kernel_args = self._treemedia_bootconfig if kernel: @@ -436,6 +437,20 @@ class Installer(object): install_xml = None if self.has_install_phase(): install_xml = self._get_install_xml(guest, meter) + if (guest.os.is_xenpv() and + not guest.os.kernel): + os_ver = guest.osinfo.name + if guest.os.arch != 'x86_64' or os_ver.startswith("sles9") or \ + os_ver.startswith("sles10") or os_ver.startswith("sled10") or \ + os_ver.startswith("opensuse10") or os_ver.startswith("opensuse11"): + guest.bootloader = "pygrub" + else: + guest.bootloader = None + self._treemedia_bootconfig = ("/usr/lib/grub2/x86_64-xen/grub.xen", "", "") + log.debug("Using grub.xen to boot guest") + on_reboot_value = guest.on_reboot + self._alter_bootconfig(guest) + guest.on_reboot = on_reboot_value final_xml = guest.get_xml() log.debug("Generated install XML: %s",