(二十)基于Udev机制的U盘自动挂载

学习日志(二十)

简单介绍手动U盘挂载

查看设备类型:

指令:

dmesg

能看到插入设备的内核名称为‘“sda1”

如图:

请添加图片描述

并且设备文件dev下面也有:

请添加图片描述

注意:有时候也会变成sdb1:

如图:

请添加图片描述

同样设备文件dev下也有:

如图:

请添加图片描述

可以手动挂载U盘到/mnt文件下面(当然也可以挂载到其他文件夹下面):

指令:

sudo mount /dev/sdb1 /mnt

成功:

请添加图片描述

详细自动U盘挂载

规则文件介绍

规则文件是 udev 里最重要的部分,默认是存放在 /etc/udev/rule.d/ 下。所有的规则文件必须以".rules" 为后缀名

如图:

请添加图片描述

下面是一个简单的规则:

KERNEL==“sda1”, NAME=“my_root_disk”, MODE=“0660”

KERNEL 是匹配键,NAME 和 MODE 是赋值键。这条规则的意思是:如果有一个设备的内核名称为sda1,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为my_root_disk 的设备文件,并把设备文件的权限设为 0660。

如何修改规则:

比如之前写的手机规则:

SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",MODE="0666"

借助dmesg查看设备规则,进行修改

请添加图片描述

可以改成:

SUBSYSTEM=="usb",ATTRS{idVendor}=="339b", ATTRS{idProduct}=="107d",MODE="0666"

引入查看设备规则指令和规则定义

查看设备规则指令:

 udevadm info --attribute-walk --name=/dev/设备名字

Udev 规则的匹配键

ACTION:事件(uevent)的行为,例如:add(添加设备)、remove(删除设备);

KERNEL:内核设备名称,例如:sda,cdrom;

DEVPATH:设备的 devpath 路径;

SUBSYSTEM:设备的子系统名称,例如:sda 的系统为 block;

BUS:设备在 devpath 里的总线名称,例如:usb;

DRIVER:设备在 devpath 的设备驱动名称,例如:ide-cdrom;

ID:设备在 devpath 里的识别号;

SYSFS{filename}:设备的 devpath 路径下,设备的属性文件 “filename” 里的内容;

ENV{key}:环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键;

PROGRAM:调用外部命令;

RESULT:外部命令 PROGRAM 的返回结果

实战U盘自动挂载

查看内核识别的设备

指令:

dmesg

请添加图片描述

调用查看设备规则指令:

 udevadm info --attribute-walk --name=/dev/sda1

可以查看到规则:
SUBSYSTEMS==“block”
SUBSYSTEMS==“usb”

请添加图片描述

请添加图片描述

基于以上规则,编写U盘自动挂载的Udev规则文件:

先打开在rules.d下面建立upan.rules文件:

指令:

sudo vi /etc/udev/rules.d/upan.rules

写入:

注意写入规则的格式(尤其空格)

ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir/media/%k" ,RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode /media/%k"

重启Udev服务

指令:

sudo service udev restart

拔插U盘
输入指令:

ls /media/sda1

请添加图片描述
注意有时候生成的文件是sdb1噢!!!

或者

输入指令:

cd /media
ls
tree

请添加图片描述

上面用到的tree,可以用指令安装:

sudo apt-get install tree
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小爪.exe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值