使用Udev设置U盘自动挂载
记录操作方法
UDEV规则配置
- 挂载规则
内容如下vim /etc/udev/rules.d/11-add-usb.rules
ACTION!="add",GOTO="farsight" KERNEL=="sd[a-z][0-9]",RUN+="/opt/usb/mountusb.sh %k" KERNEL=="sd[a-z]",RUN+="/opt/usb/mountusb.sh %k" LABEL="farsight"
- 卸载规则
内容如下vim /etc/udev/rules.d/11-remove-usb.rules
ACTION !="remove",GOTO="farsight" KERNEL=="sd[a-z][0-9]",RUN+="/opt/usb/umountusb.sh %k" LABEL="farsight"
创建挂载卸载脚本
- 挂载
如下vim /opt/usb/mountusb.sh
#!/bin/bash if [ x$1 != x ];then if [ ! -d "/mnt/usbdisk/$1" ];then mkdir -p /mnt/usbdisk/$1 fi mount -t vfat /dev/$1 /mnt/usbdisk/$1 sync fi
- 卸载
如下vim /opt/usb/umountusb.sh
#!/bin/bash sync if [ x$1 != x ];then if [ -d "/mnt/usbdisk/$1" ];then umount /mnt/usbdisk/$1 fi fi
3.附上自动脚本
#!/bin/bash -x
set -e
if [ ! -d "/etc/udev/rules.d" ];then
echo "no found '/etc/udev/rules.d'"
exit 0
fi
cat << ADD > 11-add-usb.rules
ACTION!="add",GOTO="farsight"
KERNEL=="sd[a-z][0-9]",RUN+="/opt/usb/mountusb.sh %k"
KERNEL=="sd[a-z]",RUN+="/opt/usb/mountusb.sh %k"
LABEL="farsight"
ADD
cat << ADD > 11-remove-usb.rules
ACTION !="remove",GOTO="farsight"
KERNEL=="sd[a-z][0-9]",RUN+="/opt/usb/umountusb.sh %k"
LABEL="farsight"
ADD
cat << mount > mountusb.sh
#!/bin/bash
if [ x\$1 != x ];then
if [ ! -d "/mnt/usbdisk/\$1" ];then
mkdir -p /mnt/usbdisk/\$1
fi
mount -t vfat /dev/\$1 /mnt/usbdisk/\$1
sync
fi
mount
cat << umount > umountusb.sh
#!/bin/bash
sync
if [ x\$1 != x ];then
if [ -d "/mnt/usbdisk/\$1" ];then
umount /mnt/usbdisk/\$1
fi
fi
umount
if [ ! -d "/opt/usb" ];then
mkdir -p /opt/usb
fi
mv 11-add-usb.rules /etc/udev/rules.d
mv 11-remove-usb.rules /etc/udev/rules.d
mv mountusb.sh /opt/usb && chmod +x /opt/usb/mountusb.sh
mv umountusb.sh /opt/usb && chmod +x /opt/usb/umountusb.sh