Confira o 'USB passthrough | Usando a seção Libvirt 'de esta página do wiki do Edubuntu. Mais informações aqui e aqui .
Se você nunca planeja conectar / desconectar a unidade usb enquanto o convidado está em execução, você também pode tentar adicionar uma seção como
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
ao arquivo de definição xml da sua VM. Basta alterar o código-fonte para corresponder ao que foi atribuído ao seu usb quando ele foi conectado. No entanto, você não pode garantir que a atribuição de dev do usb sobreviverá à reinicialização se outros dispositivos forem adicionados ou removidos, então eu recomendaria a abordagem no primeiro link acima em vez disso.
Caso o link desapareça, aqui está a seção de passagem USB relevante dos documentos vinculados:
Using Libvirt
fired up a pre-existing vm
virsh start maverick2
plugged in a usb drive
found the usb address usinglsusb
, which gave me{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
defined a xml file with the device info:
<hostdev mode='subsystem' type='usb'> <source> <vendor id='0x1058'/> <product id='0x1023'/> </source> </hostdev>
passed the usb drive to the vmsudo virsh attach-device maverick2 /tmp/a.xml
HOWEVER this does not work with apparmor enabled. You must either disable apparmor, or add
/dev/bus/usb/*/[0-9]* rw,
to either
/etc/apparmor.d/libvirt-qemu
(which gives all guests full access to physical host devices) or to/etc/apparmor.d/libvirt/libvirt-<uuid>
which will give only the one guest that access. (Thanks to jdstrand for help getting that straight.)