I have a libvirt/kvm setup on a Gentoo system which I've been using
happily for a couple of years. Recently, after a round of updates, I
started encountering all sorts of strange behavior, which I'll mostly
skip for now... My current issue is that guest domains appear to be
ignoring changes made with 'virsh edit <domain>'.
Two examples: My primary desktop VM is crashing on boot, so I'm trying
to boot it with an install/rescue CD. In my client definition file I
have:
<os>
<type arch='x86_64' machine='pc-0.13'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
...and the cdrom defined elsewhere in the file points to a real ISO
file, which I know is bootable. But when I start the guest, it
ignores the CD and boots from the (buggy) system image on the hd
device. This still happens if I remove the "<boot dev='hd'/>"
line
altogether.
Second example: I created another VM, definition copied from the one
above, so that I wouldn't be playing around with anything important.
On first boot it complains:
error: internal error process exited while connecting to monitor: char
device redirected to /dev/pts/3
inet_listen_opts: bind(ipv4,127.0.0.1,5911): Address already in use
inet_listen_opts: FAILED
...Oops, forgot to fix my VNC port. So I edited the VM using "virsh
edit", found the VNC line, changed "port=5911" to "port=5912".
Saved,
verified that my change appears in the XML file on disk, tried again
to start the guest, and got the same complaint about port 5911 being
in use. "virsh dumpxml" shows the corrrected port number, but for
some reason the change isn't making it through to the guest.
I've tried restarting libvirtd, with no effect, so I'm guessing there
must be some cache of VM configuration data that isn't being updated
when I edit my guest definitions? What am I doing wrong?
Thanks,
--Michael