6

I am trying to create and run a virtual machine on a headless server running CentOS 8 (x86-64).

After installing the necessary tools like libvirt and kvm it seems qemu is missing its main executable, the QEMU PC System emulator, /usr/bin/qemu-system-x86_64:

On a CentOS 7 machine (on which I have done this a dozen times) I ran

root@centos7> rpm -qf /usr/bin/qemu-system-x86_64
qemu-system-x86-2.0.0-1.el7.6.x86_64

However, there is no such package on CentOS 8:

root@centos8> dnf se qemu-system |& tail -1
No matches found.

Where is this executable? Is there no working QEMU system provided for CentOS 8?

root@centos8> dnf se qemu | uniq
Last metadata expiration check: 0:30:19 ago on (...)
========================= Name & Summary Matched: qemu =========================
qemu-guest-agent.x86_64 : QEMU guest agent
qemu-kvm-core.x86_64 : qemu-kvm core components
qemu-kvm-block-ssh.x86_64 : QEMU SSH block driver
qemu-kvm-block-curl.x86_64 : QEMU CURL block driver
qemu-kvm-block-iscsi.x86_64 : QEMU iSCSI block driver
qemu-kvm-block-rbd.x86_64 : QEMU Ceph/RBD block driver
qemu-kvm-block-gluster.x86_64 : QEMU Gluster block driver
qemu-kvm.x86_64 : QEMU is a machine emulator and virtualizer
qemu-img.x86_64 : QEMU command line tool for manipulating disk images
qemu-kvm-common.x86_64 : QEMU common files needed by all QEMU targets
libvirt-daemon-driver-qemu.x86_64 : QEMU driver plugin for the libvirtd daemon
ipxe-roms-qemu.noarch : Network boot loader roms supported by QEMU, .rom format
standard-test-roles-inventory-qemu.noarch : Inventory provisioner for using
                                          : plain qemu command
============================ Summary Matched: qemu =============================
libvirt-lock-sanlock.x86_64 : Sanlock lock manager plugin for QEMU driver

(two duplicates manually removed in the above output).

PS: It works fine in Arch Linux:

root@arch> pacman -Qo /usr/bin/qemu-system-x86_64
/usr/bin/qemu-system-x86_64 is owned by qemu-headless 5.0.0-5

PPS: Red Hat's docs do say that CentOS 8 can use QEMU/KVM.

PPPS (solution): Searching for /usr/bin/qemu-kvm as suggested by @StephenKitt :

root@centos8> dnf se qemu-kvm
(...)
root@centos8> dnf in qemu-kvm.x86_64 qemu-kvm-core.x86_64 qemu-kvm-common.x86_64 
(... 4x "is already installed.")
Nothing to do.
root@centos8> dnf whatprovides /usr/bin/qemu-kvm
(...)
Error: No Matches found
Exit 1
root@centos8> locate qemu-kvm
(...)
/usr/libexec/qemu-kvm
(...)
root@centos8> rpm -qf /usr/libexec/qemu-kvm
qemu-kvm-core-2.12.0-88.module_el8.1.0+297+df420408.3.x86_64

OK, got it. They have also changed the location.

1 Answer 1

7

The main QEMU executable is now qemu-kvm; that’s what is used to start a KVM-enabled VM.

4
  • 1
    OK, thanks! They have also changed the location to /usr/libexec/qemu-kvm but I have found the file now. Do you have a reference to the rationale why the emulator doesn't have a platform-specific name anymore?
    – Ned64
    May 10, 2020 at 8:13
  • Strange there isn't a symbolic links to qemu-kvm in e.g. /usr/bin/qemu-kvm. One could even argue that the RPM package should also create a link /usr/bin/qemu-system-x86_64 (running CentOS 9 Stream)
    – MrCalvin
    Apr 10, 2022 at 19:53
  • 1
    At least on RHEL 8, I see a message saying that I should be using libvirt and not qemu-kvm to manage my images. Maybe that is why the binary is not linked to a standard location? /usr/libexec/qemu-kvm -h | head QEMU emulator version 6.2.0 (qemu-kvm-6.2.0-20.module+el8.7.0+16905+efca5d32.2) Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers WARNING: Direct use of qemu-kvm from the command line is not supported by Red Hat. WARNING: Use libvirt as the stable management interface. WARNING: Some command line options listed here may not be available in future releases
    – Angus
    Dec 23, 2022 at 20:24
  • Also /usr/libexec/qemu-kvm -machine help lists very few options
    – OrangeDog
    Aug 24, 2023 at 13:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .