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

适用于:Windows 10、Windows 11、Windows Server 2016、Microsoft Hyper-V Server 2016、Windows Server 2019、Microsoft Hyper-V Server 2019、Windows Server 2022、Azure Stack HCI

注意

如果你计划将 Windows 虚拟机 (VM) 从本地上传到 Microsoft Azure,则第 1 代和第 2 代 VM 均受支持,前提是第 1 代和第 2 代 VM 使用 VHD 文件格式并具有固定(非动态扩展)大小的磁盘。 请参阅 Azure 上的第 2 代 VM,详细了解 Azure 支持的第 2 代功能。 有关上传 Windows VHD 或 VHDX 的详细信息,请参阅准备 Windows VHD 或 VHDX 以上传到 Azure

选择创建第 1 代还是第 2 代虚拟机取决于要安装的来宾操作系统以及要用于部署虚拟机的启动方法。 我们建议你创建第 2 代虚拟机以利用诸如安全启动之类的功能,除非满足下列其中一项陈述:

  • 使用与 UEFI 不兼容的现有预建虚拟磁盘(VHD 或 VHDX)。
  • 第 2 代不支持要在虚拟机上运行的操作系统。
  • 第 2 代不支持要使用的启动方法。

有关第 2 代虚拟机可用的功能的详细信息,请参阅按世代和来宾的 Hyper-V 功能兼容性

创建虚拟机后,无法更改其代系。 因此,建议在选择一代之前查看此处的注意事项,并选择要使用的操作系统、启动方法和功能。

支持哪些操作系统?

第 1 代虚拟机支持大多数客户操作系统。 第 2 代虚拟机支持大多数 64 位版本的 Windows 以及最新版本的 Linux 和 FreeBSD 操作系统。 要了解哪一代虚拟机支持你要安装的来宾操作系统,请参阅以下几节。

Windows 客户操作系统支持

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

64 位版本的 Windows 第 1 代 第 2 代
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 代虚拟机支持哪些启动方法。

启动方法 第 1 代 第 2 代
PXE 通过使用标准网络适配器启动
PXE 通过使用旧版网络适配器启动
从 SCSI 虚拟硬盘 (.VHDX) 或虚拟 DVD (.ISO) 启动
从 IDE 控制器虚拟硬盘 (.VHD)、虚拟 DVD (.ISO) 或物理 CD/DVD 驱动器启动
从虚拟软盘 (.VFD) 启动

使用第 2 代虚拟机的优势是什么?

下面是使用第 2 代虚拟机时可获得的一些优势:

  • 安全启动

    这项功能可验证启动加载程序是否由 UEFI 数据库中的可信机构签名,有助于防止在启动时运行未经授权的固件、操作系统或 UEFI 驱动程序。 默认情况下,针对第 2 代虚拟机启用安全启动。 如果需要运行安全启动不支持的来宾操作系统,可以在创建虚拟机后禁用安全启动。 有关详细信息,请参阅安全启动

    若要保护启动第 2 代 Linux 虚拟机,需要在创建虚拟机时选择 UEFI CA 安全启动模板。

  • 更大的启动卷 第 2 代虚拟机的最大启动卷为 64 TB。 这是 .VHDX 支持的最大磁盘大小。 对于第 1 代虚拟机,.VHDX 的最大启动卷为 2TB,.VHD 的最大启动卷为 2040GB。 有关详细信息,请参阅 Hyper-V 虚拟硬盘格式技术概述

    你还可能会在第 2 代虚拟机的虚拟机启动和安装时间方面看到一些改进。

设备支持有什么区别?

下表比较了第 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 设备 不再需要 空值

有关第 2 代虚拟机的详细信息

下面是有关使用第 2 代虚拟机的一些其他提示。

附加或添加 DVD 驱动器

  • 无法将物理 CD 或 DVD 驱动器附加到第 2 代虚拟机。 第 2 代虚拟机中的虚拟 DVD 驱动器仅支持 ISO 映像文件。 若要创建 Windows 环境的 ISO 映像文件,可以使用 OScdimg 命令行工具。 有关详细信息,请参阅 Oscdimg 命令行选项
  • 使用 Windows PowerShell cmdlet New-VM 创建新虚拟机时,第 2 代虚拟机没有 DVD 驱动器。 你可以在运行该虚拟机时添加 DVD 驱动器。

使用 UEFI 固件

  • 物理 Hyper-V 主机上不需要安全启动和 UEFI 固件。 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) 执行此操作。 这些步骤演示如何使用 Windows PowerShell 执行此操作。

添加 COM 端口:

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

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

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

注意

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

另请参阅