Dai un'occhiata al 'Passthrough USB | Uso della sezione Libvirt di questa pagina dal wiki di Edubuntu. Maggiori informazioni qui e qui .
Se non hai mai intenzione di collegare a caldo / scollegare l'unità USB mentre il guest è in esecuzione, puoi anche provare ad aggiungere una sezione come
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
nel file di definizione XML della VM. Basta cambiare lo sviluppatore sorgente in modo che corrisponda a ciò che è stato assegnato al tuo usb quando è stato collegato. Tuttavia, non è possibile garantire che l'assegnazione degli dev del usb sopravviverà al riavvio se vengono aggiunti o rimossi altri dispositivi, quindi consiglierei l'approccio nel primo link sopra invece.
Nel caso in cui il collegamento scompaia, ecco la sezione passthrough USB pertinente dei documenti collegati:
Usando Libvirt
acceso un vm preesistente
virsh start maverick2
collegato a una chiavetta USB
trovato l'indirizzo usb utilizzando lsusb
, che mi ha dato
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
definito un file xml con le informazioni sul dispositivo:
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x1058'/>
<product id='0x1023'/>
</source>
</hostdev>
passato l'unità USB alla VM
sudo virsh attach-device maverick2 /tmp/a.xml
TUTTAVIA questo non funziona con apparmor abilitato. È necessario disabilitare apparmor o aggiungere
/dev/bus/usb/*/[0-9]* rw,
a /etc/apparmor.d/libvirt-qemu
(che offre a tutti gli ospiti pieno accesso ai dispositivi host fisici) o a
/etc/apparmor.d/libvirt/libvirt-<uuid>
che darà l'accesso a un solo ospite. (Grazie a jdstrand per l'aiuto nel chiarire le cose.)
address
elemento. Quando si utilizza il fornitore e il prodotto, non è possibile montare 2 unità USB uguali. Passerebbe solo attraverso il primo.