我编写了一条规则来将我的 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)
我已经在网络上看到了这种有缺陷的方法,并且它的范围太通用,正如之前的答案所提到的。动态性也不够,如果插入多个USB设备怎么办?这个问题很常见,解决方案也已经存在。您没有提到您的发行版,所以我无法告诉您哪些脚本可以打包。无论如何我都会提到它们,因为它们会向您展示更好的方法,您总是可以借用适用的部分。
首先,您应该真正考虑查看udisks
,如果您使用完整的 DE,您可能只需要单独使用它。仅适用于 WM...一个伟大的项目取代了已弃用的 HAL,并使用udisks
称为udisks-glue
.
如果您仍然决定不使用udisks
,请查看udev
名为 的脚本uam
。Gentoo 有一个 ebuild,否则请查看GitHub Bitbucket的源代码。
值得一提的是,Arch 在他们的Wiki中还有很多很棒的 USB 自动挂载udev
示例
这些选项中的任何一个都将是实现此目的的轻量级方法,并且实现完整、范围特定并经过副作用测试。