是否应在 Hyper-V 中创建第 1 代或第 2 代虚拟机?

创建第 1 代或第 2 代虚拟机取决于要安装的来宾操作系统以及要用于部署虚拟机的启动方法。 建议创建第 2 代虚拟机来利用安全启动等功能,除非以下语句之一为 true:

有关第 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 11
Windows 10

下表显示了哪些 32 位版本的 Windows 可用作第 1 代和第 2 代虚拟机的客户操作系统。

32 位版本的 Windows 第 1 代 第 2 代
Windows 10

CentOS 和 Red Hat Enterprise Linux 来宾操作系统支持

下表显示了哪些版本的 Red Hat Enterprise Linux (RHEL) 和 CentOS 可用作第 1 代和第 2 代虚拟机的客户操作系统的 。

操作系统版本 第 1 代 第 2 代
RHEL/CentOS 10.x 系列
RHEL/CentOS 9.x 系列
RHEL/CentOS 8.x 系列

有关详细信息,请参阅 Hyper-V 上的 CentOS 和 Red Hat Enterprise Linux 虚拟机

Debian 来宾操作系统支持

下表显示了哪些版本的 Debian 可用作第 1 代和第 2 代虚拟机的客户操作系统。

操作系统版本 第 1 代 第 2 代
Debian 12.x (Bookworm) 系列
Debian 11.x (Bullseye) 系列
Debian 10.x (Buster) 系列

有关详细信息,请参阅 Hyper-V 上的 Debian 虚拟机

FreeBSD 来宾操作系统支持

下表显示了哪些版本的 FreeBSD 可用作第 1 代和第 2 代虚拟机的客户操作系统的。

操作系统版本 第 1 代 第 2 代
FreeBSD 13.0 到 13.5
FreeBSD 12.0 到 12.4
FreeBSD 11.0 到 11.4

有关详细信息,请参阅 Hyper-V 上的 FreeBSD 虚拟机

Oracle Linux 来宾操作系统支持

下表显示了哪些版本的 Red Hat 兼容内核系列可用作第 1 代和第 2 代虚拟机的客户操作系统。

Red Hat 兼容内核系列版本 第 1 代 第 2 代
Oracle Linux 9.x 系列
Oracle Linux 8.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 系列
打开 SUSE 12.3

有关详细信息,请参阅 Hyper-V 上的 SUSE 虚拟机

Ubuntu 来宾操作系统支持

下表显示了哪些版本的 Ubuntu 可以用作第 1 代和第 2 代虚拟机的来宾操作系统。

操作系统版本 第 1 代 第 2 代
Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Ubuntu 18.04
Ubuntu 16.04
Ubuntu 14.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 端口:

  1. 禁用安全启动。 内核调试与安全启动不兼容。 确保虚拟机处于“关闭”状态,然后使用 cmdlet Set-VMFirmware。 例如,以下命令将在虚拟机 TestVM 上禁用安全启动:

    Set-VMFirmware -VMName 'TestVM' -EnableSecureBoot Off
    
  2. 添加 COM 端口。 使用 Set-VMComPort cmdlet 添加 COM 端口。 例如,以下命令将在虚拟机 TestVM 上配置第一个 COM 端口,以在本地计算机上连接到名为 TestPipe 的命名管道:

    Set-VMComPort -VMName 'TestVM' -Number 1 -Path '\\.\pipe\TestPipe'
    

注意

配置的 COM 端口未在 Hyper-V 管理器中虚拟机的设置中列出。