admin 管理员组

文章数量: 887021


2024年3月7日发(作者:format里面可以带什么)

Linux 下U盘自动挂载

--------刘泽

我们经常需要在Linux下挂载U盘,以实现copy功能,常规的手动U盘挂载方法如下。

su模式下

先在/mnt 目录下新建一个文件夹,命名为usb,此文件夹是我挂载usb的地方。挂载地址可以不唯一。

#mkdir /mnt/usb

然后挂载:

#mount -t vfat /dev/sda /mnt/usb

倘若出现错误,我么可以首先fdisk –l。查看U盘在Linux下的设备名字。然后具体修改/dev/sda。不同的设备可能有差异。

然而很多时候,手动挂载非常不方便,为了提高效率,整合网络资源,给出一种相对简单的U盘自动挂载的方法。

做法非常简单,只需要添加udev规则,便可以实现U盘的自动挂载,并且支持热插拔,首先在目录/etc/udev/rules.d下创建。输入以下脚本文件:

Shell代码如下:

1. KERNEL=="sd[b-z]", NAME="%k", SYMLINK+="usbhd-%k", GROUP="users", OPTIONS="last_rule"

2. ACTION=="add", KERNEL=="sd[b-z][0-9]", SYMLINK+="usbhd-%k", GROUP="users", NAME="%k"

3. ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mkdir -p /media/usbhd-%k"

4. ACTION=="add", KERNEL=="sd[b-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,utf8=true,codepage=936,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/%k /media/usbhd-%k", OPTIONS="last_rule"

5. ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/mount -t auto -o rw,locale=zh_-8,noauto,sync,dirsync,noexec,nodev,noatime /dev/%k /media/usbhd-%k", OPTIONS="last_rule"

6. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/umount -l /media/usbhd-%k"

7. ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rm -rf /media/usbhd-%k", OPTIONS="last_rule"

经测试支持自动挂载VFAT格式的U盘,并能正确显示包含中文的文件名,其它文

件格式未测试。默认挂载到/media/usbhd-sdb1文件夹上,只是U盘名字可能有差异,读者可以自行查看具体名字。

我的U盘信息显示如下:U盘名字为E0B2-46DF。


本文标签: 挂载 U盘 自动 名字