欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【踩坑纪实】Win10家庭中文版解决VMware Workstation与Hyper-V冲突的问题

程序员文章站 2022-07-13 10:19:37
...

起因

一开始,我想在我的PC(RT,Win10家庭中文版)上安装Docker,然后Docker的安装程序告诉我:只支持专业版以上的Windows系统安装。因为我的系统是买电脑的时候预装的正版系统,所以舍不得用KMS升级,更懒得重装(主要是上面的软件太多了,重装一遍太费事,涉及到数据迁移之类的)……所以就直接百度Win10家庭版安装Docker,一搜果然找到了教程:win10家庭版安装Docker for Windows(不得不说网友们都是人才啊……),按照这个教程一通操作之后,成功安装了Docker。

发现问题

安装上Docker之后我也没怎么用(因为后来发现从Win到Linux上部署Go程序不太需要= =)……,就放在那里没管了。过了一段时间之后,我做作业需要用到基于VMware Workstation的Ubuntu虚拟机,于是我打开虚拟机……发现打开不了了!提示VMware Workstation 与 Device/Credential Guard 不兼容。这可把我吓了一跳。于是直接百度之。

解决问题

百度到的解决方案包括以下几点:

  • 关闭内核隔离(包括直接通过Windows Defender和通过组策略编辑器)
    我一开始捣鼓的就是按照这个思路,然后我发现家庭中文版居然根本就不支持内核隔离(当然也许是硬件问题?鬼知道),如下图所示。
    【踩坑纪实】Win10家庭中文版解决VMware Workstation与Hyper-V冲突的问题
    【踩坑纪实】Win10家庭中文版解决VMware Workstation与Hyper-V冲突的问题
    然后我又查了一下,有可能是在启用Hyper-V的时候修改了注册表中内核隔离的相关信息,于是又找了……找了一通没有一个靠谱的(当然是针对于我这种情况而言),基本上都是我的注册表里没那项……之后又发现可能和组策略有关,于是Win+R输入pgedit.msc,发现也没这东西……(其实这里已经可以得出结论了,那就是:Win10家庭版本来就不是给开发者使用的,所以好多东西也就给阉割掉了,没必要支持)这种方案到这里基本就放弃了……
  • 关闭Hyper-V
    因为我就是在开启Hyper-V之后才导致开启Windows自身虚拟化从而导致不兼容的,所以我就想顺着教程摸回去,走个逆过程看看能不能改回去……于是我先改了注册表,如下。
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EditionID的值从Professional改回了Home

但是这里也是埋了个潜在的坑……那就是原来这里的值我也不知道是多少了,只是百度了一下Win10的***,发现专业版的代码是Professional、家庭版的代码是Home,所以直接就改成了Home,也不知道会不会有新的问题,正好在这里记录一下……
接着就是从控制面板里关闭Hyper-V。小娜里面输入启用或关闭Windows功能就可以找到Hyper-V那一项了,勾掉+重启即可。
重启之后发现还不行,于是又参考这篇教程:VMware Workstation 与 Device/Credential Guard 不兼容.把Hyper-V相关的所有service都给停了(为绝后患,我决定全给禁用了),然后最关键的一步是:

在管理员权限下执行bcdedit /set hypervisorlaunchtype off命令

这样才能真正关闭Hyper-V。
重启之,再开VMware Workstation,发现可以正常打开虚机了。
其实回过头来看修改EditionID这一步大概率是没什么用的……最关键的一步还是cmd关闭Hyper-V。

经验教训

  1. 我发现顺着修改的路径回溯确实是一种很好的解决问题的思路,所以版本备份+回滚真的很重要。包括注册表,我在修改之前也应该备份一份,而不是直接敲命令就给改了。
  2. 尽量遵从原生支持,别搞些跨级操作,容易翻车。家庭版做不了,干脆就直接在虚机上搞docker不就行了嘛。
  3. Win10家庭版支持的功能确实是少了许多……果然Win不适合开发TAT 下次要搞啥新玩意还是在虚机上搞吧,方便备份(快照)而且就算搞崩了虚机,宿主机也木事。
相关标签: 垃圾Win10