ลองดู 'USB สวิง | ใช้ส่วน Libvirt 'ของหน้านี้จาก Edubuntu wiki ข้อมูลเพิ่มเติมที่นี่และที่นี่
หากคุณไม่ได้วางแผนที่จะเสียบปลั๊ก / ถอดไดรฟ์ usb ในขณะที่แขกกำลังใช้งานอยู่คุณสามารถลองเพิ่มหัวข้อเช่น
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
ไปยังไฟล์นิยาม XML ของ VM ของคุณ เพียงแค่เปลี่ยนแหล่งที่มา dev เพื่อให้ตรงกับสิ่งที่ได้รับมอบหมายให้กับ usb ของคุณเมื่อเสียบเข้ากับอย่างไรก็ตามคุณไม่สามารถรับประกันได้ว่าการมอบหมาย dev ของ usb จะยังคงอยู่ในการรีบูตถ้าอุปกรณ์อื่น ๆ ถูกเพิ่มหรือลบออก ลิงก์แรกด้านบนแทน
ในกรณีที่การเชื่อมโยงหายไปนี่คือส่วน passthrough USB ที่เกี่ยวข้องของเอกสารที่เชื่อมโยง:
ใช้ Libvirt
ยิงขึ้น vm ที่มีอยู่ก่อน
virsh start maverick2
เสียบไดรฟ์ usb
พบที่อยู่ usb ที่ใช้lsusb
ซึ่งทำให้ฉัน
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
กำหนดไฟล์ xml ด้วยข้อมูลอุปกรณ์:
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x1058'/>
<product id='0x1023'/>
</source>
</hostdev>
ผ่านไดรฟ์ usb ไปที่ vm
sudo virsh attach-device maverick2 /tmp/a.xml
อย่างไรก็ตามสิ่งนี้ไม่ทำงานเมื่อเปิดใช้งาน apparmor คุณต้องปิดการใช้งานเครื่องมือหรือเพิ่ม
/dev/bus/usb/*/[0-9]* rw,
เพื่อ/etc/apparmor.d/libvirt-qemu
(ซึ่งให้แขกทุกคนสามารถเข้าถึงอุปกรณ์โฮสต์ทางกายภาพ) หรือ
/etc/apparmor.d/libvirt/libvirt-<uuid>
ซึ่งจะให้แขกที่เข้าใช้งานเพียงคนเดียวเท่านั้น (ขอบคุณ jdstrand สำหรับความช่วยเหลือในการทำให้ตรง)
address
องค์ประกอบ เมื่อใช้ผู้จำหน่ายและผลิตภัณฑ์ฉันไม่สามารถเชื่อมต่อไดรฟ์ USB 2 ตัวที่เหมือนกันได้ มันจะผ่านคนแรกเท่านั้น