歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> KVM客戶機使用主機USB設備

KVM客戶機使用主機USB設備

日期:2017/2/28 14:43:41   编辑:Linux教程

有些時候KVM客戶機還是要使用USB設備,比如USB密鑰等

KVM命令行參數

-usb 打開usb驅動程序,啟動客戶機usb支持
-usbdevice devname 為客戶機增加usb設備,devname有多種形式,詳見man kvm,這裡只涉及一種形式host:vendor_id:product_id,也就是-usbdevce vendor_id:product_id

獲取USB設備參數

將usb設備插入主機之前

$lsusb > usb.old

usb設備插入主機之後

$lsusb > usb.new

然後

vimdiff usb.old usb.new

找到新增加的那一行,類似下面這行

Bus 002 Device 004: ID 13fd:1040 Initio Corporation

ID後面的兩個字段分別是vendor_id和product_id

映射usb設備
客戶機命令行添加這兩個參數
sudo kvm -usb -usbdevice host:13fd:1040 …

這樣客戶機就可以看到映射的USB設備了

小問題

把移動硬盤映射到客戶機做測試,虛擬客戶機竟然無法啟動了,從遠程vnc看一直停留在Booting from Hard Disk…,搜索了下下也無結果,後來靈光一閃,是不是因為移動硬盤成了啟動磁盤?果然如此,修改引導參數如下

-boot order=c,menu=on

這裡增加了menu=on,這樣啟動的時候按F12可以選擇從哪個驅動器啟動,重新啟動,果然看到移動硬盤成了第一個啟動設備,選擇本地硬盤正常啟動系統,從客戶機裡也可以看到移動硬盤。

據了解,現在KVM還沒有命令行參數可以設置從第二塊硬盤啟動,也有人在提這個事情,建議order=e從第二塊硬盤啟動,依次類推。

update:
參數-usbdevice devname映射普通的USB設備有兩種格式,devname可以指定為
host:bus.addr
host:vendor_id:product_id
上面-usbdevice host:13fd:1040指定的是host:vendor_id:product_id這種格式,對於例子中顯示的USB設備,也可以以host:bus.addr格式設定參數
host:2.4
其中2為總線號,4為設備在總線上的地址Bus 002 Device 004,但是使用host:bus.addr這種格式有一個缺點,如果USB設備換一個插口,其總線和設備號會發生變化,而host:vendor_id:product_id這種格式則不受影響,即便客戶機換到另一台主機上跑也是一樣。

update again(09/19/2012):

KVM主機上插了兩個同類型的usb設備,這個兩個usb設備的verdor_id和product_id竟然完全一樣,那只能通過host:bus.addr這種方式為客戶機指定usb設備了,不然kvm主機會不知所措吧。

相關閱讀:

使用 libvirt創建和管理KVM虛擬機 http://www.linuxidc.com/Linux/2012-06/62934.htm

應用Libvirt連接KVM虛擬化平台 http://www.linuxidc.com/Linux/2013-02/79939.htm

Ubuntu下用libvirt安裝KVM虛擬機時找不到/bin/qemu-kvm問題解決 http://www.linuxidc.com/Linux/2013-08/88985.htm

Copyright © Linux教程網 All Rights Reserved