¡Registre su dirección de email para obtener un enlace de descarga rápida en su escritorio y empezar!
Los usuarios de VirtualBox de todos los niveles (desde principiantes hasta desarrolladores) tienen numerosos escenarios en los que requieren acceso a un dispositivo USB desde VirtualBox vms a través de USB passthrough. Específicamente, acceder a dispositivos USB que están conectados con una computadora host.
¿Cómo pueden los usuarios de vbox realizar con éxito el paso a través de VirtualBox USB dentro de las VM para acceder a sus dispositivos de hardware USB a través de Ethernet (u otras conexiones de red)?
Lo responderemos a continuación ...
Este artículo proporciona instrucciones paso a paso para mostrar a los usuarios de vbox cómo habilitar el acceso al hardware de la tarjeta SD desde una máquina huésped Ubuntu Linux VirtualBox en una máquina host que ejecuta sistemas operativos Windows a través de ethernet (o cualquier otra conexión de red).
Antes de seguir cualquiera de los pasos a continuación, asegúrese de que todos los controladores estén actualizados en todas las máquinas que participan en el paso a través de USB.
Independientemente de la plataforma, herramienta o sistema operativo (VboxManage, Ubuntu, XP, VirtualBox Extension Packs, etc.), tanto los desarrolladores como los nuevos usuarios de vbox necesitan que sus controladores estén actualizados (o sean compatibles con la versión de VirtualBox Extension Pack que se esté utilizando) para maximizar el éxito paso a través de usb.
Paso 1-1: Abra el símbolo del sistema (o Windows PowerShell en los sistemas operativos Windows, como XP Pro) como administrador (por ejemplo: tecla "Windows" + "x". Luego, seleccione "Símbolo del sistema (admin)")
Paso 1-2: Utilice el comando wmic (o el comando lsusb en Linux) para enumerar las unidades de disco. Esto debe hacerse antes de insertar la tarjeta SD en la PC.
wmic diskdrive list brief
La salida debe leerse de la siguiente manera:
Subtítulo | ID del dispositivo | Modelo | Particiones | Tamaño |
SAMSUNG MZFLV256HCHP-000MV | \\.\PHYSICALDRIVE0 | SAMSUNG MZFLV256HCHP-000MV | 3 | 256052966400 |
Paso 1-3: Inserte la tarjeta SD en la máquina y ejecute el mismo comando que antes (en un sistema operativo Linux, sería el comando lsusb para enumerar información sobre detalles específicos sobre buses USB, etc.)
Los usuarios deberían ver una línea adicional que muestra el ID del dispositivo de la tarjeta SD. En el siguiente ejemplo, el ID dice: “\\.\PHYSICALDRIVE1“.
Subtítulo | ID del 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 |
Los desarrolladores y usuarios de vbox deben tener en cuenta: los usuarios deben saber si están usando un dispositivo USB 3.0 o un USB 2.0 (EHCI). “EHCI” significa: “Interfaz de controlador de host mejorada”.
Paso 2-1: Transfiera la carpeta 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: Con "VBoxManage.exe", cree el archivo VMDK de la tarjeta SD. El argumento final se refiere a las tarjetas SD DeviceID (revise los pasos 1-1 a 1-3)
.\VBoxManage.exe internalcommands createrawvmdk -filename C:\sdcard.vmdk -rawdisk
\\.\PHYSICALDRIVE1
Si todo está bien, la salida se leerá "sdcard.vmdk" y luego se creará dentro de la carpeta raíz de la unidad C.
RAW host disk access VMDK file C:\sdcard.vmdk created successfully.
Paso 3-1: Como administrador, inicie la GUI de VirtualBox
Paso 3-2: Dentro de 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 de verificación junto a "Usar caché de E/S del host"
Paso 3-5: Ahora haga clic en el icono "Agrega disco duro" (que se muestra en la ayuda visual a continuación)
Paso 3-6: Seleccione "Elegir disco existente"
Paso 3-7: Vaya a la unidad C y elija 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, se ve así: "/dev/sdb" (imagen del sistema operativo Raspbian en una tarjeta SD de 32 GB).
$ 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 | Inicio de arranque | Fin | Sectores | Tamaño | Identificación | Escribe |
/dev/sdb1 | 8192 | 96453 | 88262 | 43.1M | c | W95 FAT32 (LBA) |
/dev/sdb2 | 98304 | 31116287 | 31017984 | 14.8G | 83 | Linux |
Desafortunadamente, al intentar usar la tarjeta SD, surgieron numerosos errores. A continuación se muestran algunas opciones de solución de problemas para el paso a través de la tarjeta SD de VirtualBox.
Opción de resolución de problemas 1:
El error: "La caché de E/S encontró un error al actualizar los datos en el medio" ahci-0-1 "(rc = VERR_ACCESS_DENIED)"
Para los usuarios que experimentan el error anterior, regrese al Paso 2 y asegúrese de que la casilla de verificación "Usar caché de E/S del host" esté marcada.
Opción de resolución de problemas 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 podrán entonces localizar el UUID dentro de 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
Utilice el siguiente comando (especificando el UUID) para eliminar el disco:
.\VBoxManage.exe closemedium disk 5b951504-358d-4a6e-bb8f-61be3ec32367