Hyper-V: come usare dispositivi USB e chiavette

Hyper-V è una soluzione di virtualizzazione integrata in Windows, ideale per aziende e utenti avanzati. Poiché non supporta nativamente il passthrough USB, vediamo come ovviare a questa limitazione con VMConnect e usbipd.

Mar 31, 2025 - 18:26
 0
Hyper-V: come usare dispositivi USB e chiavette

Una delle soluzioni migliori per virtualizzare sistemi operativi Windows e Linux è certamente Hyper-V. Si tratta delle soluzione di virtualizzazione che Microsoft integra in tutte le edizioni di Windows (fatta eccezione per la Home, in cui è installabile con un trucco). Con Hyper-V si possono creare e gestire macchine virtuali (VM) in modo efficiente, offrendo agli amministratori IT e agli sviluppatori un ambiente flessibile per eseguire più sistemi operativi su un’unica infrastruttura hardware.

L’adozione di Hyper-V porta con sé numerosi vantaggi: consente di ottimizzare le risorse hardware, migliorare la sicurezza attraverso l’isolamento delle VM, beneficiare di funzionalità come snapshot e replica, e semplificare la gestione IT grazie a strumenti avanzati di amministrazione.

Non pensiate che Hyper-V sia uno strumento per le sole aziende: è utilissimo anche per professionisti e utenti normali. La possibilità di eseguire altre versioni ed edizioni di Windows e Linux, permette agli utenti di provare altri sistemi operativi, configurare ambienti software “ad hoc”, fare esperimenti, testare software e simulare operazioni che si andranno poi a replicare su macchine fisiche.

Accedere a dispositivi USB e chiavette dalle macchine virtuali Hyper-V con VMConnect

Uno degli svantaggi di Hyper-V, è che non supporta nativamente il passthrough USB come altre soluzioni per la virtualizzazione. Con un po’ d’impegno, tuttavia, è possibile esporre dispositivi USB e unità di memorizzazione, come le chiavette, alle VM di Hyper-V.

Hyper-V finestra Connetti a

La finestra di dialogo Connetti a, che compare al primo avvio della macchina virtuale o quando si effettuano alcune variazioni sulla sua configurazione (per esempio quando si interviene sulla risoluzione video), consente di accedere dalla VM a stampanti, supporti di memorizzazione USB, periferiche USB, smart card e altri device Plug and Play utilizzabili tramite il sistema host.

Alla comparsa della finestra Connetti a, basta cliccare su Mostra opzioni quindi sulla scheda Risorse locali.

Risorse locali Hyper-V

Nel riquadro Dispositivi e risorse locali le caselle StampantiAppunti dovrebbero essere già spuntate a conferma che il sistema host condivide con la macchina virtuale guest Hyper-V sia i dispositivi di stampa che il contenuto degli appunti di sistema.

Dispositivi e risorse locali Hyper-V

Cliccando sul pulsante Altro, si possono scegliere i dispositivi USB che si vogliono rendere accessibili da parte della macchina virtuale Hyper-V. Ad esempio, spuntando la lettera identificativa di unità corrispondente a una chiavetta USB, essa diverrà immediatamente accessibile in lettura e scrittura.

Condivisione USB Hyper-V

Richiamare la finestra Connetti a quando necessario

Spuntando la casella Unità, si possono collegare alla VM Hyper-V tutte le unità disponibili, scegliendo Unità collegate in seguito soltanto i supporti di memorizzazione inseriti nel sistema host in tempi successivi, selezionando Altri dispositivi Plug and Play supportati si possono esporre altri dispositivi USB.

I supporti per lo storage dei dati appaiono nel sistema guest (VM) come Unità o cartelle reindirizzate tramite Desktop remoto.

Nel caso in cui si avesse bisogno di far ricomparire la finestra Connetti a, è sufficiente chiudere la finestra della macchina virtuale Hyper-V cliccando sulla “X” in alto a destra.

