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

适用于:Windows Server 2022、Windows 10、Windows Server 2016、Microsoft Hyper-V Server 2016、Windows Server 2019、Microsoft Hyper-V Server 2019

注意

如果计划将 Windows 虚拟机 (VM) 从本地上传到 Microsoft Azure,则支持采用 VHD 文件格式的第 1 代和第 2 代 VM,并且具有固定大小的磁盘。 请参阅 Azure 上的第 2 代 VM, 详细了解 Azure 支持的第 2 代功能。 有关上传 VHD 或 VHDX Windows,请参阅准备要上传到 Azure Windows VHD 或VHDX。

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

  • 要从 启动的 VHD 与 UEFI 不兼容
  • 第 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 2008 Server
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 系列

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

Debian 来宾操作系统支持

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

操作系统版本 第 1 代 第 2 代
Debian 10.x () 系列
Debian 9.x (stretch) 系列
Debian 8.x () 系列
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 内核可以用作第 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 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)
从软盘启动 (。VFD)

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

以下是使用第 2 代虚拟机时获得的优势:

  • 安全启动

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

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

  • 启动卷越大 第 2 代虚拟机的最大启动卷为 64 TB。 这是 支持的最大磁盘大小。VHDX。 对于第 1 代虚拟机,的最大启动卷为 2TB。的 VHDX 和 2040GB。VHD。 有关详细信息,请参阅 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 命令行选项
  • 使用新的 VM Windows PowerShell cmdlet 创建新的虚拟机时,第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代虚拟机的 VHDX 文件。
  • 虚拟机代次是虚拟机的属性,而不是虚拟硬盘的属性。 因此,你无法判断某个 VHDX 文件是由第1代还是第2代虚拟机创建的。
  • 使用第2代虚拟机创建的 VHDX 文件可以连接到第1代虚拟机的 IDE 控制器或 SCSI 控制器。 但是,如果这是可启动的 VHDX 文件,则第1代虚拟机不会启动。

使用 IPv6 而不是 IPv4

默认情况下,第 2 代虚拟机使用 IPv4。 若要改为使用 IPv6,请运行set-vmfirmware Windows PowerShell cmdlet。 例如,下面的命令将名为 TestVM 的虚拟机的首选协议设置为 IPv6:

Set-VMFirmware -VMName TestVM -IPProtocolPreference IPv6

为内核调试添加 COM 端口

在添加之前,COM 端口在第2代虚拟机中不可用。 可以通过 Windows PowerShell 或 Windows Management Instrumentation (WMI) 来实现此目的。 以下步骤说明了如何通过 Windows PowerShell 执行此操作。

添加 COM 端口:

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

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

    Set-VMComPort -VMName TestVM 1 \\.\pipe\TestPipe
    

注意

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

另请参阅