On 1/25/20 8:04 PM, Kasper Laudrup wrote:
Hi libvirt-users,
Hope this is the right place to ask, otherwise please point me in the
right direction.
I have a libvirt virtual machine running on the session bus that I would
like to access through SSH. I have previously done so using X11
forwarding and while it works, it is very sluggish with the connection I
have.
I recently learned that you can access the virtual machine with
virt-viewer through SSH which should perform much better. Unfortunately,
my virtual machine is currently running on the session bus and that
doesn't seem to be supported (please do correct if I'm wrong here).
Virt-viewer accepts -c URI argument. In your case you can do:
virt-viewer -c qemu:///session $domain
and it will show the domain's GUI.
It doesn't really matter to much if the VM is running on the system bus
or session bus, I just prefer running things as a non privileged user
for all the obvious reasons, so that's where I created the VM initially.
Domains running under the system connection doesn't necessarily run as
root:root. You can configure the UID:GID pair in /etc/libvirt/qemu.conf
(search user/group). Alternatively, each domain can be fine tuned to run
under different user. See
https://libvirt.org/formatdomain.html#seclabel
for more info.
I tried to follow this guide to move my VM to the system bus.
Running `sudo virsh define vm.xml` fails with:
error: invalid argument: could not find capabilities for arch=x86_64
domaintype=kvm
Digging a bit further into it, I figured out that the cause of the error
message is, that I for some reason do not have KVM acceleration support
when running VMs on the system bus (as root) running my VM on the
session bus as a normal user (with the correct group membership) works
fine.
Trying to launch virt-manager as root verifies that, as creating a new
VM warns me that I do not have KVM support.
I'm fairly lost as to what to do from here. I must admit I remember
struggling a bit to get the virtual machine to run with KVM support on
the session bus in the first place, but have completely forgotten what
the problem and resolution was.
I'm using Debian stable (Buster) with standard package versions:
QEMU 3.1.0
libvirt 5.0.0
Any kind of help or input would be greatly appreciated.
Thanks a lot and kind regards,
Kasper Laudrup
First of all, you need to verify that the host is KVM capable. Try
running "virt-host-validate qemu" under root. It should do some basic
diagnostic and suggest resolution to possible errors.
Secondly, you want to make sure that /dev/kvm is accessible to the user
that you want to start your domain under. I'm using consolekit on my
desktop so whenever I log in it appends an ACL entry to the file so that
my user can run domains:
# getfacl /dev/kvm
getfacl: Removing leading '/' from absolute path names
# file: dev/kvm
# owner: root
# group: kvm
user::rw-
user:zippy:rw-
group::rw-
mask::rw-
other::---
After these steps, libvirt should detect KVM just fine.
Michal