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

起因

一开始,我想在我的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和通过组策略编辑器)
    我一开始捣鼓的就是按照这个思路,然后我发现家庭中文版居然根本就不支持内核隔离(当然也许是硬件问题?鬼知道),如下图所示。
    在这里插入图片描述
    在这里插入图片描述
    然后我又查了一下,有可能是在启用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 下次要搞啥新玩意还是在虚机上搞吧,方便备份(快照)而且就算搞崩了虚机,宿主机也木事。
发布了22 篇原创文章 · 获赞 0 · 访问量 1281

猜你喜欢

转载自blog.csdn.net/qq_35238352/article/details/103757238