如何将USB设备映射到VM虚拟机?帮你轻松解决技术难题!
XenServer6.x U盘、加密狗等USB设备映射到VM虚拟机教程

1.确定安装XS 6.X虚拟化服务器主板支持 VT-D 技术并开启VT-D技术

(说明:2009年以后的服务器基本上均有此VT-D技术支持,并默认为开启状态)

虚拟化USB映射 虚拟机usb映射_虚拟化USB映射


2.进入 XenServer 控制台, 利用VI编辑器修改/boot/extlinux.conf ,在0x0311后面增加iommu=1 ,注意中间的空格键。修改完成后用:X保存退出。VI 操作不熟者小心操作。造成损坏后果自负。

虚拟化USB映射 虚拟机usb映射_云计算_02


3.重启物理服务器。

即XS6.X 重新启动。如已经开启HA的,请关闭HA功能,进入池的主机,将VM迁到其他主机。

(注意:记得一定要重启。重启时也可以顺便进入服务器的CMOS确定VT-D的开启情况)4用lspci 命令在XS控制台下查看PCI信息,并找到USB控制器信息。

虚拟化USB映射 虚拟机usb映射_虚拟化USB映射_03

5.插入加密狗到服务器的USB接口。

(最好找一个规律,比如插第一个或最后一个,找USB控制器时容易些)

6.VM虚拟机安装XENTOOLS工具.

(这步最好是做了,最好是安装者一步)

7.查看VM虚拟机的UUID号,并COPY到剪贴板

虚拟化USB映射 虚拟机usb映射_云计算_04

8.进入XS控制台,查看此虚拟机的PCI映射情况。

xe vm-listuuid=508f83b7-3ecd-09e2-c445-c72550ea11b4 params=other-config

虚拟化USB映射 虚拟机usb映射_技术指南_05

9.将USB端口映射到某个虚拟机。

xe vm-param-set other-config:pci=0/0000:00:1a.1uuid=1dd96222-a82b-b88c-e482-98023c31f2d8

虚拟化USB映射 虚拟机usb映射_技术指南_06


xe vm-param-set other-config:pci=0/0000前面部分格式固定,不要乱动一个字母如果此VM的USB对应关系,也可以用此命令进行查看对应那个USB设备xe vm-param-list uuid=xxxxxxxxx params=other-config

虚拟化USB映射 虚拟机usb映射_技术指南_07


如果想清楚VM对应的映射关系可使用此命令进行清除

xe vm-param-clear param-name=other-config uuid=xxxxxxxxxx

xe vm-param-clear uuid=508f83b7-3ecd-09e2-c445-c72550ea11b4 param-name=other-config

10.关闭虚拟机,然后再开机,最好不要用重启方式。

(有时你插入的某个USB端口与你在XS上面映射的不对应时,你就一个个按1spci列出的序列号去试,但每试一次就将需要做一次第10步的操作。直到在设备管理器中找到USB设备为止。

如果找不到映射的,对应关系的话,最好是做好映射后在拿加密狗一个个端口试,在VM的设备管理器中查看USB插入情况

多个USB加密狗需要映射到VM时,建议在检查时映射时可以先找一个U盘进行验证性测试,因为免驱动,并容易在资源管理器中确定其映射是否成功。如U盘映射成功的话,再换成USB加密狗或者其他设备,则就成功)

11.查看 XenServer 上面USB设备情况

如果此USB设备已经被成功映射的话,则可以通过CAT命令查看XS物理主机上面的USB设备情况。可查看到USB设备的详细信息。#cat /proc/bus/usb/devices

12 查看映射成功的设备
注意查看你所要映射USB设备的VID与PID,确定你要映射的USB设备与VM中产看到的是一样的设备