È necessario creare una macchina virtuale di generazione 1 o 2 in Hyper-V?

La creazione di una macchina virtuale di prima o seconda generazione dipende dal sistema operativo guest da installare e dal metodo di avvio da usare per distribuire la macchina virtuale. È consigliabile creare macchine virtuali di seconda generazione per sfruttare le funzionalità come l'avvio protetto, a meno che una delle istruzioni seguenti non sia vera:

  • Si sta usando un disco rigido virtuale esistente predefinito (file VHD o VHDX), che non è compatibile con UEFI.
  • La generazione 2 non supporta il sistema operativo che si vuole eseguire nella macchina virtuale.
  • La generazione 2 non supporta il metodo di avvio che si vuole usare.

Per altre informazioni sulle funzionalità disponibili con le macchine virtuali di seconda generazione, vedere Compatibilità delle funzionalità di Hyper-V per generazione e guest.

Non è possibile modificare la generazione di una macchina virtuale dopo la creazione. È consigliabile esaminare le considerazioni qui e scegliere il sistema operativo, il metodo di avvio e le funzionalità da usare prima di scegliere una generazione.

Quali sono i vantaggi dell'uso di macchine virtuali di seconda generazione?

Ecco alcuni dei vantaggi che si ottengono quando si usa una macchina virtuale di seconda generazione:

  • Avvio protetto

    Usare l'avvio protetto per impedire l'esecuzione di firmware, sistemi operativi o driver UEFI non autorizzati in fase di avvio. L'avvio protetto verifica che il caricatore di avvio sia firmato da un'autorità attendibile nel database UEFI. L'avvio protetto è abilitato per impostazione predefinita per le macchine virtuali di seconda generazione. Se è necessario eseguire un sistema operativo guest che l'avvio protetto non supporta, è possibile disabilitarlo dopo aver creato la macchina virtuale. Per altre informazioni, vedere Avvio protetto.

    Per proteggere le macchine virtuali Linux di seconda generazione, è necessario scegliere il modello di avvio protetto della CA UEFI quando si crea la macchina virtuale.

  • Volume di avvio più grande Il volume di avvio massimo per le macchine virtuali di seconda generazione è 64 TB. Questo volume di avvio massimo è la dimensione massima del disco supportata da una .VHDX macchina virtuale di prima generazione, il volume di avvio massimo è di 2 TB per un .VHDXe 2040 GB per un .VHD per per altre informazioni, vedere Panoramica del formato di disco rigido virtuale Hyper-V.

    È anche possibile notare un lieve miglioramento dei tempi di avvio e installazione delle macchine virtuali con macchine virtuali di seconda generazione.

Quali sistemi operativi guest sono supportati?

Le macchine virtuali di prima generazione supportano la maggior parte dei sistemi operativi guest. Le macchine virtuali di seconda generazione supportano la maggior parte delle versioni a 64 bit di Windows e altre versioni correnti dei sistemi operativi Linux e FreeBSD. Usare le sezioni seguenti per vedere quale generazione di macchina virtuale supporta il sistema operativo guest da installare.

Supporto del sistema operativo guest Windows

La tabella seguente illustra le versioni a 64 bit di Windows che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni a 64 bit di Windows Prima generazione Seconda generazione
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

La tabella seguente illustra le versioni a 32 bit di Windows che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni a 32 bit di Windows Prima generazione Seconda generazione
Windows 10
Windows 8.1
Windows 8
Windows 7

Supporto del sistema operativo guest CentOS e Red Hat Enterprise Linux

La tabella seguente illustra le versioni di Red Hat Enterprise Linux (RHEL) e CentOS che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni del sistema operativo Prima generazione Seconda generazione
Serie RHEL/CentOS 8. x
Serie RHEL/CentOS 7. x
Serie RHEL/CentOS 6. x
Nota: supportato solo in Windows Server 2016 e versioni successive.
Serie RHEL/CentOS 5. x

Per altre informazioni, vedere Macchine virtuali CentOS e Red Hat Enterprise Linux in Hyper-V.

Supporto del sistema operativo guest Debian

La tabella seguente illustra le versioni di Debian che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni del sistema operativo Prima generazione Seconda generazione
Serie Debian 10.x (buster)
Serie Debian 9.x (stretch)
Serie Debian 8.x (jessie)
Serie Debian 7.x (wheezy)

Per altre informazioni, vedere Macchine virtuali Debian in Hyper-V.

Supporto del sistema operativo guest FreeBSD

La tabella seguente illustra le versioni di FreeBSD che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni del sistema operativo Prima generazione Seconda generazione
FreeBSD da 12 a 12.1
FreeBSD da 11.1 a 11.3
FreeBSD 11
FreeBSD da 10 a 10.3
FreeBSD 9.1 e 9.3
FreeBSD 8.4

