CentOS - 如何模拟 USB 闪存驱动器?

CentOS - 如何模拟 USB 闪存驱动器?
VBoxManage list usbhost

如果我将其插入笔记本电脑,则会显示物理闪存驱动器。

问题:但是我可以在没有物理闪存驱动器的情况下模拟 USB 闪存驱动器吗?这样它就会显示在“VBoxManage list usbhost”输出中,这样我就可以将它作为 USB 设备附加到正在运行的 VirtualBox 来宾中。

答案1

令我惊讶的是,已经有一种现成的方法来模拟 USB 设备:

1) 加载dummy_hcd模块。这是一个环回模块,既充当 USB 小工具控制器驱动程序(客户端仿真)又充当 USB 根集线器(主机仿真):

$ sudo modprobe dummy_hcd
$ lsusb
...
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

(这是一个新的根集线器)。

2) 创建一个代表您的存储设备的空文件:

$ dd bs=1024 count=128 if=/dev/zero of=/tmp/backing_file

(这个比较小,酌情调大)

3) 加载小工具驱动程序模块以模拟 USB 大容量存储设备(闪存等):

$ sudo modprobe g_mass_storage file=/tmp/backing_file idVendor=0x1d6b idProduct=0x0104 iManufacturer=Myself iProduct=VirtualBlockDevice iSerialNumber=123
$ lsusb
...
Bus 005 Device 004: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ lsscsi
...
[7:0:0:0]    disk    Linux    File-Stor Gadget 0408  /dev/sdh 

我选择了某种合理的识别,你可以忽略这些选项,然后你似乎会得到随机的选项。

4) 您也可以对其他类型的 USB 设备执行此操作,只要有可用的小工具模块即可。

相关内容