Dan*_*iel 3 virtualization qemu fedora nic gnome-boxes
我使用GNOME Boxes设置了Fedora VM。我可以启动它,一切正常。
我正在使用 virt-manager 并且我想创建一个桥接器,以便我可以在网络上获取 VM,但是每次我尝试从用户模式网络切换NIC模式以指定共享设备名称时,都会返回一个错误。
我有virbr0和virbr0-nic起来。
错误是:
Error starting domain: internal error: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=26: failed to communicate with bridge helper: Transport endpoint is not connected
stderr=failed to parse default acl file `/etc/qemu/bridge.conf
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 125, in tmpcb
callback(*args, **kwargs)
File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 82, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/domain.py", line 1508, in startup
self._backend.create()
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1062, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=virbr0 --fd=26: failed to communicate with bridge helper: Transport endpoint is not connected
stderr=failed to parse default acl file `/etc/qemu/bridge.conf'
Run Code Online (Sandbox Code Playgroud)
更新:我让它工作了。(在同一天,但忘了在这里圈回来报告)。
注意:先阅读上面的答案
设置并不完全顺利,而且受到错误的困扰——尤其是与 virtualbox 相比时,它只是开箱即用,就像它一样。
无论如何,为了避免重复自己,当我不断收到我在上述问题中发布的错误时,我正在从我所在的地方开始。就我而言,它/etc/qemu/bridge.conf甚至不存在,所以我必须自己创建目录和文件。
返回的错误归结为权限。确保文件已打开读取位。
sudo touch /etc/qemu/bridge.conf # If the file does not exist yet
sudo chmod u+r /etc/qemu/bridge.conf
Run Code Online (Sandbox Code Playgroud)
注意:该文件应包含一行指示允许使用哪些桥接接口。
allow virbr0 # according to your qemu command
Run Code Online (Sandbox Code Playgroud)
或者,或者,
allow all
Run Code Online (Sandbox Code Playgroud)
您还需要确保 /usr/lib/qemu/qemu-brdige-helper 设置了 setuid 位。
sudo chmod u+s $(locate -r /usr/.*/qemu-bridge-helper$)
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,但它仍然无法工作,返回与套接字相关的错误。这是因为 apparmor 阻止了通信 - 来源:对这篇文章的评论。
ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
Run Code Online (Sandbox Code Playgroud)
这最终成功了。
| 归档时间: |
|
| 查看次数: |
3210 次 |
| 最近记录: |