linux下的U盘自动挂载

liuruigege 2018-01-10 10:15:16
这几天在探索Linux下U盘自动挂载,经过自己在网上查找相关资料,得知Linux的桌面系统会实现U盘的自动挂载功能,但是在命令行界面就需要使用mount命令手动挂载之后U盘才可用。要想在命令行界面下自动挂载,就需要使用udev,在经过对udev的了解后,作出如下探索:
1)编写udev规则文件,保存于/etc/udev/rules.d目录下:
 SUBSYSTEM=="block",KERNEL=="sd[b-z]1",ACTION=="add",NAME="liurui",SYMLINK="LIURUI",RUN+="/bin/bash /root/usbmount.sh"
SUBSYSTEM=="block",KERNEL=="sd[b-z]1",ACTION=="remove",RUN+ ="/bin/bash /root/usbumount.sh"

2)编写两个脚本usbmount.sh和usbumount.sh:
    #!/bin/bash
if [ ! -e /mnt/usb ];then
mkdir -p /mnt/usb
fi
until [ -e /dev/LIURUI ];do
sleep 1s
done
sudo mount /dev/LIURUI /mnt/usb
echo "mount" >> /var/log/mount


  #!/bin/bash
fuser -km /mnt/usb
rm -rf /dev/sdb1
sudo umount /mnt/usb
rm -rf /mnt/usb
echo "umount" >> /var/log/mount


保存文件后,插入U盘,创建或删除/mnt/usb可以实现,写入/var/log/mount文件也可以实现,但就是实现不了shell脚本中的mount和umount命令,即不能实现自动挂载。到底如何才能实现命令行下的自动挂载?
还有一种现象,就是手动挂载后,再直接拔掉U盘,就会提示FAT: Directory bread(block 13) failed,现在不清楚这到底是为什么,希望得到大佬指点。
...全文
1836 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
打码归来 2018-10-24
  • 打赏
  • 举报
回复
你这个应该是没有给脚本usbmount.sh和usbumount.sh增加权限。
可以试一下
rjw_999 2018-01-22
  • 打赏
  • 举报
回复
我也搞过自动挂载,你装一下udevil这个软件包,就可以实现自动挂载
mz454619501 2018-01-21
  • 打赏
  • 举报
回复
尝试执行一次mdev
听雨楼Leeon 2018-01-11
  • 打赏
  • 举报
回复
udev只是实现一个映射的功能吧,我记得我以前的自动挂载都是用C写的,比较笨,检测/dev下的设备节点,检测到就尝试mount。当然用shell也能实现。

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