關於部落格
塗鴉創作,攝影旅行生活,與程式設計.
進來看吧!
  • 204464

    累積人氣

  • 0

    今日人氣

    3

    追蹤人氣

USB問題排困解難指南



常見USB問題解決指南 MJSONXX彙整
會想要整理這篇文章的原因,是有鑑於客戶端或朋友時常碰到USB的問題,希望這份指南可以快速且有效的幫助使用者解決USB的問題!
希望你們可以透過這篇文章,讓自己功力有所提升…Anyway有任何問題可以PM給我….

可能原因 解決方案
由於隱藏的磁碟代號引起 利用TweakUI來檢查是否有隱藏的磁碟代號
OS為windows 2003 Enterprise或DataCenter 若是Windows 2003 Enterprise/DataCenter的版本預設不會自動指派磁碟代號給卸除式媒體,因此到磁碟管理去新增一個磁碟代號給USB裝置
與網路磁碟機代號或是虛擬光碟機軟體衝突造成的磁碟代號遺失 檢查是否與」網路磁碟機」或是」虛擬光碟機」(如酒精)的代號相衝突(Windows會根據USB的硬體ID來記住曾經指派過什麼Drive Letter給它)
USB隨身碟Partition Table損毀或是尚未建立Partition 檢查USB隨身跌的Partition Status是否為正常
USB隨身碟具有特殊功能
(如加密或是指紋辨識) 該隨身碟具有」加密」功能,需要額外的辨識方式才能夠正常驅動(如諮安科技的指紋辨識隨身碟,必須經過指紋辨識後才能夠正常驅動使用)
由於虛擬光碟軟體
DaemonTools 4.0的系統檔案衝突造成XP無法指派磁碟代號給USB卸除裝置刪除C:SYSTEM32Drivers目錄下的以下系統檔案sptd.sys, secdrv.sys, sptd.sys, sptdNNNN.sys (NNNN = numbers)
或下載使用專門移除工具 : sptdinst_x86.exe
http://www.daemon-tools.cc/dtcc/files/sptdinst_x86.exe
由於其他第三方軟體造成的,如防毒軟體/燒錄軟體/磁碟備份軟體 1. 進入Safe Mode插入USB隨身碟測試功能是否正常,若正常,則開機到Normal Mode
2. MSCONFIG 選擇 Service頁籤,勾選」Hide All Microsoft Services」然後將其他服務全部取消勾選,重新開機進入Normal Mode在插入USB隨身碟試試看
由於驅動程式衝突造成的 1. 打開裝置管理員,選擇」顯示隱藏的裝置」,檢查」USB通用序列埠」,以及」磁碟機」的地方是否有該裝置的驚嘆號圖樣,根據代碼再做Debug
2. 利用DEVCON的Command-Line Tool來清除USB的驅動程式,並且重新安裝
由於」群組原則」限製造成 1. 控制台系統管理工具本機安全性原則本機原則安全性選項裝置:允許格式化及退出卸除式媒體 選擇」Administrator and Interactive Users」
2. 使用者重新登出在登入之後再插上USB隨身碟試試看
由於spyware Doctor這套軟體造成的 若該電腦中有安裝這套軟體,可以Uninstall,重新開機再測試看看
由於ZoneAlarm這套軟體造成的 ZoneAlarm這套防火牆軟體從v6.1~6.5具有保留磁碟代號給CDROM的Bug,可至官網下載修正程式
 USB裝置本身具有【防寫開關】而且被設置為ON
 無法將資料寫入USB隨身碟,即使它沒有防寫開關功能 1. 檢查USB隨身碟是否有此開關,留意其狀態應為OFF狀態後,再重新插拔測試
2. Windows可以對」寫入保護」的隨身碟依然寫入資料,若需要啟用此功能請檢查下列機碼
HKLMSYSTEMCurrentControlSetControlStorageDevicePolicies
"WriteProtect"=dword:00000001 禁止寫入資料
"WriteProtect"=dword:00000000 允許寫入資料
Autorun設定錯誤造成的 從gpedit.msc檢查關於」自動撥放」的設置是否正常
或是使用Autorun Settings 工具來檢查Autorun設置http://www.uwe-sieber.de/files/autorunsettings.zip

