USB 闪存驱动器拔出时的 UDEV 规则

bak*_*ytn 5 udev

我编写了一条规则来将我的 USB 记忆棒自动挂载到某个文件夹,但是当我拔下它时,该文件夹仍然挂载,当我ls在那里时,我看到很多错误,例如:Directory bread (block: NNNN) failed

我尝试使用

SUBSYSTEM=="block", ACTION=="remove", RUN+="/bin/umount /media/disk"
Run Code Online (Sandbox Code Playgroud)

它不起作用。

我的安装规则看起来像

SUBSYSTEM=="block", ACTION=="add", RUN+="/bin/mount -t vfat <options> /dev/%k /media/disk"
Run Code Online (Sandbox Code Playgroud)

J. *_*ker 3

我已经在网络上看到了这种有缺陷的方法,并且它的范围太通用,正如之前的答案所提到的。动态性也不够,如果插入多个USB设备怎么办?这个问题很常见,解决方案也已经存在。您没有提到您的发行版,所以我无法告诉您哪些脚本可以打包。无论如何我都会提到它们,因为它们会向您展示更好的方法,您总是可以借用适用的部分。

首先,您应该真正考虑查看udisks,如果您使用完整的 DE,您可能只需要单独使用它。仅适用于 WM...一个伟大的项目取代了已弃用的 HAL,并使用udisks称为udisks-glue.

如果您仍然决定不使用udisks,请查看udev名为 的脚本uamGentoo 有一个 ebuild,否则请查看GitHub Bitbucket的源代码。

值得一提的是,Arch 在他们的Wiki中还有很多很棒的 USB 自动挂载udev示例

这些选项中的任何一个都将是实现此目的的轻量级方法,并且实现完整、范围特定并经过副作用测试。