Lihat 'USB passthrough | Menggunakan bagian Libvirt halaman ini dari wiki Edubuntu. Info lebih lanjut di sini dan di sini .
Jika Anda tidak pernah berencana untuk plug panas / cabut USB drive saat tamu sedang berjalan Anda juga dapat mencoba menambahkan bagian seperti
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
ke file definisi xml VM Anda. Cukup ganti sumber dev untuk mencocokkan apa yang ditugaskan ke usb Anda ketika dicolokkan. Namun, Anda tidak dapat menjamin tugas dev usb akan tetap hidup kembali jika perangkat lain ditambahkan atau dihapus, jadi saya akan merekomendasikan pendekatan di tautan pertama di atas sebagai gantinya.
Jika tautannya hilang, berikut adalah bagian passthrough USB yang relevan dari dokumen yang ditautkan:
Menggunakan Libvirt
meluncurkan vm yang sudah ada sebelumnya
virsh start maverick2
dicolokkan di usb drive
menemukan alamat usb menggunakan lsusb
, yang memberi saya
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
mendefinisikan file xml dengan info perangkat:
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x1058'/>
<product id='0x1023'/>
</source>
</hostdev>
melewati drive usb ke vm
sudo virsh attach-device maverick2 /tmp/a.xml
NAMUN ini tidak bekerja dengan apparmor diaktifkan. Anda harus menonaktifkan apparmor, atau menambahkan
/dev/bus/usb/*/[0-9]* rw,
baik /etc/apparmor.d/libvirt-qemu
(yang memberi semua tamu akses penuh ke perangkat host fisik) atau ke
/etc/apparmor.d/libvirt/libvirt-<uuid>
yang hanya akan memberikan satu tamu yang mengakses. (Terima kasih kepada jdstrand untuk bantuan meluruskannya.)
address
elemen itu. Saat menggunakan vendor dan produk saya tidak bisa memasang 2 drive USB yang sama. Itu hanya akan melewati yang pertama.