能找到Hyper-V和VMware共存的方法吗?

文化   科技   2024-09-08 19:33   北京  


正文共:1700 字 17 图,预估阅读时间:3 分钟

通过前面两次实验,我们发现,Windows可以启用微软的Hyper-V虚拟化什么?Windows自带的Hyper-V虚拟化你都没用过?,但是对于老版本的系统不能同时共存开启Hyper-V之后用不了VMware了,怎么破?

官方给出的建议是使用Windows 10 20H1(内部版本:19041.264)或更高版本的操作系统,如果有系统定制需求的,可以参考之前的文章如何定制最新版Windows安装镜像

我们先找台高版本的系统试一下。

可以看到,版本号为22H2,内部版本号为19045.2728,满足要求。然后我们安装一下VMware Workstation。

可以看到安装程序检测到主机启用了Hyper-V,要求在“启用Windows功能WHP”和“关闭Hyper-V”之间二选一。我们现在要测试Hyper-V和VMware的共存,所以只能选择安装WHP功能了。

但是,经过了解,大概是从Windows 10的1803版本开始,微软就提供了“Windows虚拟机监控程序平台(Windows Hypervisor Platform,简称WHP)”来解决这种类型的冲突,我们可以在Windows功能中手工启用,启用这个功能无需重启。

或者直接在安装页面中直接勾选“自动安装Windows Hypervisor Platform(WHP)”即可,然后就可以继续安装了。

根据提示走完安装过程,我们就可以正常使用VMware Workstation了。不过在我们运行虚拟机的时候,会弹出一个提示,提示我们虚拟机已启用侧通道缓解,该功能可有效防止恶意进程或虚拟机对受保护内核或主机内存的内容进行未经授权的读取,增强安全性,但是会降低性能。

该功能仅在启用了Hyper-V虚拟化之后才会出现,配置入口在“虚拟机设置”“选项”页签的“高级”配置中,仅需要勾选“为启用了Hyper-V的主机禁用侧通道缓解”即可。

经过测试,此功能开启前后性能确实存在差异,但带来的改变远没有开启Hyper-V虚拟化的差异大。

当然了,既然从Windows 10的1803版本开始,微软就提供了WHP功能来解决这种类型的冲突,那是不是我的1909版本也可以实现呢?开启WHP再试一下。

没想到还是提示不支持。

其实,我们常用的虚拟化技术一般分为两种:第1类虚拟机监控器或裸机虚拟机监控器直接与底层计算机硬件交互,裸机虚拟机监控器直接安装在主机的物理硬件上,而不是通过操作系统安装;第2类虚拟机监控器或托管虚拟机管理监控器通过主机的操作系统与底层主机硬件进行交互,第2类虚拟机监控器安装在计算机上,在其中作为应用程序运行。

在老版本的Windows 10上同时启用Hyper-V和VMware虚拟化通常比较复杂,就是因为两者使用的是不同的虚拟化技术,并且会相互冲突。Hyper-V是第1类虚拟化技术,而VMware Workstation等产品通常使用第2类虚拟化技术。这两者通常不能同时运行,因为它们会尝试控制计算机的硬件虚拟化扩展,并且存在冲突。

但是,网上也有一些方法号称可以部分解决这个问题,这里我们验证两种方法,具体用哪种取决于你的实际需求。

第一种,利用Hyper-V的“嵌套虚拟化”特性。

如果我们打算在Hyper-V中运行虚拟机,同时还想在VMware Workstation中运行虚拟机,可以考虑使用Hyper-V的“嵌套虚拟化”功能。该功能允许在Hyper-V虚拟机中嵌套运行另一个虚拟化平台,比如VMware Workstation。要启用嵌套虚拟化,请执行以下步骤:

1、确保物理计算机支持虚拟化扩展,并已在BIOS/UEFI中启用;

2、使用Hyper-V创建一台虚拟机,比如Windows虚拟机,创建完成之后关闭虚拟机。然后在Windows PowerShell或命令提示符中以管理员身份运行以下命令来启用嵌套虚拟化功能:

Set-VMProcessor -VMName "YourVMName" -ExposeVirtualizationExtensions $true

这里,“YourVMName”是我们要运行VMware Workstation的Hyper-V虚拟机的名称。

比如我的虚拟机名称为VMware,则配置命令如下:

Set-VMProcessor -VMName "VMware" -ExposeVirtualizationExtensions $true

然后我们再在虚拟机VMware内部安装VMware Workstation即可。

配置完成之后,在虚拟机里面安装VMware Workstation提示不兼容,分明没有启用Hyper-V,但是提示Hyper-V在运行,测试失败。

不过这种嵌套使用的方式,性能基本可以预料,肯定会卡得脑溢血。

接下来我们再测试一下第二种方法,使用Boot Configuration Data(BCD,引导配置数据库) 编辑器。

如果我们需要在同一台物理计算机上轮流使用Hyper-V和VMware Workstation,可以通过编辑启动配置数据 (BCD) 来禁用或启用Hyper-V。请注意,这会涉及在重启计算机时切换虚拟化平台,而不是同时运行它们。

1、以管理员身份打开命令提示符或PowerShell。

2、运行以下命令来禁用Hyper-V:

bcdedit /set hypervisorlaunchtype off

3、重启计算机,然后可以使用VMware Workstation运行虚拟机。

此时Windows管理工具中的Hyper-V管理器还在,我们试试能不能正常打开虚拟机。

前面的操作步骤都可用,只是在实际启动虚拟机的时候,报错了,提示为Hyper-V组件尚未运行。

4、若要重新启用Hyper-V,请运行以下命令:

bcdedit /set hypervisorlaunchtype auto

5、重启计算机,然后可以使用Hyper-V运行虚拟机,但是VMware虚拟机就会因为启用了Hyper-V而无法运行了。

请注意,此方法实现方式为将虚拟化在Hyper-V和VMware Workstation之间切换,而不是同时运行它们。我们需要根据具体需求和使用情况进行操作。

同时请注意,更改BCD设置可能会影响系统的启动过程,因此请小心操作。

长按二维码
关注我们吧

什么?Windows自带的Hyper-V虚拟化你都没用过?
开启Hyper-V之后用不了VMware了,怎么破?
HPE服务器通过显卡直通安装Tesla M4,这算亮机成功了吗?
华为交换机S3700/S5700/CE6800配置SSH远程登录
MSR810配置无线Portal认证
MSR810配置本地认证的无线802.1X认证
HCL使用Openwrt测试组播的简单操作
iperf测试组播的命令是什么?通过HCL学习一下
组播源和组播接收者的IP地址配置不配行不行?
ip address命令操作指南
添加组播地址的autojoin标志就能测试祖播了
手撸一个自动创建SSL证书的SHELL脚本
Linux下的VLC简介
HVV小科普:蓝方是什么?
ip route命令操作指南
AI讽刺检测:侮辱你的AI而不冒犯它

铁军哥
高级网络规划设计师,中国电信高级技术规划工程师,天翼云认证高级解决方案架构师,H3C认证网络工程师。 继续加油,努力传播知识,影响更多人!
 最新文章