首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在Windows10上的WSL2 (WindowsSubSystemforLinux2)中实例化qemu

无法在Windows10上的WSL2 (WindowsSubSystemforLinux2)中实例化qemu
EN

Stack Overflow用户
提问于 2020-07-07 05:02:58
回答 1查看 10K关注 0票数 4

目前,我正在Windows10Fastring构建(Build 20161)上试用。更具体地说,我试图使用嵌套虚拟化运行qemu虚拟机,但每次使用virt管理器创建新VM的尝试都以失败告终。

我在我的WSL2实例中使用Ubuntu18.04,它带有一个自定义构建的内核(包括与虚拟化相关的所有内容--请参阅本指南:https://boxofcables.dev/accelerated-kvm-guests-on-wsl-2/),在我的WSL配置文件中,"nestedVirtualization“设置为"true”。更重要的是,"sudo ok“在Ubuntu实例中运行时返回正结果。

我确实在Ubuntu中安装了DBUS,并且该服务正在运行,所以我相信这不是问题的根源。我使用VcXsrv来显示X11窗口。

以下是我每次尝试时所遇到的错误:

Libvirtd.log

代码语言:javascript
运行
复制
2020-07-07 03:33:24.507+0000: 1273: info : libvirt version: 4.0.0, package: 1ubuntu8.17 (Marc Deslauriers <marc.deslauriers@ubuntu.com> Wed, 06 May 2020 14:18:23 -0400)
2020-07-07 03:33:24.507+0000: 1273: info : hostname: LAPTOP-DRAGOS
2020-07-07 03:33:24.507+0000: 1273: error : udevGetDMIData:1818 : internal error: Failed to get udev device for syspath '/sys/devices/virtual/dmi/id' or '/sys/class/dmi/id'
2020-07-07 03:39:16.636+0000: 1261: error : virNetSocketNewConnectUNIX:715 : Failed to connect socket to '/var/run/libvirt/virtlogd-sock': No such file or directory
2020-07-07 03:39:29.617+0000: 1258: error : virNetSocketNewConnectUNIX:715 : Failed to connect socket to '/var/run/libvirt/virtlogd-sock': No such file or directory
2020-07-07 03:39:29.617+0000: 1258: error : virNetSocketNewConnectUNIX:715 : Failed to connect socket to '/var/run/libvirt/virtlogd-sock': No such file or directory
2020-07-07 04:01:14.141+0000: 1257: error : virKeepAliveTimerInternal:143 : internal error: connection closed due to keepalive timeout

Virt(在设置所有选项后单击“开始安装”):

代码语言:javascript
运行
复制
Unable to complete install: 'Failed to connect socket to '/var/run/libvirt/virtlogd-sock': No such file or directory'

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/create.py", line 2553, in _do_async_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install
    doboot, transient)
  File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest
    domain = self.conn.createXML(install_xml or final_xml, 0)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3603, in createXML
    if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirtError: Failed to connect socket to '/var/run/libvirt/virtlogd-sock': No such file or directory

我做错了什么?任何输入都是非常感谢的!提前感谢!

更新:正如 建议的那样,我尝试启动virtlogd服务。由于Ubuntu18.04不使用initd,我选择了,这使我克服了最初的错误,但现在我似乎遇到了一些权限问题,因为我得到了以下内容:

代码语言:javascript
运行
复制
Unable to complete install: 'internal error: process exited while connecting to monitor: Could not access KVM kernel module: Permission denied
2020-07-08T03:32:26.585442Z qemu-system-x86_64: failed to initialize KVM: Permission denied'

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/create.py", line 2553, in _do_async_install
    guest.start_install(meter=meter)
  File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install
    doboot, transient)
  File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest
    domain = self.conn.createXML(install_xml or final_xml, 0)
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3603, in createXML
    if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirtError: internal error: process exited while connecting to monitor: Could not access KVM kernel module: Permission denied
2020-07-08T03:32:26.585442Z qemu-system-x86_64: failed to initialize KVM: Permission denied

是与sudo一起运行的,因此这种权限拒绝消息似乎有点令人费解。

向你问好,德拉戈ș

EN

回答 1

Stack Overflow用户

发布于 2022-02-11 01:22:28

在Windows 11上,我通过修复/dev/kvm实现了这个功能:

代码语言:javascript
运行
复制
sudo chown root:kvm /dev/kvm
sudo chmod 660 /dev/kvm

完全设置:

代码语言:javascript
运行
复制
# Install virt-manager
sudo apt install -y virt-manager
 
# Add youself to kvm and libvirt group
sudo usermod --append --groups kvm,libvirt "${USER}"
 
# Fix-up permission to avoid "Could not access KVM kernel module: Permission denied" error
sudo chown root:kvm /dev/kvm
sudo chmod 660 /dev/kvm
 
# Stat required services
sudo libvirtd &
sudo virtlogd &
 
# Launch virt-manager
virt-manager &
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62768439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档