Per altre informazioni, vedere Macchine virtuali FreeBSD in Hyper-V.

Supporto del sistema operativo guest Oracle Linux

La tabella seguente illustra le versioni di Red Hat Compatible Kernel Series che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni della serie kernel compatibile con Red Hat Prima generazione Seconda generazione
Serie Oracle Linux 8.x
Serie Oracle Linux 7.x
Serie Oracle Linux 6.x

La tabella seguente illustra le versioni di Unbreakable Enterprise Kernel che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni di Unbreakable Enterprise Kernel (UEK) Prima generazione Seconda generazione
Oracle Linux UEK R3 QU3
Oracle Linux UEK R3 QU2
Oracle Linux UEK R3 QU1

Per altre informazioni, vedere Macchine virtuali Oracle Linux in Hyper-V.

Supporto del sistema operativo guest SUSE

La tabella seguente illustra le versioni di SUSE che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni del sistema operativo Prima generazione Seconda generazione
Serie SUSE Linux Enterprise Server 15
Serie SUSE Linux Enterprise Server 12
Serie SUSE Linux Enterprise Server 11
Aprire SUSE 12.3 +

Per altre informazioni, vedere Macchine virtuali SUSE in Hyper-V.

Supporto del sistema operativo guest Ubuntu

La tabella seguente illustra le versioni di Ubuntu che è possibile usare come sistema operativo guest per le macchine virtuali di prima e seconda generazione.

Versioni del sistema operativo Prima generazione Seconda generazione
Ubuntu 20.04
Ubuntu 18.04
Ubuntu 16.04
Ubuntu 14.04
Ubuntu 12.04

Per ulteriori informazioni, vedere l'argomento relativo alle macchine virtuali Ubuntu in Hyper-V.

Come è possibile avviare la macchina virtuale?

Le macchine virtuali di prima e seconda generazione supportano metodi di avvio diversi, questi metodi sono illustrati nella tabella seguente.

Metodo di avvio Prima generazione Seconda generazione
Avvio PXE tramite una scheda di rete standard
Avvio PXE tramite una scheda di rete legacy
Eseguire l'avvio da un disco rigido virtuale SCSI (.VHDX) o da un DVD virtuale (. ISO)
Avvio da disco rigido virtuale del controller IDE (.VHD), DVD virtuale (.ISO) o un'unità CD/DVD fisica
Avvio da floppy virtuale (.VFD)

Qual è la differenza nel supporto dei dispositivi?

Nella tabella seguente vengono confrontati i dispositivi disponibili tra le macchine virtuali di prima e seconda generazione.

Dispositivo di prima generazione Sostituzione con la seconda generazione Miglioramenti della seconda generazione
Controller IDE Controller SCSI virtuale Avvio da .VHDX(dimensioni massime di 64 TB e funzionalità di ridimensionamento online)
CD-ROM IDE CD-ROM SCSI virtuale Supporto di 64 dispositivi DVD SCSI per ogni controller SCSI.
BIOS legacy Firmware UEFI Avvio protetto
Scheda di rete legacy Scheda di rete sintetica Avvio di rete con IPv4 e IPv6
Controller floppy e controller DMA Nessun supporto per il controller floppy N/D
Universal Asynchronous Receiver/Transmitter (UART) per porte COM UART facoltativo per il debug Più veloce e affidabile
Controller tastiera i8042 Input basato sul software Usa meno risorse perché non sono previste emulazioni. Inoltre riduce la superficie di attacco dal sistema operativo guest.
Tastiera PS/2 Tastiera basata sul software Usa meno risorse perché non sono previste emulazioni. Inoltre riduce la superficie di attacco dal sistema operativo guest.
Mouse PS/2 Mouse basato sul software Usa meno risorse perché non sono previste emulazioni. Inoltre riduce la superficie di attacco dal sistema operativo guest.
Video S3 Video basato sul software Usa meno risorse perché non sono previste emulazioni. Inoltre riduce la superficie di attacco dal sistema operativo guest.
Bus PCI Non più necessario N/D
Programmable Interrupt Controller (PIC) Non più necessario N/D
Programmable Interval Timer (PIT) Non più necessario N/D
Dispositivo Super I/O Non più necessario N/D

Considerazioni sull'uso di macchine virtuali di prima e seconda generazione

Ecco altri suggerimenti sull'uso delle diverse generazioni di macchine virtuali.

Creazione di macchine virtuali con più di 64 CPU logiche

La console di gestione di Hyper-V potrebbe non riuscire a creare una nuova macchina virtuale di prima generazione in un sistema con più di 64 CPU logiche. La console di gestione di Hyper-V non consente di specificare il numero di processori virtuali in fase di creazione della macchina virtuale. Per gli host con più di 64 processori logici, specificare il numero di processori virtuali durante la creazione di macchine virtuali tramite Windows Admin Center, PowerShell o un altro strumento.

