【问题标题】:Run WSL2 in Windows 10 guest VM running on a Linux host在 Linux 主机上运行的 Windows 10 来宾 VM 中运行 WSL2
【发布时间】:2020-09-28 03:48:54
【问题描述】:

我有一个用于测试的 Windows 虚拟机来代替真正的 WIndows 机器。我想在该 VM 中启用 WSL2。

到目前为止,我已经:

  • 将 Windows 升级到 v2004。
  • 通过options kvm-intel nested=1 在 kvm-intel 内核模块中启用嵌套虚拟化
  • 确保sudo cat /sys/module/kvm_intel/parameters/nested 输出“Y”。
  • 在 virt-manager 的 xml 配置中设置 <cpu model='host-passthrough'>

仍然没有骰子。一旦我按照 WSL2 的要求启用“虚拟机平台”功能,我的虚拟机就会在启动时开始冻结。

有没有人成功做到这一点?

【问题讨论】:

  • 嵌套虚拟机绝非易事。 :-)
  • 这里的答案建议在 libvirt 域定义中禁用管理程序功能并在 bios 中启用 vt-d。 superuser.com/questions/1431148/…
  • AMD Ryzen 3950X 也存在同样的问题。来自dmesgFeb 21 09:37:40 charon kernel: SVM: kvm [19184]: vcpu0, guest rIP: 0xfffff81758ef848d unimplemented wrmsr: 0xc0010115 data 0x0 对于 VCPU 0-9 重复相同的消息(即使 VM 总共有 16 个 vCPU)。
  • 这成功了,与上面的链接相同,它有效:superuser.com/a/1589286/916009

标签: windows-subsystem-for-linux qemu


【解决方案1】:

这里的答案 - 通过特定的标志,让 Windows 认为它​​是在金属上,但可以做嵌套的 virt,为我节省了一天:

https://superuser.com/a/1589286/916009 - 请注意此链接是由@JCallicoat 发布的 - 只是说它应该是答案

虚拟机emu中的cpu定义如下:

<cpu mode="custom" match="exact" check="partial">
    <model fallback="allow">Skylake-Client-noTSX-IBRS</model>
    <feature policy="disable" name="hypervisor"/>
    <feature policy="require" name="vmx"/>
</cpu>

【讨论】:

  • 虽然这个模型的一个缺点是 Windows 11 显然不能安装在它上面,所以我确实有 WSL2,但目前没有升级路径。如果有人知道更好的型号,请留言!
猜你喜欢
  • 1970-01-01
  • 2021-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
相关资源
最近更新 更多