Hyper-V
Hyper-V,代号Viridian,旧称Windows Server Virtualization,是Microsoft的本地虚拟机管理程序,它可以在运行x86-64位的Windows上创建虚拟机。从Windows 8开始,Hyper-V取代Windows Virtual PC作为Windows客户端版本的硬件虚拟化组件。可以配置运行Hyper-V的服务器计算机能够将单个虚拟机公开到一个或多个网络。Hyper-V是与Windows Server 2008一起首次发布,自Windows Server 2012和Windows 8以来一直无需额外付费。独立的Windows Hyper-V Server是免费的,但仅具有命令行接口。
省流:Hyper-V是微软自己系统的虚拟化工具
VMware
Vmware是一家提供云计算和硬件虚拟化的软件和服务的公司。
下列的Vmware部分代指Vmware Workstation
VMware Workstation是VMware公司销售的商业软件产品之一。该工作站软件包含一个用于英特尔x86兼容电脑的虚拟机套装,其允许用户同时创建和运行多个x86虚拟机。每个虚拟机可以运行其安装的操作系统,如(但不限于)Windows、Linux、BSD变生版本。用简单术语来描述就是,VMware Workstation允许一台真实的电脑在一个操作系统中同时开启并运行数个操作系统,其它VMware产品帮助在多个宿主电脑之间管理或移植VMware虚拟机。免费版本为VMware Workstation Player。
VMware Fusion是VMware针对Mac电脑推出的一款虚拟机软件。
省流:Vmware是针对商业化使用的虚拟化软件
Hyper-V VS VMware
Hyper-V的优势
- Windows 8及以上专业版自带,无需下载安装即可免费使用(开箱即用)
- 虚拟磁盘采用的是vhd/vhdx格式,可以直接挂载到Windows上读取文件(假如是Linux的话还是不可以的)
- 动态资源调度,可以动态调度内存和CPU,自动分配资源。
- 挂起速度快,检查点效率较高
VMware的优势
- 可以动态调整窗口大小(需要安装open-vm-tools)
- 可以宿主机和虚拟机复制粘贴文件
- 可以直通USB设备(U盘、网卡、蓝牙之类的)
- 可以通过vmware-tools调用GPU,DirectX11及以上版本可以调用主机显卡(Vulkan在VMware Workstation 17是支持的)
- 支持更多操作系统,可以一键安装
Hyper-V和VMware结构区别
省流1:开了Hyper-V的Windows实际上的相当于是运行在Hyper-V中的虚拟化Windows,即Type1中的GuestOS VM。
省流2:使用VMware是在系统层上跑的虚拟化软件,实际上相当于Type2中的Hypervisor
所以开了Hyper-V后,Windows性能会有一定降低,而Vmware是运行在Host OS(宿主机系统)上的一个虚拟化软件,效率相对来说更高
(经过更新优化,现在Hyper-V性能降低感知不明显)
由于兼容性问题,两个Hypervisor层是不能共存的,这也就造成了Hyper-V系统和VMware不能同时使用。
于是VMware想了个招,将自己套在了Hyper-V中,再使用里面的资源虚拟化,这样就解决了Hyper-V和VMware共存的问题了。
(从Vmware15开始官方就解决了共存问题)
结构类似下图
由于现在Windows很多方便的功能如WSL(Linux 的 Windows 子系统),WSA(Android 的 Windows 子系统),Docker on desktop都需要用到Hyper-V技术,这也就让VMware嵌套一层Hyper-V变得无可厚非
更加详细的可以看Revercc’s Blog的内容
Hyper-V与VMware的共存
由于Hyper-V虚拟机再开启了Hyper-V的情况下,相对于VMware有更好的资源调度优势,运行需要高性能的应用时有一定优势,而VMware在用户界面、管理、体验上均优于Hyper-V,也成为平时使用的首选,可以经过设置在VMware和Hyper-V共享使用虚拟机
下列以Kali Linux为例
首先我们确保虚拟机的Secure Boot是关闭状态,并且磁盘格式为VHD格式,如果不是的话请用工具将其转化为VHD格式
Hyper-V Manager里面既可以实现VHD格式和VHDX格式的相互转换
记住这边的Firmware框起来的设置,后面会有用的
在转换之后记得将虚拟机的磁盘修改为VHD格式
在VMware新建虚拟机,并且选择挂载你刚刚转换的VHD磁盘
Version和Firmware Type要选对应的那个
如果是BIOS启动的话应该可以直接使用了,但是如果是UEFI要进行其他的设置
开机按F2进入Boot Manager
Enter setup->Configure boot options->Add boot option->选择你的磁盘和文件(找回上面你Hyper-V的图,一般为第一个)
找到你的EFI文件并且选择Commit changes and exit
再进入Configure boot options->Change boot order修改启动顺序,保存重启即可
然后两边都可以进入系统,两边都能正常使用了
在进入VMware后记得安装相关vmware-tools才能使用自动调节分辨率,调用GPU等一些相关功能
sudo apt update
sudo apt install open-vm-tools -y
开始快乐使用VMware的各种功能而又可以充分利用Hyper-V的高性能咯