Hyper-V es un poco extraño a la hora de acceder a dispositivos USB. A diferencia de VMware o Proxmox, no facilita enormemente la redirección de una memoria USB o un adaptador directamente a una máquina virtual. Claro que hay algunas maneras de intentarlo, como usar el modo de sesión mejorado o alguna solución alternativa con RDP, pero en general, la transferencia directa de USB no es compatible de fábrica. Esto puede ser frustrante porque, seamos sinceros, es posible que simplemente quieras conectar tu disco duro externo o una llave de seguridad USB y que aparezca directamente en la máquina virtual sin problemas.
Después de probar un poco, esto es lo que ha funcionado en la práctica, con algunas concesiones. Si necesitas que tu máquina virtual acceda directamente a un disco duro USB, la mejor manera suele ser conectarlo al host y luego prácticamente «conectarlo» como un disco físico dentro de la máquina virtual. Para otros dispositivos, como una llave USB, podrías tener limitaciones a menos que crees una solución alternativa con herramientas de terceros. A veces, simplemente habilitar el Modo de Sesión Mejorado puede hacer que aparezcan algunos dispositivos USB más, pero no es infalible. Ten en cuenta que ninguna de estas soluciones es perfecta y, en algunas configuraciones, se necesita algo de práctica o suerte para que funcione correctamente.
Cómo solucionar problemas de paso de USB en Hyper-V
Cómo acceder a un disco duro USB desde una máquina virtual Hyper-V
Este método suele ser el más sencillo para unidades externas. Funciona si la unidad USB se detecta como un disco fijo, no como un dispositivo extraíble (un poco molesto, ya que Windows suele considerarlos extraíbles).Básicamente, se trata de engañar a Windows para que trate esa unidad como un disco permanente y así poder conectarla directamente a la máquina virtual.
- Conecte la unidad USB al host de Hyper-V. Debería aparecer en Administración de discos (
diskmgmt.msc) con una letra de unidad. Si no la ve, compruebe si el disco aparece como «sin conexión». - Haga clic derecho en la unidad en Administración de discos y seleccione Sin conexión. Esto la habilitará para la conexión. En algunas compilaciones, administrar discos mediante PowerShell es más rápido
Get-Disk -Number 1 | Set-Disk -IsOffline $true: - Abra el Administrador de Hyper-V, busque su máquina virtual y vaya a su configuración. En Controlador SCSI, agregue un nuevo disco y seleccione Disco duro físico. En el menú desplegable, seleccione la unidad que acaba de configurar como sin conexión (se verá algo como «Disco 1 20.00 GB»).
- Inicie la máquina virtual e inicie sesión. Dentro de la máquina virtual, abra de nuevo Administración de discos (
diskmgmt.msc).El sistema operativo debería detectar la nueva unidad; si está sin conexión, haga clic con el botón derecho y seleccione » Conectado». Probablemente aparecerá como sin asignar, así que haga clic con el botón derecho para asignarle una letra de unidad o un punto de montaje.
En algunas configuraciones, esto funciona con bastante fiabilidad; en otras, es impredecible. La clave es que la unidad parece un disco físico conectado directamente a la máquina virtual. Recuerde: siempre expulse o extraiga el disco correctamente antes de extraerlo del puerto USB. De lo contrario, podrían producirse daños en los datos o problemas de arranque, y nadie quiere ese desastre.
Habilitación del modo de sesión mejorado para dispositivos USB
El Modo de Sesión Mejorado (ESM) ofrece compatibilidad adicional con dispositivos USB a través de la interfaz vmconnect. Es similar a RDP, pero para máquinas virtuales. Sin embargo, solo es compatible con sistemas operativos invitados Windows, a partir de Windows 8.1/Windows Server 2012 R2, y no es totalmente fiable para todos los dispositivos. Sin embargo, a veces basta para redirigir algunos dispositivos USB, como impresoras, cámaras web o dispositivos de almacenamiento que Windows reconoce como PnP.
Para que funcione, primero habilite ESM en el host Hyper-V a través de PowerShell:
Set-VMHost -EnableEnhancedSessionMode $true
o a través de la Configuración de Hyper-V en Modo de sesión mejorado. Luego, reinicie el servicio de administración de máquinas virtuales de Hyper-V ( ).Asegúrese de que los Servicios de invitado estén habilitados en la pestaña Servicios de integraciónGet-Service vmms | Restart-Service de la máquina virtual.
Conéctese a la máquina virtual con vmconnect.exe, haga clic derecho en la máquina virtual y seleccione Conectar. Cuando aparezca la ventana de la consola, haga clic en Mostrar opciones y luego vaya a Recursos locales -> Más. Puede seleccionar sus dispositivos USB desde allí; si están conectados, deberían estar redireccionados a la máquina virtual. Nota: Es posible que algunos dispositivos sigan sin funcionar, especialmente si Windows no reconoce el hardware o si el controlador no es compatible.
Otras opciones y soluciones alternativas
Un aspecto más a tener en cuenta: existen herramientas de terceros como VirtualHere USB Server o usbip (principalmente basadas en Linux) que permiten conectar dispositivos USB a través de redes IP. No son perfectas, pero en algunas configuraciones son la única forma de que los dispositivos USB sean accesibles dentro de las máquinas virtuales de forma fiable. Normalmente, se configura un pequeño servidor que ejecuta estas herramientas en el host o la red y luego se conecta la máquina virtual a ese dispositivo mediante TCP/IP. No es tan sencillo como conectar y listo, pero suele ser la única solución alternativa para dispositivos más complejos.
Sinceramente, intentar que el puerto USB funcione a la perfección en Hyper-V a veces parece una locura. Es un paso a medias, pero con paciencia y estos trucos, al menos te acercarás a lo que necesitas. A veces, una combinación de métodos funciona mejor, como redirigir un disco de esta manera y luego habilitar la compatibilidad con sesiones mejoradas para otros dispositivos. Eso sí, no esperes que sea siempre perfecto.