hyper2kvm

Testing Converted openSUSE qcow2 on Fedora (GUI, BIOS)

This guide describes how to validate a converted openSUSE qcow2 image using KVM + libvirt on Fedora, booting directly into graphical (GUI) mode with legacy BIOS (SeaBIOS).

This is intended as a post-conversion smoke test after migrating a VMware VMDK to qcow2 and applying offline fixes (fstab, GRUB, initramfs, etc.).


Table of Contents


Host Requirements (Fedora)

Install required virtualization tools:

sudo dnf install -y \
  libvirt \
  qemu-kvm \
  qemu-img \
  virt-viewer \
  libguestfs-tools

Enable libvirt and ensure the default network is active:

sudo systemctl enable --now libvirtd
sudo virsh net-start default 2>/dev/null || true

Image Under Test

/home/ssahani/by-path/out/opensuse-leap-15.4-fixed.qcow2

Assumptions:


BIOS + GUI libvirt XML (Most Compatible)

This XML configuration is intentionally conservative and works reliably for legacy openSUSE guests:

cat >/tmp/opensuse-test.xml <<'EOF'
<domain type='kvm'>
  <name>opensuse-leap-15-4-gui</name>

  <memory unit='MiB'>4096</memory>
  <vcpu>2</vcpu>

  <os>
    <type arch='x86_64' machine='pc'>hvm</type>
    <boot dev='hd'/>
  </os>

  <features>
    <acpi/>
    <apic/>
  </features>

  <cpu mode='host-passthrough'/>

  <devices>
    <!-- Disk -->
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/home/ssahani/by-path/out/opensuse-leap-15.4-fixed.qcow2'/>
      <target dev='vda' bus='virtio'/>
    </disk>

    <!-- Network -->
    <interface type='network'>
      <source network='default'/>
      <model type='virtio'/>
    </interface>

    <!-- Graphics -->
    <graphics type='vnc' autoport='yes' listen='127.0.0.1'/>

    <video>
      <model type='qxl' vram='65536'/>
    </video>

    <input type='tablet' bus='usb'/>
  </devices>
</domain>
EOF

Define and Start the VM

If a domain with the same name already exists, remove it first:

sudo virsh destroy opensuse-leap-15-4-gui 2>/dev/null || true
sudo virsh undefine opensuse-leap-15-4-gui 2>/dev/null || true

Define and start the VM:

sudo virsh define /tmp/opensuse-test.xml
sudo virsh start opensuse-leap-15-4-gui

Connect to the GUI

virt-viewer opensuse-leap-15-4-gui

Option 2: VNC

sudo virsh vncdisplay opensuse-leap-15-4-gui

Connect to the displayed address, for example:

127.0.0.1:5901

Expected Boot Sequence

A successful boot should show:

  1. SeaBIOS splash
  2. GRUB menu
  3. openSUSE kernel + initramfs
  4. Graphical login screen

If this sequence completes, the image is boot-validated.


Troubleshooting

Black screen after GRUB

Try a simpler video model:

<model type='vga'/>

“No bootable device”

Some older installs expect SATA instead of virtio:

<target dev='sda' bus='sata'/>

Boots to text mode only

This is a guest OS configuration issue, not a virtualization problem.

Inside the guest:

systemctl get-default
systemctl status display-manager

Notes


Status: ✅ Verified working for openSUSE Leap 15.4 (BIOS, GUI)

```