简介
最近家里完成了全屋2.5G网络升级,中年男人的快乐,一起分享给大家~~
之前那台是Proxmox-VE,最近又组了一台宿主机(有显卡),跑的Windows Hyper-V虚拟化平台,打算再开一台Docker服务器,用于跑一些日用的自动化服务和脚本,就需要用到Hyper-V上的嵌套虚拟化。
一、Hyper-V宿主机平台设置
1、打开Hyper-V管理器

2、创建Hyper-V桥接交换机
CXT这边是为了直接桥接到家庭子网,不使用Hyper-V的NAT内部网络。
否则,网络多重NAT内网,外网连接比较麻烦,我有公网IP可以直接防火墙上进行端口映射

二、创建Hyper-V虚拟机
1、Hyper-V虚拟机名称和位置

2、Hyper-V虚拟机代数(我选择UEFI,2代)

3、Hyper-V虚拟机内存
我这边使用了动态内存,启动内存只分配了4GB

4、Hyper-V虚拟机网络
分配到我们刚才桥接2.5G外网的Switch

5、Hyper-V虚拟机硬盘
根据你的需求,我这边创建了1TB的硬盘

6、Hyper-V虚拟机系统安装ISO镜像
CXT使用的是Rocky Linux 9的安装镜像,你可使用自己的ISO系统镜像进行安装。

7、Hyper-V虚拟机【完成】创建
检查配置无误,点击【完成】创建虚拟机

三、Hyper-V嵌套虚拟化+安全启动设置+MAC地址欺骗
1、Hyper-V虚拟机关闭安全启动
虚拟机设置,关闭安全启动(Linux不支持Windows的安全启动特性)

2、Hyper-V虚拟机开启嵌套虚拟化(安装KVM和Docker需要用到)
①打开PowerShell(管理员权限),输入Get-VM获取Hyper-V宿主机上的所有虚机
Get-VM

为了避免Hyper-V宿主机上虚机的Name和我们手动设置的不一样,请务必复制出来。
复制我们的VM-Name(此处为Loacal_Docker_Host_Rocky9)。
②查看当前的虚拟机配置信息(未开启嵌套虚拟化,显示为False)
Get-VMProcessor -VMName Loacal_Docker_Host_Rocky9 | fl

③我们设置ExposeVirtualizationExtensions为True,开启允许嵌套虚拟化功能
Set-VMProcessor -VMName Loacal_Docker_Host_Rocky9 -ExposeVirtualizationExtensions $True
正常情况下,终端是无回显的。
④我们再次查看当前的虚拟机配置信息(已开启嵌套虚拟化,显示为True)。
Get-VMProcessor -VMName Loacal_Docker_Host_Rocky9 | fl

3、启用MAC地址欺骗(嵌套虚拟化必须开启)
虚拟机设置,网络适配器,高级设置,启用MAC地址欺骗(否则嵌套虚拟化中的机器无法联网)

4、启动Hyper-V虚机,正常安装操作系统

总结
截至目前,就已经完成Hyper-V虚拟机的桥接和嵌套虚拟化功能的开启了。
快去安装你的Proxmox-VE操作系统、或者Linux系统跑Container了。