2011年8月27日 星期六

virtualbox 使用 USB 裝置

2012-12-16 更新

  • 現在 (4.x 版) 似乎無需做任何設定, 只要有裝 Oracle VM VirtualBox Extension Pack, 在 VirtualBox 視窗右下角按 USB 的圖示, 再點目標裝置, 即可加入或移除該裝置
  • 同一時間只有 host 或 guest 可擁有該裝置, 所以從 guest OS 移除, 相當於接回 host OS
  • 目前 VirtualBox 只支援 USB 2.0 的插槽, 若偵測不到時, 注意一下是否為這個問題
  • 有時拔拔插插, VirtualBox 會進入奇怪的狀態, 接上去 guest OS 無法連接且跳出 device is busy 的錯誤訊息。試看看拔除該裝置, 重開 guest OS
  • (續上則) 若重開 guest OS 無效, 並且 host OS 已移除該裝置, VirtualBox 的 USB 清單卻仍顯示 "captured", 試看看拔除該裝置, 重開 host OS

原文

網路上搜一下, 比較多是 Ubuntu 當 host 的解法, 我的情況是 Win7 當 host, Ubuntu 當 guest。

這兩篇說明很詳細

現在的版本圖形介面很好用了, 不用像第二篇說的那樣用指令操作。這裡記下我的操作步驟:

  1. 關掉 guest OS
  2. 在 VirtualBox 選單, 選擇 guest OS -> Settings -> USB -> Enable USB 2.0
  3. 會出現訊息框, 說明要安裝 Oracle VM VirtualBox Extension Pack。下載後安裝它
  4. host OS 插入 USB 隨身碟
  5. 在 VirtualBox 選單, 選擇 guest OS -> Settings -> USB, 點右邊有綠色 "+" 的 USB 頭的圖示, 選擇該 USB 隨身碟, 加入它的 filter
  6. 從 host OS 移除 USB 隨身碟
  7. 開啟 guest OS
  8. 插入 USB 隨身碟, 於是 guest OS 會自動偵測隨身碟, 掛到 "/media/USB DISK"

相關查看的指令:

  • 用 sudo fdisk -l 查看所有硬碟裝置, 我的情況是, 原本只有 /dev/sda, 隨身碟自動掛上去後, 多了 /dev/sdb。另外 ls -l /dev/disk/by-id 可看到 USB 隨身碟的名稱, 用 soft link 連到 /dev/sdb。
  • lsusb 列出 USB bus 資訊, 不清楚還能查什麼。裝完 Extension Pack 後多了 Linux Foundtation 2.0 root hub, 原本只有 1.1
  • 之後可自己用 sudo umount ... 和 sudo mount /dev/sdb1 SOME_DIR 來掛載和移除 USB 隨身碟

備註

  • 加好 USB filter 後, 插入該 USB 隨身碟都是掛到 guest OS, 若要將它掛到 host OS, 大概要關掉 guest OS, 等有需求時再看看怎麼處理較好
  • 加入 USB filter 時, 我一開始是先點藍色的 "o" 圖示, 加入一個空的 filter。原本猜說是全部放行的意思, 不過試了以後, 在插入 USB 隨身碟時, Win7 就當了

1 則留言:

  1. 感謝教學,依法測試,成功在Guest OS 抓到隨身硬碟。

    回覆刪除

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...