一插入USB隨身碟,OS反覆詢問驅動程式,並且無法正確安裝OS內建驅動程式 這是由於Registry損毀造成的
1. 檢查HKLMSOFTWAREMicrosoftWindowsCurrentVersion下的」Device Path」是否為%SystemRoot%Inf
2. 刪除C:WINDOWSinfinfcache.1 (重開機會重建)
檢查下列兩個機碼
HKLMSYSTEMSETUP以及
HKLMSOFTWAREMicrosoftFactory
不應有」FactoryPreInstallInProgress」
以及「AuditInProgress」若有請刪除,或是由1設置為0
由於主機板晶片組與USB裝置不相容造成 1. 查詢GOOGLE或論壇是否有類似的問題與狀況
2. 上主機板官網或是晶片組官網看看有沒有驅動程式更新程式,若是INTEL晶片,可以更新IAA INF試試看
廉價的USB線材或是其他硬體本身問題 1. 更換線材試試看(若USB為Y型,請兩頭都插入USB連接埠測試,避免USB供電不足造成的原因)
2. 本身USB隨身碟損壞或不正常工作
USB隨身碟被辨識成
」無法辨識的裝置」 1. 利用DEVCON來刪除所有USB裝置並重新開機
(使用RenewUSB.dat)
2. 將下列2行文字存成cmd檔案來呼叫裝置管理員,並且勾選」檢視所有隱藏裝置」,將」磁碟機」中,灰色透明的裝置移除(即有問題的USB隨身碟型號)
set DEVMGR_SHOW_NONPRESENT_DEVICES=1
devmgmt.msc

◆ 快速除錯技巧
1. 正常模式無法偵測到隨身碟,但是隨身碟電源燈號正常
2. 進入SAFE MODE測試看看,若可以正常偵測,則可能是軟體造成
3. 換插別的USB埠位測試,測試時應該插入主機板本身內建的USB埠而避免插入機殼前置USB孔位,以快速排除問題是出在哪裡
4. 檢查磁碟管理以及裝置管理員的裝置狀態

◆ 小知識
[理論上]
每個USB卸除裝置都具有獨一無二的[Hardware ID].作業系統會根據該ID來配發磁碟代號給它們
Hardware ID = VenderID&ProductIDUSB Serial Number

例如 :
USBSTORDISK&VEN_JETFLASH&PROD_TS4GJF110&REV_0.00F271DB42A0A2CA&0
由上面可以看出來VEN_JETFLASH是」創見公司的產品
PROD_TS4GJF110&REV_0.00是」產品型號」
F271DB42A0A2CA&0 是」USB序列號,廠商在量產的過程當中亂數寫入Firmware韌體中」

[實務上]
就有碰過2支同廠牌同型號同規格的隨身碟,其Control ID居然也」一模一樣」,因此這2支隨身碟」同時插入,只有第1支插入的會被辨識偵測到」但是另外一支無論你插哪個USB埠都無法被偵測,除非將另一支移除,再插上就正常,不過發生這樣的機率是很低啦! (發生的地就在對岸…..黑心又懶惰的工廠! 我想目的是節省韌體寫入成本吧! 哈哈哈! )
[解決方法]
讓第一支隨身碟辨識為USBSTORDISK&VEN_JETFLASH&PROD_TS4GJF110&REV_0.00F271DB42A0A2CA&0
讓第二支隨身碟辨識為
USBSTORDISK&VEN_JETFLASH&PROD_TS4GJF110&REV_0.00
發現了嗎?第二支隨身碟沒有USB Serial Number的部分…如此一來,就可以同時使用2支隨身碟嚕!

作業系統可以透過更改Registry機碼,來決定要忽略所有USB裝置的USB Serial Number或是」特定USB裝置的Serial Number」
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlUsbFlags]
在GlobalDisableSerNumGen:
0 忽略所有USB Serials Number
1 啟用偵測USB Serials Number (預設值)

在上面的機碼建立一個」二進位值」的為"IgnoreHWSerNum"
例如 VendorID=1111 , ProductID=9999:
所以 IgnoreHWSerNum11119999=1
ListUsbDrives -a (all drives and informations):

如何查詢USB Device Hardware ID


我們可以在分析幾個Hardware ID
USBSTORDISK&VEN_ST980815&PROD_A&REV_3.AL&0
類型為USB 磁碟Seagate公司 型號為ST980815的硬碟 韌體為3.AL
USBSTORDISK&VEN_FUJITSU&PROD_MHV2080AH&REV_0000123456789012&0
類型為USB 磁碟Fujitsu公司 型號為MHV2080AH的硬碟
IDEDISKFUJITSU_MHT2060AH_______________________006C____5&29AFC1B&0&0.0.0
類型為IDE 磁碟 Fujitsu公司 型號為MHT2060AH的硬碟
相簿設定
標籤設定
相簿狀態