-
Notifications
You must be signed in to change notification settings - Fork 8
LibVirt
By default when you run any libvirt command it will use your private User connection (called "session"). So all
networks and disks and VMs will be available to you only (and data stored under $HOME/.local
)
To use always shared global (called system
) connection you have to:
- Add yourself to
libvirt
group using:sudo /usr/sbin/usermod -G libvirt -a $USER
- Create file
~/.config/libvirt/libvirt.conf
with following content:# see https://listman.redhat.com/archives/libvirt-users/2018-October/msg00067.html uri_default = "qemu:///system"
Remember that you should logout and login to ensure that you are member of group libvirt
.
Then you can for example try listing networks or pools:
$ virsh net-list
Name State Autostart Persistent
--------------------------------------------
default active yes yes
$ virsh pool-list
Name State Autostart
---------------------------
If there is no pool you can follow guide from Ubuntu MAAS KVM. Run as you (non-privileged user)
virsh pool-define-as default dir - - - - "/var/lib/libvirt/images"
virsh pool-autostart default
virsh pool-start default
virsh pool-list
Name State Autostart
-------------------------------
default active yes
virsh pool-dumpxml default
...
At least when using NAT network we can pass option log-queries
to dnsmasq
that is used to
provide both DHCP and DNS server for NAT network.
I followed various sources including: https://serverfault.com/a/1017645
Here is diff of default
network - using virsh net-edit default
or using virsh net-dumpxml default
:
diff -u default.xml default-log-queries.xml
--- default.xml 2024-07-01 19:15:27.965334382 +0200
+++ default-log-queries.xml 2024-07-01 19:28:14.214143882 +0200
@@ -1,4 +1,4 @@
-<network connections='1'>
+<network xmlns:dnsmasq='http://libvirt.org/schemas/network/dnsmasq/1.0'>
<name>default</name>
<uuid>2c9b8477-9b7c-4ca5-8c20-f1fbcc7df3c3</uuid>
<forward mode='nat'>
@@ -14,5 +14,8 @@
<range start='192.168.100.128' end='192.168.100.254'/>
</dhcp>
</ip>
+ <dnsmasq:options>
+ <dnsmasq:option value='log-queries'/>
+ </dnsmasq:options>
</network>
And then you have to restart network using (scary) destroy and start:
virsh net-destroy default
virsh net-start default
You can also peek content of /var/lib/libvirt/dnsmasq/default.conf
if there is
your option (log-queries
in our case).
After restart you can try on Host:
journalctl -u libvirtd -f
And boot any VM that uses NAT network under LibVirt.
Copyright © Henryk Paluch. All rights reserved.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License