2015-05-04 22:15:01 +02:00
|
|
|
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
|
|
|
|
newer suse distros like SLE12 and openSUSE 13.2.
|
2016-06-22 00:34:03 +02:00
|
|
|
Index: virt-manager-1.4.0/virtinst/guest.py
|
2014-03-24 16:05:15 +01:00
|
|
|
===================================================================
|
2016-06-22 00:34:03 +02:00
|
|
|
--- virt-manager-1.4.0.orig/virtinst/guest.py
|
|
|
|
+++ virt-manager-1.4.0/virtinst/guest.py
|
2016-09-08 18:20:24 +02:00
|
|
|
@@ -364,8 +364,20 @@ class Guest(XMLBuilder):
|
2014-04-29 00:47:42 +02:00
|
|
|
if (not install and
|
|
|
|
self.os.is_xenpv() and
|
|
|
|
not self.os.kernel):
|
|
|
|
- self.bootloader = "/usr/bin/pygrub"
|
|
|
|
- self.os.clear()
|
2014-03-27 23:27:37 +01:00
|
|
|
+ os_ver = self._get_os_variant()
|
2015-10-08 20:24:19 +02:00
|
|
|
+ if os_ver.startswith("sles12") or os_ver.startswith("sled12") or \
|
2016-03-18 22:27:01 +01:00
|
|
|
+ os_ver.startswith("opensuse13") or os_ver.startswith("opensuse42") or \
|
|
|
|
+ os_ver.startswith("opensuse-tumbleweed"):
|
2014-03-27 23:27:37 +01:00
|
|
|
+ self.installer._install_kernel = "/usr/lib/grub2/x86_64-xen/grub.xen"
|
|
|
|
+ self.installer._install_initrd = None
|
|
|
|
+ self.installer.extraargs = None
|
2014-04-29 00:47:42 +02:00
|
|
|
+ # alter_bootconfig won't update the osxml unless it thinks
|
|
|
|
+ # we are in an install phase. Add force_update param to call
|
2015-05-04 22:15:01 +02:00
|
|
|
+ self.installer.alter_bootconfig(self, True, True)
|
2014-03-27 23:27:37 +01:00
|
|
|
+ logging.info("Using grub.xen to boot guest")
|
2014-04-29 00:47:42 +02:00
|
|
|
+ else:
|
2014-03-24 16:05:15 +01:00
|
|
|
+ self.bootloader = "/usr/bin/pygrub"
|
2014-04-29 00:47:42 +02:00
|
|
|
+ self.os.clear()
|
2014-03-24 16:05:15 +01:00
|
|
|
|
|
|
|
return self.get_xml_config()
|
2014-04-29 00:47:42 +02:00
|
|
|
|
2016-06-22 00:34:03 +02:00
|
|
|
Index: virt-manager-1.4.0/virtinst/installer.py
|
2014-04-29 00:47:42 +02:00
|
|
|
===================================================================
|
2016-06-22 00:34:03 +02:00
|
|
|
--- virt-manager-1.4.0.orig/virtinst/installer.py
|
|
|
|
+++ virt-manager-1.4.0/virtinst/installer.py
|
2015-06-08 14:36:45 +02:00
|
|
|
@@ -99,7 +99,7 @@ class Installer(object):
|
|
|
|
break
|
|
|
|
return bootorder
|
2014-04-29 00:47:42 +02:00
|
|
|
|
2015-05-04 22:15:01 +02:00
|
|
|
- def alter_bootconfig(self, guest, isinstall):
|
|
|
|
+ def alter_bootconfig(self, guest, isinstall, force_update=False):
|
2014-04-29 00:47:42 +02:00
|
|
|
"""
|
|
|
|
Generate the portion of the guest xml that determines boot devices
|
|
|
|
and parameters. (typically the <os></os> block)
|
2015-06-08 14:36:45 +02:00
|
|
|
@@ -110,7 +110,7 @@ class Installer(object):
|
2014-04-29 00:47:42 +02:00
|
|
|
'post-install' phase.
|
|
|
|
@type isinstall: C{bool}
|
|
|
|
"""
|
|
|
|
- if isinstall and not self.has_install_phase():
|
|
|
|
+ if isinstall and not force_update and not self.has_install_phase():
|
|
|
|
return
|
|
|
|
|
|
|
|
bootorder = self._build_boot_order(isinstall, guest)
|