是否应在 Hyper-V 中创建第 1 代或第 2 代虚拟机?
创建第 1 代或第 2 代虚拟机取决于要安装的来宾操作系统以及要用于部署虚拟机的启动方法。 建议创建第 2 代虚拟机来利用安全启动等功能,除非以下语句之一为 true:
- 你使用的是与 UEFI 不兼容的现有预生成虚拟硬盘(VHD 或 VHDX 文件)。
- 第 2 代不支持要在虚拟机上运行的操作系统。
- 第 2 代不支持要使用的启动方法。
有关第 2 代虚拟机可用的功能的详细信息,请参阅按世代和来宾的 Hyper-V 功能兼容性。
创建虚拟机后,无法更改其代系。 建议在此处查看注意事项,并在选择生成之前选择要使用的操作系统、启动方法和功能。
使用第 2 代虚拟机的优势是什么?
下面是使用第 2 代虚拟机时可获得的一些优势:
安全启动
使用安全启动来帮助防止未经授权的固件、操作系统或 UEFI 驱动程序在启动时运行。 安全启动验证启动加载程序是否由 UEFI 数据库中的受信任机构签名。 默认情况下,针对第 2 代虚拟机启用安全启动。 如果需要运行安全启动不支持的来宾操作系统,可以在创建虚拟机后将其禁用。 有关详细信息,请参阅安全启动。
若要保护启动第 2 代 Linux 虚拟机,需要在创建虚拟机时选择 UEFI CA 安全启动模板。
更大的启动卷 第 2 代虚拟机的最大启动卷为 64 TB。 此最大启动卷是第 1 代虚拟机支持
.VHDX
的最大磁盘大小,最大启动卷为 2 TB,.VHDX
对于 2040 GB.VHD
,有关详细信息,请参阅 Hyper-V 虚拟硬盘格式概述。使用第 2 代虚拟机时,虚拟机启动和安装时间可能稍有改善。
支持哪些操作系统?
第 1 代虚拟机支持大多数客户操作系统。 第 2 代虚拟机支持大多数 64 位版本的 Windows 以及最新版本的 Linux 和 FreeBSD 操作系统。 要了解哪一代虚拟机支持你要安装的来宾操作系统,请参阅以下几节。
Windows 客户操作系统支持
下表显示了哪些 64 位版本的 Windows 可用作第 1 代和第 2 代虚拟机的客户操作系统。
64 位版本的 Windows | 第 1 代 | 第 2 代 |
---|---|---|
Windows Server 2025 | ✔ | ✔ |
Windows Server 2022 | ✔ | ✔ |
Windows Server 2019 | ✔ | ✔ |
Windows Server 2016 | ✔ | ✔ |
Windows Server 2012 R2 | ✔ | ✔ |
Windows Server 2012 | ✔ | ✔ |
Windows Server 2008 R2 | ✔ | ✖ |
Windows Server 2008 | ✔ | ✖ |
Windows 11 | ✖ | ✔ |
Windows 10 | ✔ | ✔ |
Windows 8.1 | ✔ | ✔ |
Windows 8 | ✔ | ✔ |
Windows 7 | ✔ | ✖ |
下表显示了哪些 32 位版本的 Windows 可用作第 1 代和第 2 代虚拟机的客户操作系统。
32 位版本的 Windows | 第 1 代 | 第 2 代 |
---|---|---|
Windows 10 | ✔ | ✖ |
Windows 8.1 | ✔ | ✖ |
Windows 8 | ✔ | ✖ |
Windows 7 | ✔ | ✖ |
CentOS 和 Red Hat Enterprise Linux 来宾操作系统支持
下表显示了哪些版本的 Red Hat Enterprise Linux (RHEL) 和 CentOS 可用作第 1 代和第 2 代虚拟机的客户操作系统的 。
操作系统版本 | 第 1 代 | 第 2 代 |
---|---|---|
RHEL/CentOS 8.x 系列 | ✔ | ✔ |
RHEL/CentOS 7.x 系列 | ✔ | ✔ |
RHEL/CentOS 6.x 系列 | ✔ | ✔ 注意:仅在 Windows Server 2016 及更高版本上受支持。 |
RHEL/CentOS 5.x 系列 | ✔ | ✖ |
有关详细信息,请参阅 Hyper-V 上的 CentOS 和 Red Hat Enterprise Linux 虚拟机。
Debian 来宾操作系统支持
下表显示了哪些版本的 Debian 可用作第 1 代和第 2 代虚拟机的客户操作系统。
操作系统版本 | 第 1 代 | 第 2 代 |
---|---|---|
Debian 10.x (buster) 系列 | ✔ | ✔ |
Debian 9.x (stretch) 系列 | ✔ | ✔ |
Debian 8.x (jessie) 系列 | ✔ | ✔ |
Debian 7.x (wheezy) 系列 | ✔ | ✖ |
有关详细信息,请参阅 Hyper-V 上的 Debian 虚拟机。
FreeBSD 来宾操作系统支持
下表显示了哪些版本的 FreeBSD 可用作第 1 代和第 2 代虚拟机的客户操作系统的。
操作系统版本 | 第 1 代 | 第 2 代 |
---|---|---|
FreeBSD 12 到 12.1 | ✔ | ✔ |
FreeBSD 11.1 到 11.3 | ✔ | ✔ |
FreeBSD 11 | ✔ | ✖ |
FreeBSD 10 到 10.3 | ✔ | ✖ |
FreeBSD 9.1 和 9.3 | ✔ | ✖ |
FreeBSD 8.4 | ✔ | ✖ |
有关详细信息,请参阅 Hyper-V 上的 FreeBSD 虚拟机。
Oracle Linux 来宾操作系统支持
下表显示了哪些版本的 Red Hat 兼容内核系列可用作第 1 代和第 2 代虚拟机的客户操作系统。
Red Hat 兼容内核系列版本 | 第 1 代 | 第 2 代 |
---|---|---|
Oracle Linux 8.x 系列 | ✔ | ✔ |
Oracle Linux 7.x 系列 | ✔ | ✔ |
Oracle Linux 6.x 系列 | ✔ | ✖ |
下表显示了哪些版本的 Unbreakable Enterprise Kernel 可用作第 1 代和第 2 代虚拟机的客户操作系统。
Unbreakable Enterprise Kernel (UEK) 版本 | 第 1 代 | 第 2 代 |
---|---|---|
Oracle Linux UEK R3 QU3 | ✔ | ✖ |
Oracle Linux UEK R3 QU2 | ✔ | ✖ |
Oracle Linux UEK R3 QU1 | ✔ | ✖ |
有关详细信息,请参阅 Hyper-V 上的 Oracle Linux 虚拟机。
SUSE 来宾操作系统支持
下表显示了哪些版本的 SUSE 可用作第 1 代和第 2 代虚拟机的客户操作系统。
操作系统版本 | 第 1 代 | 第 2 代 |
---|---|---|
SUSE Linux Enterprise Server 15 系列 | ✔ | ✔ |
SUSE Linux Enterprise Server 12 系列 | ✔ | ✔ |
SUSE Linux Enterprise Server 11 系列 | ✔ | ✖ |
Open SUSE 12.3 | ✔ | ✖ |
有关详细信息,请参阅 Hyper-V 上的 SUSE 虚拟机。
Ubuntu 来宾操作系统支持
下表显示了哪些版本的 Ubuntu 可以用作第 1 代和第 2 代虚拟机的来宾操作系统。
操作系统版本 | 第 1 代 | 第 2 代 |
---|---|---|
Ubuntu 20.04 | ✔ | ✔ |
Ubuntu 18.04 | ✔ | ✔ |
Ubuntu 16.04 | ✔ | ✔ |
Ubuntu 14.04 | ✔ | ✔ |
Ubuntu 12.04 | ✔ | ✖ |
有关详细信息,请参阅 Hyper-V 上的 Ubuntu 虚拟机。
如何启动虚拟机?
第 1 代和第 2 代 VM 支持不同的启动方法,下表显示了这些方法。
启动方法 | 第 1 代 | 第 2 代 |
---|---|---|
PXE 通过使用标准网络适配器启动 | ✖ | ✔ |
PXE 通过使用旧版网络适配器启动 | ✔ | ✖ |
从 SCSI 虚拟硬盘(.VHDX) 或虚拟 DVD)启动。ISO) |
✖ | ✔ |
从 IDE 控制器虚拟硬盘(.VHD) 、虚拟 DVD.ISO) 或物理 CD/DVD 驱动器)启动 |
✔ | ✖ |
从虚拟软盘启动 ().VFD) |
✔ | ✖ |
设备支持有什么区别?
下表比较了第 1 代和第 2 代虚拟机之间可用的设备。
第 1 代设备 | 第 2 代替换设备 | 第 2 代增强功能 |
---|---|---|
IDE 控制器 | 虚拟 SCSI 控制器 | 从 .VHDX (64 TB 最大大小和联机调整大小功能) |
IDE CD-ROM | 虚拟 SCSI CD-ROM | 每个 SCSI 控制器最多支持 64 个 SCSI DVD 设备。 |
传统 BIOS | UEFI 固件 | 安全启动 |
旧版网络适配器 | 合成网络适配器 | 使用 IPv4 和 IPv6 的网络启动 |
软盘控制器和 DMA 控制器 | 不支持软盘控制器 | 空值 |
适用于 COM 端口的通用异步收发器 (UART) | 用于调试的可选 UART | 更快且更可靠 |
i8042 键盘控制器 | 基于软件的输入 | 使用的资源较少,因为没有任何模拟。 还减少来自来宾操作系统的攻击面。 |
PS/2 键盘 | 基于软件的键盘 | 使用的资源较少,因为没有任何模拟。 还减少来自来宾操作系统的攻击面。 |
PS/2 鼠标 | 基于软件的鼠标 | 使用的资源较少,因为没有任何模拟。 还减少来自来宾操作系统的攻击面。 |
S3 视频 | 基于软件的视频 | 使用的资源较少,因为没有任何模拟。 还减少来自来宾操作系统的攻击面。 |
PCI 总线 | 不再需要 | 空值 |
可编程中断控制器 (PIC) | 不再需要 | 空值 |
可编程间隔计时器 (PIT) | 不再需要 | 空值 |
超级 I/O 设备 | 不再需要 | 空值 |
使用第 1 代和第 2 代虚拟机的注意事项
下面是一些关于使用不同代虚拟机的更多提示。
创建超过 64 个逻辑 CPU 的 VM
Hyper-V 管理器可能无法在具有 64 个以上逻辑 CPU 的系统上创建新的第 1 代 VM。 Hyper-V 管理器不允许在创建 VM 时指定虚拟处理器的数量。 对于具有 64 个以上逻辑处理器的主机,请使用 Windows Admin Center、PowerShell 或其他工具在 VM 创建时指定虚拟处理器数。
将虚拟硬盘上传到 Azure
只要使用 VHD 文件格式,就可以将第 1 代和第 2 代 VM 上创建的虚拟硬盘驱动器上传到 Azure。 虚拟硬盘必须具有固定(未动态扩展)大小的磁盘。 请参阅 Azure 上的第 2 代 VM,详细了解 Azure 支持的第 2 代功能。 有关上传 Windows VHD 或 VHDX 的详细信息,请参阅准备 Windows VHD 或 VHDX 以上传到 Azure。
附加或添加 DVD 驱动器
- 无法将物理 CD 或 DVD 驱动器附加到第 2 代虚拟机。 第 2 代虚拟机中的虚拟 DVD 驱动器仅支持 ISO 映像文件。 若要创建 Windows 环境的 ISO 映像文件,可以使用 OScdimg 命令行工具。 有关详细信息,请参阅 Oscdimg 命令行选项。
- 使用 Windows PowerShell cmdlet
New-VM
创建新虚拟机时,第 2 代虚拟机没有 DVD 驱动器。 你可以在运行该虚拟机时添加 DVD 驱动器。
使用 UEFI 固件
- 物理 Hyper-V 主机上不需要安全启动和 UEFI 固件。 对于第 2 代 VM,Hyper-V 向独立于 Hyper-V 主机上的虚拟机提供虚拟固件。
- 第 2 代虚拟机中的 UEFI 固件不支持安全启动的安装模式。
- 不支持在第 2 代虚拟机中运行 UEFI shell 或其他 UEFI 应用程序。 使用非 Microsoft UEFI shell 或 UEFI 应用程序从技术上讲是可行的(如果它们直接从源进行编译)。 如果这些应用程序未正确签名,则必须为虚拟机禁用安全启动。
使用 VHDX 文件
- 在运行第 2 代虚拟机时,可以调整包含该虚拟机启动卷的 VHDX 文件的大小。
- 我们不支持也不建议创建同时可由第 1 代和第 2 代虚拟机启动的单个虚拟磁盘(VHD 或 VHDX 文件)。 应创建仅可由第 1 代或第 2 代虚拟机启动的 VHDX 文件。
- 虚拟机代次是虚拟机的属性,而不是虚拟硬盘的属性。 无法判断 VHDX 文件是作为第 1 代还是第 2 代虚拟机创建的。
- 使用第 2 代虚拟机创建的 VHDX 文件可以附加到第 1 代虚拟机的 IDE 控制器或 SCSI 控制器。 但是,如果虚拟硬盘是可启动的 VHDX 文件,则第 1 代虚拟机无法启动。
使用 IPv6 而不是 IPv4
使用 PXE 从网络启动时,第 2 代虚拟机默认使用 IPv4。 若要改用 IPv6,请运行 Windows PowerShell cmdlet Set-VMFirmware。 例如,以下命令将为一台名为 TestVM 的虚拟机将首选协议设置为 IPv6:
Set-VMFirmware -VMName 'TestVM' -IPProtocolPreference IPv6
添加用于内核调试的 COM 端口
COM 端口在第 2 代虚拟机中不可用,除非你自己添加。 可以使用 Windows PowerShell 或 Windows Management Instrumentation(WMI)添加 COM 端口。 这些步骤演示如何使用 Windows PowerShell 执行此操作。
添加 COM 端口:
禁用安全启动。 内核调试与安全启动不兼容。 确保虚拟机处于“关闭”状态,然后使用 cmdlet Set-VMFirmware。 例如,以下命令将在虚拟机 TestVM 上禁用安全启动:
Set-VMFirmware -VMName 'TestVM' -EnableSecureBoot Off
添加 COM 端口。 使用 Set-VMComPort cmdlet 添加 COM 端口。 例如,以下命令将在虚拟机 TestVM 上配置第一个 COM 端口,以在本地计算机上连接到名为 TestPipe 的命名管道:
Set-VMComPort -VMName 'TestVM' -Number 1 -Path '\\.\pipe\TestPipe'
注意
配置的 COM 端口未在 Hyper-V 管理器中虚拟机的设置中列出。