裝置管理員+DevCon:復原安全移除的 SATA/USB 硬體 ‧ 查詢 Hub 負載

(This legacy article is Chinese-only. Translate it to English.)

有沒有想過,裝置管理員 (Device Manager) 除了安裝驅動程式外還可做甚麼?

Device Manager, 裝置管理員的另一面
  • 錯手移除之 USB/SATA 裝置,無需重插便可復原?
  • 避免 USB Hub 超出負荷?
  • 移除不能移除的驅動程式?
  • 顯示比「隱藏裝置」更隱藏的裝置?

還有...

  • 光碟機消失了,不是硬體故障?
  • 判斷不明裝置有比用 Google 更快的方法嗎?
  • 裝置管理員的命令介面 devcon.exe 可以令到電腦更省電?
  • ...更多

這系列介紹各種用來解決問題的裝置管理技巧。

[2009-12-30 更新] 新增 devcon 用法作對比。

本篇目錄:

  1. 介紹「裝置 (依連線)」檢視模式 — 找出硬碟駁在哪個控制器
  2. 「依連線」的實用技 — 已安全地移除的 USB/(e)SATA 裝置,無需重插或重啟就能復原?
  3. 查詢 USB 裝置耗電量 — 避免 USB Hub 超出負荷
  4. 「依資源」查詢裝置 — 找出哪些裝置在共用 IRQ

1. 介紹「裝置 (依連線)」檢視模式

— 找出硬碟駁在哪個控制器

全賴 SSD 加入競爭,現在我們能以低廉的價錢買到海量大小的硬碟。如希望安裝很多硬碟但插槽不足,一般都是加儲存控制卡來解決。但當有朝一日要拆掉其中一個時,面對著一堆硬碟,恐怕已忘掉哪個才是要找的了。

那時可以使用裝置管理員內的「檢視」→「裝置 (依連線)」模式:

Device Manager By Connection

圖中電腦內駁著硬碟的控制器有四個(以 標示)。假設要找出 WD 200G 硬碟,我便知道駁著 Silicon Image Sil 0680 控制卡的那個就是了。用「裝置 (依連線)」檢視模式就可以一目了然。

其實除了硬碟,任何會「纏繞束縛」的裝置都適用。

知多一點:「裝置 (依連線)」模式內所顯示的次序是由隨插即用管理員在開機時所偵測出來的,依照裝置 (devnode) 在電腦中的連線方式來顯示,這結構名為 Device Tree


2. 「依連線」的實用技

— 已安全地移除的 USB/(e)SATA 裝置,無需重插或重啟就能復原?

不知道你有沒有試以下經驗 - 在萬事俱備、千鈞一髮之際,發覺按了...

Safely Remove USB

...按了的並不是想要移取的,而是另一個裝置?例如是掃瞄器,內置式的如讀卡器、熱拔插硬碟或光碟機(eSATA) 等... 那感覺是多麼沮喪...!因為你知道要將掃瞄器帶回來便要重新拔插 USB;將內置式東西帶回來更需要重新開機! 為此,在這裡介紹一個可將移除了的裝置帶回來而無需重新拔插的方法。

i.「檢視」→ ii.「裝置 (依連線)」→ iii. 在黃色符號裝置之上的 USB Hub 按右鍵 → iv.「停用」:

Uninstall USB Hub

(註:每當「安全移除」了裝置而又未拔除,在裝置管理員內都會出現黃色符號。)

重點是,停用了該 USB Root Hub 後,再次按右鍵 →「啟用」,那裝置就會回來了。

eSATA 也可用同一方式弄回來,只不過要將上圖「停用」和「啟用」的 USB Root Hub 改為在該硬碟之上的 ATA Channel。

技巧:對於鍵盤愛好者,想單手移除裝置的,可以製作一個捷徑連到
「control hotplug.dll」,再指定一組快速鍵執行該捷徑即可。

Devcon 方式:進階用者只需一句指令來達至復原的效果:

