Los usuarios de VirtualBox de todos los niveles (desde principiantes hasta experimentados) se enfrentan a numerosas situaciones en las que necesitan acceder a un dispositivo USB desde VirtualBox vms usando USB passthrough. En concreto, el acceso a dispositivos USB que están conectados a un ordenador host.
¿Cómo pueden los vboxusers realizar con éxito el VirtualBox USB passthrough en las MV para acceder a sus dispositivos de hardware USB a través de Ethernet (u otras conexiones de red)?
A continuación responderemos a esa pregunta...
Este artículo contiene instrucciones paso a paso para que los vboxusers aprendan a activar el acceso al hardware de la tarjeta SD desde una máquina invitada Ubuntu Linux VirtualBox en una máquina anfitriona que ejecute sistemas operativos Windows a través de Ethernet (o cualquier otra conexión de red).
Antes de seguir cualquiera de los pasos siguientes, compruebe que los controladores están actualizados en todos los equipos que participan en el USB passthrough.
Independientemente de la plataforma, la herramienta, o el SO (VboxManage, Ubuntu, XP, VirtualBox Extension Packs, etc.) tanto los expertos como los nuevos vboxusers necesitan que sus drivers estén actualizados (o que sean compatibles con la versión de VirtualBox Extension Pack que esté usando) para garantizar el éxito del USB Passthrough.
Paso 1-1: Abra el símbolo del sistema (o Windows PowerShell en los sistemas operativos Windows XP Pro) como administrador (por ejemplo: tecla "Windows + x". Luego seleccione "Símbolo del sistema (admin)”)
Paso 1-2: Con ayuda del comando wmic (o del comando lsusb en Linux), se obtiene una lista de las unidades de disco. Este proceso debe realizarse antes de insertar la tarjeta SD en el PC.
wmic diskdrive list brief
El resultado debe ser el siguiente:
Título | ID Dispositivo | Modelo | Particiones | Tamaño |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Paso 1-3: Introduzca la tarjeta SD en la máquina y ejecute el mismo comando que antes (en el sistema operativo Linux, se usa el comando lsusb para obtener un listado con información específica sobre los buses USB, etc.)
Los usuarios deben ver una línea adicional que muestra el ID de Dispositivo de la tarjeta SD. En el siguiente ejemplo, el ID es: “\\.\PHYSICALDRIVE1“.
Título | ID Dispositivo | Modelo | Particiones | Tamaño |
Generic- USB3.0 CRW -SD USB Device | \\.\PHYSICALDRIVE1 | Generic- USB3.0 CRW -SD USB Device | 2 | 31914086400 |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Desarrolladores y vboxusers deben tener en cuenta: los usuarios deben saber si están utilizando un dispositivo USB 3.0, o un USB 2.0 (EHCI). “EHCI” significa: “Enhanced Host Controller Interface”.
Paso 2-1: Transfiera el archivo a la carpeta de instalación de VirtualBox. En el siguiente ejemplo, será: “C:\Program Files\Oracle\VirtualBox\”.
cd "C:\Program Files\Oracle\VirtualBox\"
Paso 2-2: Usando "VBoxManage.exe" cree el archivo VMDK de la tarjeta SD. El último argumento se refiere al ID de Dispositivo de las tarjetas SD (revise los pasos 1-1 a 1-3)
.\VBoxManage.exe internalcommands createrawvmdk -filename C:\sdcard.vmdk -rawdisk
\\.\PHYSICALDRIVE1
Si todo va bien, el resultado será "sdcard.vmdk" y se creará en la carpeta raíz de la unidad C.
Acceso RAW al disco host archivo VMDK C:\sdcard.vmdk creado correctamente.
Paso 3-1: Inicie la GUI de VirtualBox como administrador
Paso 3-2: En la GUI de VirtualBox, navegue de la siguiente manera: "Configuración>Almacenamiento"
Paso 3-3: Haga clic en "Controlador: SATA"
Paso 3-4: Marque la casilla junto a "Usar Caché de E/S del Host"
Paso 3-5: Ahora haga clic en el icono " Añadir Disco Duro " (mostrado en la ayuda visual de abajo)
Paso 3-6: Seleccione "Elegir Disco Existente"
Paso 3-7: Vaya a la unidad C y seleccione el archivo “sdcard.vmdk” (el archivo que creamos en el Paso 2)
Inicie la Máquina Virtual y comience la verificación. En este ejemplo, tiene el siguiente aspecto: “/dev/sdb” (Imagen de SO Raspbian en tarjeta SD de 32GB).
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 29.8 GiB, 32010928128 bytes, 62521344 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb1d773dc
Dispositivo | Arranque | Fin | Sectores | Tamaño | Id | Tipo |
/dev/sdb1 | 8192 | 96453 | 88262 | 43.1M | c | W95 FAT32 (LBA) |
/dev/sdb2 | 98304 | 31116287 | 31017984 | 14.8G | 83 | Linux |
Lamentablemente, al intentar utilizar la tarjeta SD, surgieron numerosos errores. A continuación se describen algunas opciones de solución de problemas para VirtualBox SD card passthrough.
Solución de problemas Opción 1:
El Error: "El caché de E/S encontró un error al actualizar datos en el medio "ahci-0-1" (rc=VERR_ACCESS_DENIED)"
Para los usuarios con este error, vuelva al paso 2 y asegúrese de que la casilla "Usar Caché de E/S del Host" está marcada.
Solución de problemas Opción 2
El Error: "UUID" del medio no coincide con el valor almacenado en el registro de medios.
Desde la carpeta de instalación de VirtualBox, ejecute el siguiente comando:
.\VBoxManage.exe list hdds
Los usuarios pueden localizar el UUID en los detalles del error.
UUID: 5b951504-358d-4a6e-bb8f-61be3ec32367
Parent UUID: base
State: inaccessible
Type: normal (base)
Location: C:\Users\max\Desktop\sdcard.vmdk
Storage format: VMDK
Capacity: 0 MBytes
Encryption: disabled
Para eliminar el disco, utilice el siguiente comando (especificando el UUID):
.\VBoxManage.exe closemedium disk 5b951504-358d-4a6e-bb8f-61be3ec32367