virt-manager/virtinst-pvgrub2-bootloader.patch
Charles Arnold f88a913443 - jsc#SLE-16582, Upgrade virt-manager >= 3.x
* Slim down filesystem device editor UI
  * Fix TOCTTOU virt-install bugs (Martin Pitt)
  * Several other bug fixes
  virt-manager-3.2.0.tar.bz2
- Drop patches contained in new tarball
  1a1e4580-cloner-Explicitly-reject-network-disks-we-dont-know-how-to-clone.patch
  2773bc35-storagepool-cleanup-volumes-on-pool-cleanup.patch
  b1328202-devices-disk-Skip-check_path_search-for-path.patch
  virtman-append-usr-sbin-to-search-path.patch

- Upstream bug fixes (bsc#1027942)
  1a1e4580-cloner-Explicitly-reject-network-disks-we-dont-know-how-to-clone.patch
  2773bc35-storagepool-cleanup-volumes-on-pool-cleanup.patch
  b1328202-devices-disk-Skip-check_path_search-for-path.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=525
2020-11-16 17:09:49 +00:00

40 lines
1.8 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
suse distros SLE12GA, openSUSE 13.2, and newer.
Index: virt-manager-3.2.0/virtinst/install/installer.py
===================================================================
--- virt-manager-3.2.0.orig/virtinst/install/installer.py
+++ virt-manager-3.2.0/virtinst/install/installer.py
@@ -220,7 +220,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:
@@ -594,6 +595,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 = self._pre_reinstall_xml or guest.get_xml()
log.debug("Generated install XML: %s",