为什么此Udev规则仅运行一次
我想设置一个udev规则,每次插入一个USB驱动器时都会运行,该驱动器将连接该USB驱动器以连接到VirtualBox中的VM。 udev规则用于将USB驱动器连接到正在运行的VM,但每次启动只能连接一次。 有人请帮帮我。 我有/etc/udev/rules.d/10-usbmount.rules
:
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", RUN+="/usr/bin/vbox-automount-usb"
这在/usr/bin/vbox-automount-usb
:
#!/bin/bash set `lsusb -d ${ID_VENDOR}:${ID_MODEL}| sed 's/:.*//g'` while [ ! -z "$1" ]; do case $1 in Bus) shift busdevice="$1" ;; Device) shift busdevice=${busdevice}"/$1" ;; 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
编辑:我可以将/etc/udev/rules.d/10-usbmount.rules
更改为:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[az]1", RUN+="/usr/bin/vbox-automount-usb"
但它仍然只是第一次在VirtualBox中安装USB
编辑:使用时仍然发生同样的事情
su - guestos -c "VBoxManage controlvm guestos_0001 usbattach `VBoxManage list usbhost | grep "Address:" | grep $bus device | sed -e 's/Address://' -e 's/^[ \t]*//'`"
对于/usr/bin/vbox-automount-usb