Caricamento di un disco rigido virtuale in Azure

I dischi rigidi virtuali creati nelle macchine virtuali di prima e seconda generazione possono essere caricati in Azure, purché usino il formato di file VHD. Il disco rigido virtuale deve avere un disco con dimensioni fisse (non a espansione dinamica). Vedere Macchine virtuali di seconda generazione in Azure per altre informazioni sulle funzionalità di seconda generazione supportate in Azure. Per altre informazioni sul caricamento di un disco rigido virtuale Windows o VHDX, vedere Preparare un disco rigido virtuale Windows o VHDX da caricare in Azure.

Collegare o aggiungere un'unità DVD

  • Non è possibile collegare un'unità CD o DVD fisica a una macchina virtuale di seconda generazione. L'unità DVD virtuale nelle macchine virtuali di seconda generazione supporta solo file di immagine ISO. Per creare un file immagine ISO di un ambiente Windows, è possibile usare lo strumento da riga di comando Oscdimg. Per altre informazioni, vedere Opzioni della riga di comando di Oscdimg.
  • Quando si crea una nuova macchina virtuale con il cmdlet di Windows PowerShell New-VM, la macchina virtuale di seconda generazione non dispone di un'unità DVD. È possibile aggiungere un'unità DVD mentre la macchina virtuale è in esecuzione.

Usare il firmware UEFI

  • L'avvio protetto o il firmware UEFI non è necessario nell'host Hyper-V fisico. Per le macchine virtuali di seconda generazione, Hyper-V fornisce il firmware virtuale alle macchine virtuali indipendenti da ciò che si trova nell'host Hyper-V.
  • Il firmware UEFI in una macchina virtuale di seconda generazione non supporta la modalità di installazione per l'avvio protetto.
  • Non è supportata l'esecuzione di una shell UEFI o di altre applicazioni UEFI in una macchina virtuale di seconda generazione. L'uso di una shell UEFI o di applicazioni UEFI non Microsoft è tecnicamente possibile se vengono compilate direttamente dalle origini. Se queste applicazioni non sono firmate digitalmente correttamente, è necessario disabilitare l'avvio protetto per la macchina virtuale.

Usare i file VHDX

  • È possibile ridimensionare un file VHDX contenente il volume di avvio per una macchina virtuale di seconda generazione mentre la macchina virtuale è in esecuzione.
  • Non è supportato né si consiglia di creare un singolo disco virtuale (VHD o file VHDX) che sia avviabile per sia macchine virtuali di prima generazione sia di seconda generazione. Creare invece file VHDX di avvio destinati solo alle macchine virtuali di prima o seconda generazione.
  • La generazione è una proprietà della macchina virtuale e non del disco rigido virtuale. Non è possibile stabilire se un file VHDX è stato creato come macchina virtuale di prima o seconda generazione.
  • Un file VHDX creato con una macchina virtuale di seconda generazione può essere collegato al controller IDE o al controller SCSI di una macchina virtuale di prima generazione. Tuttavia, se il disco rigido virtuale è un file VHDX di avvio, l'avvio della macchina virtuale di prima generazione non riesce.

Usare IPv6 anziché IPv4

Quando si esegue l'avvio dalla rete con PXE, le macchine virtuali di seconda generazione usano IPv4 per impostazione predefinita. Per usare invece IPv6, eseguire cmdlet Set-VMFirmware Windows PowerShell. Ad esempio, il comando seguente imposta il protocollo preferito su IPv6 per una macchina virtuale denominata TestVM:

Set-VMFirmware -VMName 'TestVM' -IPProtocolPreference IPv6

Aggiungere una porta COM per il debug del kernel

Le porte COM non sono disponibili nelle macchine virtuali di seconda generazione finché non vengono aggiunte. È possibile aggiungere porte COM con Windows PowerShell o Strumentazione gestione Windows (WMI). Questi passaggi illustrano come eseguire questa operazione con Windows PowerShell.

Per aggiungere una porta COM:

  1. Disabilitare l'avvio protetto. Il debug del kernel non è compatibile con l'avvio protetto. Assicurarsi che la macchina virtuale sia in stato Off e quindi usare il cmdlet Set-VMFirmware. Il comando seguente, ad esempio, disabilita l'avvio protetto nella macchina virtuale TestVM:

    Set-VMFirmware -VMName 'TestVM' -EnableSecureBoot Off
    
  2. Aggiungere una porta COM. Usare il cmdlet Set-VMComPort per aggiungere una porta COM. Il comando seguente, ad esempio, configura la prima porta COM nella macchina virtuale, TestVM, per la connessione alla named pipe, TestPipe, sul computer locale:

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

Nota

Le porte COM configurate non sono elencate nelle impostazioni di una macchina virtuale nella console di gestione di Hyper-V.

Vedi anche