用udev自动挂载usb设备

转载自:http://maskray.me/blog/2011-08-12-udev-automount-usb

代码如下:

KERNEL!="sd[b-z]?", GOTO="automount_exit"
ACTION=="add", SUBSYSTEM=="block", RUN+="/bin/mkdir /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}", RUN+="/bin/mount -o uid=1000,user,codepage=936,utf8 $root/%k /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}"
ACTION=="remove", SUBSYSTEM=="block", RUN+="/bin/umount /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}", RUN+="/bin/rmdir /media/%E{ID_FS_LABEL}-%E{ID_FS_UUID}"
LABEL="automount_exit"

保存为 /etc/udev/rules.d/ 下的某个文件。

第一行用 glob 跳过名称非 sd[b-z]? 字样的。

%E{ID_FS_LABEL} 是卷标,%E{ID_FS_UUID} 是 UUID,第二行就是检测 add 事件,先根据卷标和 UUID 在 /media/下创建一个目录然后挂载。

第三行是相应的卸载命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
udev是一个Linux内核的设备管理器,可以监控设备的插拔事件,并根据自定义规则执行相应操作。在使用udev自动挂载U盘时,可以通过以下步骤实现: 1. 创建一个udev规则文件: 在终端中运行命令 `sudo nano /etc/udev/rules.d/10-usb-mount.rules`,创建一个名为“10-usb-mount.rules”的文件,并在其中添加以下内容: ``` ACTION=="add", KERNEL=="sd*", SUBSYSTEMS=="usb", RUN+="/usr/bin/mount /dev/%k /mnt/usb" ACTION=="remove", KERNEL=="sd*", SUBSYSTEMS=="usb", RUN+="/usr/bin/umount /mnt/usb" ``` 这个规则文件的意思是,当一个USB设备插入系统时,如果它的内核名称是“sd*”(通常U盘的名称为“sda”、“sdb”等),同时它的子系统是“usb”,那么udev将会自动执行挂载命令“/usr/bin/mount /dev/%k /mnt/usb”来将设备挂载到“/mnt/usb”目录下。当USB设备被拔出时,udev自动执行卸载命令“/usr/bin/umount /mnt/usb”。 2. 重新加载udev规则 在终端中运行命令 `sudo udevadm control --reload-rules`,重新加载udev规则。 3. 插入U盘 现在,你可以插入一个U盘,udev将会自动识别它并将其挂载到“/mnt/usb”目录下。你可以在这个目录中访问U盘的内容,就像在文件系统中访问一般的目录一样。 需要注意的是,在使用udev自动挂载U盘时,你需要确保挂载目录(在这个例子中是“/mnt/usb”)已经存在,并且具有可写权限。如果目录不存在,你可以通过运行命令 `sudo mkdir /mnt/usb` 来创建它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值