USB: devcon restart @USB\ROOT_HUB*
eSATA: devcon restart @PCIIDE\IDECHANNEL*

請注意所有的 USB Root Hub 都會重新啟動,所以要確保沒有重要工作在用 USB 進行。至於 eSATA 經測試則沒關係,因為使用中的裝置似乎是不受影響的,所以不會發生 Windows 系統磁區被卸載的情況。

以上的指令利用裝置管理員的命令介面「devcon.exe」(下載),詳細的使用技巧有機會將在別的篇數專題介紹;暫時我會在每個技巧中加插 devcon 的對比做法,先交代其概念。

↓ 檢視命令提示字元範例 ↓

Devcon Restart 指令

3. 查詢 USB 裝置耗電量

— 避免 USB Hub 超出負荷

「一個 USB 的 Hub 最多只能提供 500mA 的電流。如此的電流已足以驅動許多電子設備,不過連接在總線供電 Hub 的所有設備,需要共享 500mA 的電流額度。」 — 維基百科

有沒有使用無外接電源的 USB Hub?如有便要注意所連接的裝置的耗電量合共有沒有超出 500mA 了。

i. 到「檢視」→ ii. 同樣是「裝置 (依連線)」→ iii. 找出 USB Hub 並按右鍵 → iv.「內容」:

Device Manager USB Hub

上圖由「裝置 (依連線)」模式可清晰見到 Generic USB Hub 附於底板內建的 USB Root Hub。

Device Manager USB Hub Power

以上的例子為一普通 USB Hub,插上 Hub 的有兩個裝置,從資訊得知它們合共需要 400mA,並沒超標。

知多一點:USB 3.0 的供電量有所提升,達至 900mA。
(底版生產商 Gigabyte 更將部份新型號提升至 1.5A。)


4. 「依資源」查詢裝置

— 找出哪些裝置在共用 IRQ

在學校工作的兩年,試過一次要為電腦室的二十部 hp Compaq d330 MicroTower 電腦製作映像檔,可能該校資源緊拙,那時 (2007年) 仍在使用 Ghost 7.5 企業版。我發現只有這個型號的電腦在網絡起機時會卡在 DOS 黑色畫面。深入 Google 後發現當它內置的 Broadcom LAN 卡和 SATA 控制器共用同一個 IRQ 便會有問題。(那應是當今難得一見的 IRQ 問題呢!)

i. 到「檢視」→ ii.「資源 (依類型)」:

Devices By Type IRQ Conflict

證實 IRQ 是一樣後,因為是隨插即用裝置,不能在 Windows 內調整 IRQ,需要重新開機進入 CMOS (BIOS) 才能把它們分開。(請注意圖片只作參考)

知多一點:Windows 自 98 開始全面支援 ACPI,只要 BIOS 和裝置支援隨插即用
作業系統可自行調配資源,絕少會有衝突問題。

Devcon 方式:我們可使用 devcon 的 resources 參數,輸入多個裝置 ID 以檢視其資源調配情況。(由於今次包含了保留字符 & 關係,務必要以雙引號包著。)

devcon resources "*VEN_1022&DEV_2000*" "*VEN_80EE&DEV_CAFE*"

↓ 檢視命令提示字元範例 ↓

Devcon Status 指令

感謝閱讀~ 喜歡的話請訂閱支持一下。如欲轉載,包括一條到這頁的連結即可。

第二章預告:

  • 光碟機旁出現黃色感嘆號 — 讀不到光碟竟是軟件問題?
  • 不經解除安裝程式,徹底移除驅動程式 (XP 和 Vista/7 兩個不同的方法)
  • 檢視比「隱藏裝置」更隱藏的裝置
  • 認識裝置識別碼
  • 以 Devcon.exe 命令工具更快的完成上述工作

你有沒有些想知的技巧? 歡迎告知。

Attribution: wandersick's Tech Notes | 2009.12.20 | TN #002


歡迎用以下方式儲存或分享本文:


Comments