Can't setup bridged connection for QEMU/KVM Virt Manager VM

Hi.

Recently I has been trying to setup a QEMU/KVM Virtual Machine using Virt Manager, and I got problem setting up bridged connection for Windows VM. In the VM’s settings under network card I set Device Model to virtio (I have virtio drivers installed on guest) and Network Source to Bridged Device and Device name to win10vm. After trying to launch it I get message: Error starting domain: Cannot get interface MTU on 'win10vm': No such device.

Full traceback:

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 72, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 108, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
    ret = fn(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/domain.py", line 1384, in startup
    self._backend.create()
  File "/usr/lib/python3.10/site-packages/libvirt.py", line 1362, in create
    raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: Cannot get interface MTU on 'win10vm': No such device

Thanks in advice!

How did you create the bridge? This needs to be done before you start the VM. Also Virt Manager can’t do this by it self.

See the Arch wiki for more information libvirt - ArchWiki

There is a more general page with information on how this can be set up. This will not work out of the box on Manjaro, you will need to translate this to Manjaro/Arch based system. It will not work without fundamental changes to your system. You might want to consider a more simple setup with a NAT. But check out the optional dependencies for libvirt, you probably need to install some more packages.

https://jamielinux.com/docs/libvirt-networking-handbook/bridged-network.html
https://jamielinux.com/docs/libvirt-networking-handbook/nat-based-network.html

Yeah I already told him that in other topic he opened 30 min ago.

As you can see by the error message, that device doesn’t exist. Run ip addr and add the actual adapter, eg. enp2s0.

This will not work, a real bridge device needs to be insert in this box. A Ethernet device will not work. OP needs to create a bridge. Which is not that simple.

https://wiki.archlinux.org/title/Network_bridge

Oh, indeed. I kind of forgot about the ‘bridge’ part. Had ‘macvtap’ in mind, which is a simple and quick way.

And if your router supports more advanced features you can use routed network, which I like the most.

Indeed, but often with this option, there is not Host-Guest communication, which is sometimes wanted.

Personally on a desktop system, create a virtual network, with a NAT. Is not that complicated and the VM has the same network access as the host and the host can access the VM. Only other network devices can’t access the VM (Port forwarding is still a option.)

But it doesn’t matter, the OP just need to choose some way. The current isn’t that simple.

True. Solution for that is to create an ‘Isolated network’, and just add a second network adapter in a VM and use that for ssh from the host and whatnot.