故障分析:
Dell U2311h顯示器上自帶了一個USBHub,一共有四個USB接口,顯示器側(cè)面兩個,底部兩個,通過顯示器自帶的一根USB電纜連接到主板背部(顯示器上的四個USB接口是通過顯示器供電的,不是通過連接到主板背部的USB線纜供電)。這次出故障的USB接口是底部的第一個接口,經(jīng)過反復(fù)測試發(fā)現(xiàn),USB設(shè)備只要插入其它三個USB接口或者機(jī)箱上的USB接口,都能正常使用,但一旦插入到顯示器底部對應(yīng)的第一個USB,則出現(xiàn)上面的故障。
既然插入和彈出設(shè)備時系統(tǒng)有聲音提示,那說明物理連接應(yīng)該是沒有問題的,所以極有可能是軟件故障。通過google那個unknownusbdevice的硬件id,發(fā)現(xiàn)這個id對應(yīng)的硬件和vmware有關(guān),于是很容易聯(lián)想到是VMware的USB功能導(dǎo)致的,把VMUSBArbService這個服務(wù)停掉后,撥下對應(yīng)的設(shè)備再次插上,這次終于被正常識別了。
那么為什么會出現(xiàn)這樣的問題呢?
VMware是一個很有名的虛擬機(jī)軟件,眾所周知,虛擬機(jī)是指共享宿主機(jī)的硬件,在宿主系統(tǒng)里面再運(yùn)行一個或多個獨(dú)立的操作系統(tǒng)。由于涉及到硬件層的操作,所以虛擬機(jī)軟件必須要在宿主系統(tǒng)中加載很多驅(qū)動來實(shí)現(xiàn)虛擬系統(tǒng)的基本功能,比如:共享宿主機(jī)的網(wǎng)絡(luò),USB設(shè)備,磁盤等等。在使用官方安裝包安裝的VMware的情況下,其會自動在宿主機(jī)系統(tǒng)服務(wù)里面添加如下幾個服務(wù)且設(shè)為自動啟動:
VMAuthdService (用于實(shí)現(xiàn)虛擬系統(tǒng)的認(rèn)證的服務(wù))

VMnetDHCP(用于實(shí)現(xiàn)虛擬機(jī)的DHCP自動分配ip地址的服務(wù))
VMware NATService(用于實(shí)現(xiàn)虛擬機(jī)共享宿主機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)NAT的服務(wù))
VMUSBArbService(用于實(shí)現(xiàn)共享宿主機(jī)USB設(shè)備的服務(wù))
VMwareHostd(這個是vmware 9.0及以后新增的服務(wù))
問題就出在VMwareUSB這個服務(wù)上面。這個服務(wù)的主要用于把接入宿主機(jī)的USB設(shè)備接入到虛擬系統(tǒng)中這個功能,這個功能具體是如何實(shí)現(xiàn)我們不必深究,但過程有必要說一下。當(dāng)把一個USB設(shè)備插入宿主機(jī)之后,vmware會默認(rèn)把這個設(shè)備直接接入虛擬系統(tǒng)中去(除非在虛擬機(jī)USB選項(xiàng)里面禁用了自動接入USB設(shè)備這個功能),此時,VMware就會為這個USB設(shè)備加載一個名叫VMwareUSBDevice的驅(qū)動,推測這個驅(qū)動就是用于把USB設(shè)備接入虛擬系統(tǒng)中。正常情況下,這個驅(qū)動加載不會出問題,驅(qū)動加載完成之后,USB設(shè)備就會被接入到虛擬系統(tǒng)中去,而在宿主系統(tǒng)中這個USB設(shè)備就會變成VMwareUSBDevice這個設(shè)備,而不再是原來的設(shè)備名了,也就是說此時該USB設(shè)備只能在虛擬系統(tǒng)里面使用,宿主機(jī)就已經(jīng)無法再使用這個USB設(shè)備了。
VMware對于USB設(shè)備的接入不知道是以什么樣的方式來識別的,之所以會造成上面的“故障”,很明顯在加載VMwareUSB Device這個驅(qū)動的時候出了問題,造成了該驅(qū)動無法被正常加載,然后就會出現(xiàn)一個unknown usbdevice,如此一來,這個設(shè)備在宿主機(jī)和虛擬機(jī)都無法使用了,也就造成了對應(yīng)的USB接口壞掉了的假象。
當(dāng)然這只是推測,具體到底是什么情況還不得而知。而且奇怪的是,假設(shè)VMware USBDevice這個驅(qū)動未被正常加載,那應(yīng)該只是對于那一個設(shè)備無法正常使用,而不應(yīng)該造成那個USB接口都不能使用。當(dāng)然這可能也是VMware的一個小bug了吧。
最后,推薦使用Vmware的朋友們可能把VMUSBArbService和VMwareHostd這兩個服務(wù)取消開機(jī)自動啟動(當(dāng)然前提是用不到把USB設(shè)備接入到虛擬系統(tǒng)中這個功能),改成手動啟動即可,這樣開機(jī)時可能會快一點(diǎn)點(diǎn)。
愛華網(wǎng)


