virt-manager/virtinst-pvgrub2-bootloader.patch
Charles Arnold 4f703846c7 - Update to virt-manager 1.4.3 (bsc#1027942)
virt-manager-1.4.3.tar.bz2
  * Improve install of debian/ubuntu non-x86 media (Viktor Mihajlovski, Andrew Wong)
  * New virt-install –graphics listen.* (Pavel Hrdina)
  * New virt-install –disk snapshot_policy= (Pavel Hrdina)
  * New virt-install –cpu cache.* (Lin Ma)
  * Several bug fixes
- Dropped the following patch contained in new tarball
  e902fa55-force-binary-mode-with-FTP-servers.patch
  virt-manager-1.4.2.tar.bz2

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=369
2017-09-20 14:28:03 +00:00

54 lines
2.4 KiB
Diff

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.
Index: virt-manager-1.4.3/virtinst/guest.py
===================================================================
--- virt-manager-1.4.3.orig/virtinst/guest.py
+++ virt-manager-1.4.3/virtinst/guest.py
@@ -366,8 +366,20 @@ class Guest(XMLBuilder):
if (not install and
self.os.is_xenpv() and
not self.os.kernel):
- self.bootloader = "/usr/bin/pygrub"
- self.os.clear()
+ os_ver = self._get_os_variant()
+ if self.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"):
+ self.bootloader = "pygrub"
+ self.os.clear()
+ else:
+ self.installer._install_kernel = "/usr/lib/grub2/x86_64-xen/grub.xen"
+ self.installer._install_initrd = None
+ self.installer.extraargs = None
+ # alter_bootconfig won't update the osxml unless it thinks
+ # we are in an install phase. Add force_update param to call
+ self.installer.alter_bootconfig(self, True, True)
+ logging.info("Using grub.xen to boot guest")
return self.get_xml_config()
Index: virt-manager-1.4.3/virtinst/installer.py
===================================================================
--- virt-manager-1.4.3.orig/virtinst/installer.py
+++ virt-manager-1.4.3/virtinst/installer.py
@@ -99,7 +99,7 @@ class Installer(object):
break
return bootorder
- def alter_bootconfig(self, guest, isinstall):
+ def alter_bootconfig(self, guest, isinstall, force_update=False):
"""
Generate the portion of the guest xml that determines boot devices
and parameters. (typically the <os></os> block)
@@ -110,7 +110,7 @@ class Installer(object):
'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 = guest.os.bootorder