VMConnect Hyper-V

Successivamente, si deve premere Windows+X, scegliere Windows PowerShell (amministratore) oppure Terminale (Admin) e impartire il comando che segue:

vmconnect localhost "NOME_VM" /edit

Al posto di NOME_VM va introdotto il nome della macchina virtuale da gestire. Tale nome è rilevabile nella finestra principale della Console di gestione di Hyper-V.

Condividere chiavette USB e altri dispositivi con usbipd

usbipd è un servizio associato al progetto USB/IP, che si occupa di condividere dispositivi USB su una rete IP. Il progetto permette di accedere ai dispositivi USB da remoto, come se fossero collegati direttamente al computer locale.

Il servizio usbipd è essenziale per gestire la comunicazione tra il server che ospita il dispositivo USB fisico e i client che desiderano accedere a quel dispositivo tramite la rete.

Il funzionamento di usbipd si basa su una tecnologia di incapsulamento delle richieste di I/O USB in pacchetti TCP/IP. Ecco i passaggi principali:

  • Il server deve avere il dispositivo USB fisicamente collegato.
  • Deve essere caricato il modulo del kernel USB/IP (usbip_host).
  • Il servizio usbipd deve essere avviato e abilitato per accettare connessioni sulla porta TCP 3240.

Il vantaggio di usbipd è che può essere utilizzato per rendere visibili le unità e i dispositivi USB (anche non di storage) alle macchine virtuali Hyper-V e WSL (Windows Subsystem for Linux). Nell’articolo dedicato a WSL come alternativa a DiskInternals Linux Reader, abbiamo visto che usbipd può essere utilizzato per esporre il contenuto di un dispositivo USB formattato ext a una macchina virtuale Linux direttamente accessibile anche da Windows.

Installazione di usbipd in Windows

Dopo aver aperto un prompt dei comandi con i diritti di amministratore, si possono eseguire un paio di comandi per installare usbipd e verificare la lista dei dispositivi USB presenti:

winget install usbipd

usbipd list

Nell’esempio in figura, il dispositivo di archiviazione di massa USB con BUSID 1-1 corrisponde alla chiavetta USB che vogliamo rendere accessibile e gestibile dalla macchina virtuale Hyper-V. È possibile accertarsi di quale sia il BUSID corretto disconnettendo il dispositivo USB, eseguendo il comando usbipd list quindi ricollegandolo e infine usando di nuovo usbipd list.

Digitando quanto segue, condividiamo la nostra chiavetta USB con BUSID 1-1. Il comando usbipd list mostrerà quindi la dizione Shared accanto ad essa:

Condivisione USB con usbipd

Impostazione della macchina virtuale

Supponendo di utilizzare una macchina virtuale Hyper-V con Windows, si può adesso scaricare il file usbip-win-X.X.X-dev.zip disponibile cliccando su Assets. Tutto il contenuto dell’archivio compresso deve essere quindi estratto nella cartella c:\usbip.

A questo punto, si deve digitare cmd nella casella di ricerca di Windows, selezionare Esegui come amministratore e infine c:\usbip\usbip install

Scrivendo ipconfig si deve rilevare l’indirizzo IP del Gateway predefinito che corrisponde al sistema host.

Configurazione usbip macchina virtuale Hyper-V

Lo stesso indirizzo IP va infine digitato nel comando seguente:

c:\usbip\usbip attach --remote=172.18.48.1 --busid=1-1

Al posto di 172.18.48.1 va indicato il valore del Gateway predefinito mentre al posto di 1-1 bisogna specificare il BUSID individuato seguendo le istruzioni al paragrafo precedente.

Unità USB condivisa tra host e VM Hyper-V

Premendo Windows+E quindi cliccando su Questo PC, ecco che le unità di storage condivise dalla macchina host con usbip risultano direttamente accessibili con una lettera identificativa dedicata.