dio*_*scu 6 kvm qemu libvirt windows-subsystem-for-linux ubuntu-18.04
我目前正在 Windows 10 Fast Ring 版本(Build 20161)上尝试适用于 Linux v2 的 Windows 子系统。更具体地说,我尝试使用嵌套虚拟化运行 qemu-kvm 虚拟机,但每次使用 virt-manager 创建新虚拟机的尝试都以失败告终。
\n我在 WSL2 实例中使用 Ubuntu 18.04,带有自定义构建的内核(其中包括与虚拟化相关的所有内容 - 请参阅本指南: https: //boxofcables.dev/accelerated-kvm-guests-on-wsl-2/)和“在我的 WSL 配置文件中,“nestedVirtualization”设置为“true”。更重要的是,“sudo kvm-ok”在 Ubuntu 实例中运行时会返回积极的结果。
\n我确实在 Ubuntu WSL 中安装了 DBUS,并且该服务正在运行,所以我相信这不是问题的根源。我正在使用 VcXsrv 来显示 X11 窗口。
\n以下是我每次尝试时遇到的错误:
\nLibvirtd.log
\n2020-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)\n2020-07-07 03:33:24.507+0000: 1273: info : hostname: LAPTOP-DRAGOS\n2020-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\'\n2020-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\n2020-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\n2020-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\n2020-07-07 04:01:14.141+0000: 1257: error : virKeepAliveTimerInternal:143 : internal error: connection closed due to keepalive timeout\nRun Code Online (Sandbox Code Playgroud)\nVirt-manager GUI(当我设置所有选项后单击“开始安装”时):
\nUnable to complete install: \'Failed to connect socket to \'/var/run/libvirt/virtlogd-sock\': No such file or directory\'\n\nTraceback (most recent call last):\n File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper\n callback(asyncjob, *args, **kwargs)\n File "/usr/share/virt-manager/virtManager/create.py", line 2553, in _do_async_install\n guest.start_install(meter=meter)\n File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install\n doboot, transient)\n File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest\n domain = self.conn.createXML(install_xml or final_xml, 0)\n File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3603, in createXML\n if ret is None:raise libvirtError(\'virDomainCreateXML() failed\', conn=self)\nlibvirtError: Failed to connect socket to \'/var/run/libvirt/virtlogd-sock\': No such file or directory\nRun Code Online (Sandbox Code Playgroud)\n我做错了什么?\n非常感谢任何意见!提前致谢!
\n更新:正如@FreeSoftwareServers所建议的,我尝试启动 virtlogd 服务。由于 Ubuntu 18.04 不使用 initd,所以我选择了sudo service virtlogd start. 这让我克服了最初的错误,但现在我似乎遇到了一些权限问题,因为我得到以下信息:
Unable to complete install: \'internal error: process exited while connecting to monitor: Could not access KVM kernel module: Permission denied\n2020-07-08T03:32:26.585442Z qemu-system-x86_64: failed to initialize KVM: Permission denied\'\n\nTraceback (most recent call last):\n File "/usr/share/virt-manager/virtManager/asyncjob.py", line 89, in cb_wrapper\n callback(asyncjob, *args, **kwargs)\n File "/usr/share/virt-manager/virtManager/create.py", line 2553, in _do_async_install\n guest.start_install(meter=meter)\n File "/usr/share/virt-manager/virtinst/guest.py", line 498, in start_install\n doboot, transient)\n File "/usr/share/virt-manager/virtinst/guest.py", line 434, in _create_guest\n domain = self.conn.createXML(install_xml or final_xml, 0)\n File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3603, in createXML\n if ret is None:raise libvirtError(\'virDomainCreateXML() failed\', conn=self)\nlibvirtError: internal error: process exited while connecting to monitor: Could not access KVM kernel module: Permission denied\n2020-07-08T03:32:26.585442Z qemu-system-x86_64: failed to initialize KVM: Permission denied\nRun Code Online (Sandbox Code Playgroud)\nvirt-manager GUI 是通过 sudo 运行的,因此这个权限拒绝消息看起来有点令人费解。
\n最好的问候,\nDrago\xc8\x99
\n小智 5
在 Windows 11 上,我通过修复 /dev/kvm 来实现此功能:
sudo chown root:kvm /dev/kvm
sudo chmod 660 /dev/kvm
Run Code Online (Sandbox Code Playgroud)
完整设置:
# 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 &
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16437 次 |
| 最近记录: |