安装VMware16兼容Hyper-v+WSL2+Docker+解决0x80370102报错
VMware 20H1(预览版)已经支持运行同时兼容Windows10的Hyper-v虚拟化。这里可以同时运行 VMware Workstation Pro Tech Preview 20H1 (16的预览版)+WSL2+Hyper-v虚拟机+Docker Desktop+VirtualBox6。同时呢,WSL2开启后也可以像普通Linux中安装和使用docker非常方便。
原文在我的开源中国:https://my.oschina.net/finchxu/blog/3195991
VMware blog原文介绍并提供了下载这个预览版的链接: https://blogs.vmware.com/workstation/2020/01/vmware-workstation-tech-preview-20h1.html
官方 VMware Workstation Pro Tech Preview 20H1 下载链接: https://download3.vmware.com/software/wkst/file/VMware-workstation-full-e.x.p-15679048.exe
A:这里说一下环境吧(以下条件均为必须):
- Windows10(如下图版本号2004,要求操作系统版本最低必须为19041)(自行查看,如果不是可以 加入预览体验计划 的 慢速通道 )
- 下载好的 VMware Workstation Pro Tech Preview 20H1 版本(默认提供试用229天)
- Windows10在BIOS中开启VT虚拟化
- Intel Haswell or newer CPU 或者 AMD Bulldozer or newer CPU
B:首先安装WSL1(后续用命令转换为WSL2)
按照微软官方文档安装WSL1即可 https://docs.microsoft.com/zh-cn/windows/wsl/install-win10
安装好后进行WSL1的初始化: https://docs.microsoft.com/zh-cn/windows/wsl/initialize-distro
这里说明以下为什么先安装WSL1再转换成WSL2啊,为什么不直接设置成 wsl --set-default-version 2 默认安装WSL2呢?
答案是会遇到报错: WslRegisterDistribution failed with error: 0x80370102 这个错误查了很多文档都解决不了,可是先安装WSL1再转换2就不会遇到这个报错。
#这里用管理员身份打开PowerShell
PS C:\Users\enen> wsl -l -v
NAME STATE VERSION
* Ubuntu-18.04 Running 1
PS C:\Users\enen> bcdedit /set hypervisorlaunchtype auto
C:安装VMware20H1。这里就正常安装就好了,没什么特别的。创建启动一个虚拟机发现正常。(以前是会提示不兼容Hyper-v的)
D:WSL1转换为WSL2
参考微软的文档 https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-install 如下:
#用管理员模式启动PowerShell然后运行
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
这两个安装完成直接 重启 !!!!!!!!!重启!!!!!!
#这里的<Distro>就是你安装的WSL1的名称
wsl --set-version <Distro> 2
wsl -l -v
#这时候会提示version为2
这时候VMware的虚拟机可以正常使用,WSL2也可以正常使用。
E:安装其他的。
记得修改WSL2中的Linux发行版的源为国内源,提高下载更新速度。
- 在WSL2中安装Docker-ce: https://docs.docker.com/install/linux/docker-ce/ubuntu/
- 安装Windows桌面版Docker程序可以连接和守候WSL2中的docker容器:https://docs.docker.com/docker-for-windows/wsl-tech-preview/
这时候WSL2中的docker可以正常使用,桌面版自己的docker也可以使用了。两个docker集中管理。
- 安装vs code并使用插件连接WSL2。这里可以把你本地的开发环境直接迁移到WSL2的Ubuntu18中,是不是很方便。
(1)安装 vs code https://code.visualstudio.com/
(2)安装插件:在vs code的商店里搜索 remote_development 安装即可。
(3)在程序左下角会显示插件入口。点击使用。
- 其他的使用情况,,随便。
其他参考: