Sprawdź „USB passsthrough | Korzystanie z sekcji Libvirt tej strony z wiki Edubuntu. Więcej informacji tutaj i tutaj .
Jeśli nigdy nie planujesz podłączać / odłączać dysku USB podczas pracy gościa, możesz również spróbować dodać sekcję
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/sdb'/>
<target dev='sdb' bus='scsi'/>
</disk>
do pliku definicji xml maszyny wirtualnej. Po prostu zmień źródłowy program dev, aby pasował do tego, który został przypisany do twojego usb, gdy był podłączony. Jednak nie możesz zagwarantować, że przypisanie usb przetrwa restart, jeśli inne urządzenia zostaną dodane lub usunięte, więc polecam podejście w zamiast tego pierwszy link powyżej.
W przypadku, gdy link zniknie, oto odpowiednia sekcja przejściówki USB połączonych dokumentów:
Korzystanie z Libvirt
wystrzelił wcześniej istniejącą maszynę wirtualną
virsh start maverick2
podłączony do napędu USB
znalazł adres USB przy użyciu lsusb
, co mi dało
{{ Bus 002 Device 006: ID 1058:1023 Western Digital Technologies, Inc. }}}
zdefiniował plik xml z informacjami o urządzeniu:
<hostdev mode='subsystem' type='usb'>
<source>
<vendor id='0x1058'/>
<product id='0x1023'/>
</source>
</hostdev>
przekazał dysk USB do VM
sudo virsh attach-device maverick2 /tmp/a.xml
JEDNAK to nie działa z włączonym Apparmor. Musisz albo wyłączyć zbroję, albo dodać
/dev/bus/usb/*/[0-9]* rw,
do /etc/apparmor.d/libvirt-qemu
(który daje wszystkim gościom pełny dostęp do fizycznych urządzeń hosta) lub do
/etc/apparmor.d/libvirt/libvirt-<uuid>
co da tylko jednemu gościowi dostęp. (Podziękowania dla jdstrand za pomoc w zrozumieniu tego.)
address
elementu. Podczas korzystania z dostawcy i produktu nie mogłem zamontować 2 takich samych napędów USB. Przejdzie tylko przez pierwszy.