利用udev自动挂载U盘
时间: 2023-11-27 22:51:10 浏览: 67
在Linux系统中,可以通过udev自动挂载U盘。
1. 首先,需要确定U盘的设备名称,可以使用以下命令查看:
```
sudo fdisk -l
```
2. 创建一个udev规则文件,将以下内容保存为`/etc/udev/rules.d/10-usb-mount.rules`:
```
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/usr/bin/pmount --umask 000 %k"
ACTION=="remove", KERNEL=="sd[b-z][0-9]", RUN+="/usr/bin/pumount %k"
```
3. 重新加载udev规则:
```
sudo udevadm control --reload-rules
```
现在,当插入U盘时,udev会自动识别设备并挂载到`/media`目录下。插拔U盘时,也会自动卸载。
相关问题
利用udev自动挂载U盘失败
出现自动挂载U盘失败的情况可能是因为udev规则没有正确配置,你可以按照以下步骤进行排查:
1. 查看udev服务是否启动,可以通过以下命令进行检查:
```
systemctl status udev.service
```
如果服务没有启动,可以使用以下命令启动:
```
systemctl start udev.service
```
2. 确认udev规则是否正确配置。udev规则的配置文件位于`/etc/udev/rules.d/`目录下,可以使用以下命令查看是否存在规则文件:
```
ls /etc/udev/rules.d/
```
如果不存在规则文件,可以手动创建一个规则文件,例如命名为`10-usb.rules`,并将以下内容复制到文件中:
```
ACTION=="add", KERNEL=="sd[b-z]", SUBSYSTEM=="block", RUN+="/bin/mount /dev/%k /mnt/usb"
ACTION=="remove", KERNEL=="sd[b-z]", SUBSYSTEM=="block", RUN+="/bin/umount /mnt/usb"
```
以上规则表示当检测到新的块设备插入(`ACTION=="add"`,`SUBSYSTEM=="block"`),并且设备名称以`sdb`到`sdz`之间的字母开头(`KERNEL=="sd[b-z]"`),则自动将设备挂载到`/mnt/usb`路径下。
3. 重新加载udev规则。可以使用以下命令重新加载:
```
udevadm control --reload-rules
```
4. 重新插入U盘,如果配置正确,则应该会自动挂载到`/mnt/usb`路径下。
如果以上步骤仍然无法解决问题,则需要进一步排查系统日志或者udev日志,以确定具体的错误原因。
Centos设置udev拔出U盘时自动解除该U盘的挂载
可以通过编写 udev 规则来实现在拔出 U 盘时自动解除挂载。具体步骤如下:
1. 找到 U 盘的设备名,可以通过插入 U 盘后使用命令 `dmesg` 来查看系统提示信息,通常可以看到类似于 `/dev/sdb1` 的设备名。
2. 编写 udev 规则文件,例如 `/etc/udev/rules.d/99-usb-unmount.rules`,文件名可以任意取,但是需要放在 `/etc/udev/rules.d/` 目录下。
3. 在文件中添加如下规则:
```
ACTION=="remove", KERNEL=="sdb1", RUN+="/usr/bin/umount /media/usb"
```
其中,`ACTION=="remove"` 表示当设备被拔出时触发,`KERNEL=="sdb1"` 表示对设备名为 `/dev/sdb1` 的设备进行操作,`RUN+="/usr/bin/umount /media/usb"` 则是执行卸载命令,其中 `/media/usb` 是 U 盘挂载的目录。
4. 保存文件并重启 udev 服务,命令为:
```
systemctl restart systemd-udevd.service
```
此时,当拔出 U 盘时,udev 规则会自动执行卸载命令,解除该 U 盘的挂载。
阅读全文