[分享]自製USB問題排困解難指南

mjsonxx

初級會員
已加入
8/25/05
訊息
10
互動分數
0
點數
0
各位先進大家好,由於小弟在工作實務上常碰到客戶親戚朋友有關USB偵測不到的問題
所以特別花了些時間將一些常見的問題彙整在一起,提供各位在碰到相關問題的一個解決方向
若是內容有誤或是不正確的地方歡迎指證,基本上裡面的案例七成都是我親身經驗過且處理過的
而且確實可以解決該問題....所以提供各位參考

歡迎各位轉貼...謝謝

===由於小弟權限不足無法上傳WORD檔案===所以只能用剪下貼上的方式造成版面錯亂...
因此若有先進願意代小弟上傳該份文件,請提供EMAIL給我,我會立即將文件寄出,請您代替我發文
謝謝各位


常見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:\SYSTEM32\Drivers目錄下的以下系統檔案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可以對”寫入保護”的隨身碟依然寫入資料,若需要啟用此功能請檢查下列機碼
HKLM\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies
"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. 檢查HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion下的”Device Path”是否為%SystemRoot%\Inf
2. 刪除C:\WINDOWS\inf\infcache.1 (重開機會重建)
檢查下列兩個機碼
HKLM\SYSTEM\SETUP以及
HKLM\SOFTWARE\Microsoft\Factory
不應有”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&ProductID\USB Serial Number

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

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

作業系統可以透過更改Registry機碼,來決定要忽略所有USB裝置的USB Serial Number或是”特定USB裝置的Serial Number”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UsbFlags]
在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
USBSTOR\DISK&VEN_ST980815&PROD_A&REV_3.AL\0&0
類型為USB 磁碟Seagate公司 型號為ST980815的硬碟 韌體為3.AL
USBSTOR\DISK&VEN_FUJITSU&PROD_MHV2080AH&REV_0000\123456789012&0
類型為USB 磁碟Fujitsu公司 型號為MHV2080AH的硬碟
IDE\DISKFUJITSU_MHT2060AH_______________________006C____\5&29AFC1B&0&0.0.0
類型為IDE 磁碟 Fujitsu公司 型號為MHT2060AH的硬碟
 

ST-15K.3

我是恐龍..
已加入
9/18/03
訊息
21,569
互動分數
26
點數
48
年齡
45
網站
www.coolaler.com
好文! 辛苦了
 

K!llmyB@ll

一般般會員
已加入
6/14/06
訊息
178
互動分數
0
點數
0
年齡
42
的確是好文 , 常遇到類似問題 , 但是都放棄處理 , 要不就叫客人花錢 ~~~

學到了 ~~
 

gordon3210

逢いたいよ
已加入
5/15/07
訊息
654
互動分數
0
點數
0
年齡
47
真是讚
雖然目前都沒遇到什麼大問題
推一下
 

jwz062

初級會員
已加入
5/17/07
訊息
3
互動分數
0
點數
0
先複製下來
以後再看
謝謝...
 

lgs0809

大海管理 員
已加入
7/11/06
訊息
3,279
互動分數
0
點數
36
很棒的文章,又增長知識了。;cheer2;
 

peter37

小監工
已加入
10/11/03
訊息
228
互動分數
0
點數
16
usb的隨身碟問題比較少
但2.5"隨身碟就很多小問題
常常插來插去都找不到
感謝樓主分享
 

rx93

一般會員
已加入
8/9/04
訊息
170
互動分數
0
點數
16
實用的經驗教學

辛苦樓主了
 

mjsonxx

初級會員
已加入
8/25/05
訊息
10
互動分數
0
點數
0
usb的隨身碟問題比較少
但2.5"隨身碟就很多小問題
常常插來插去都找不到
感謝樓主分享

關於這個問題依照我個人的經驗告訴您

1.隨身碟為什麼問題較少,因為其使用NAND FLASH快閃記憶體作為媒介,電子式的存取架構加上耗電量低,應該沒看過雙頭USB拇指碟吧?
2.2.5吋的硬碟其屬於機械式架構,裡面有馬達要驅動,耗電量當然較高出許多一般搭配外接盒都會附上雙頭Y型的USB傳輸線材,一粗一細..粗線為主要供電來源,細線為輔助供電用...就像有些好一點約400-600元的USB HUB有附贈一各變壓器意思是一樣的,主要就是供電不足時可以輔助電
因此若2.5吋的隨身硬碟出問題,供電不足最常出現兩種錯誤訊息
1.USB連接埠爆衝 2.WINDOWS延遲寫入失敗 .....尤其在傳送大檔案或資料量大時,由於硬碟啟用DMA功能會將資料先寫入Buffer,造成電力更加吃緊,因此切記把握下列原則就可以避免很多問題

1.儘可能將外接硬碟插在"主機後方的主機板上的USB埠" 而不要插在"機殼的前置USB埠"
2.養成兩頭線都插上的習慣
3.若是NB只有2組USB PORT(左右各一組),那麼建議可以透過依各USB HUB+變壓器 然後將外接硬碟接上(當然兩頭都要接上)在進行傳輸資料

在實務經驗裡面,我曾經碰過一顆Fujitsu的2.5吋硬碟,一插上usb電源(當時我只插粗線),就發生咖咖的壞軌聲音,嚇死我了.....後來我才發現是電源供應不足所惹的禍....只要將兩頭都插上就ok了

所以以上提供碰到這樣問題的朋友參考
 

louisYang

進階會員
已加入
5/16/04
訊息
97
互動分數
0
點數
0
年齡
46
關於這個問題依照我個人的經驗告訴您

1.隨身碟為什麼問題較少,因為其使用NAND FLASH快閃記憶體作為媒介,電子式的存取架構加上耗電量低,應該沒看過雙頭USB拇指碟吧?
2.2.5吋的硬碟其屬於機械式架構,裡面有馬達要驅動,耗電量當然較高出許多一般搭配外接盒都會附上雙頭Y型的USB傳輸線材,一粗一細..粗線為主要供電來源,細線為輔助供電用...就像有些好一點約400-600元的USB HUB...


想請問y拍上有些ide-to-usb轉接裝置
強調是2.5A的變壓器,但仍是單頭型的傳輸線材
較大安培的變壓器可以彌補單頭型的線材嗎
還是說仍建議用雙頭Y型
 
▌延伸閱讀