Eu quero configurar uma regra do udev para ser executada toda vez que eu conectar uma unidade USB que conectará a unidade USB para conectar a uma VM no VirtualBox. A regra do udev funciona para conectar uma unidade USB a uma VM em execução, mas apenas uma vez por inicialização. Alguém por favor me ajude. Eu tenho o em /etc/udev/rules.d/10-usbmount.rules
:
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/usr/bin/vbox-automount-usb"
E isso em /usr/bin/vbox-automount-usb
:
#!/bin/bash
set 'lsusb -d ${ID_VENDOR}:${ID_MODEL}| sed 's/:.*//g''
while [ ! -z "" ]; do
case in
Bus) shift
busdevice=""
;;
Device) shift
busdevice=${busdevice}"/"
;;
esac
shift
done
if [ ! -z "$busdevice" ]; then
address=$(VBoxManage list usbhost | grep "Address:" | grep $bus device | sed -e 's/Address://' -e 's/^[ \t]*//')
if [ ! -z "$address" ]; then
su - guestos -c "VBoxManage controlvm guestos_0001 usbattach $address"
fi
fi
EDITAR:
Eu posso fazer o /etc/udev/rules.d/10-usbmount.rules
funcionar também alterando-o para:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", RUN+="/usr/bin/vbox-automount-usb"
Mas ainda monta um USB no VirtualBox pela primeira vez
EDITAR: A mesma coisa AINDA acontece quando se usa
su - guestos -c "VBoxManage controlvm guestos_0001 usbattach 'VBoxManage list usbhost | grep "Address:" | grep $bus device | sed -e 's/Address://' -e 's/^[ \t]*//''"
Para /usr/bin/vbox-automount-usb