当挂载点存在于 /media/user 下时,避免在 USB 磁盘分区标签/UUID 中添加数字

当挂载点存在于 /media/user 下时,避免在 USB 磁盘分区标签/UUID 中添加数字

我正在使用 Ubuntu 23.04,我假设 Ubuntu 使用 autofs 自动挂载。我不熟悉 autofs 配置。

当我通过 USB 连接带标签的外部驱动器时,它们会根据 中的标签自动挂载/media/user/label。但是,如果/media/user/label已经存在(未挂载任何内容 - 空目录),它会挂载在 上/media/user/label1

这不是我想要的。如果这些旧的挂载点存在,我希望按原样使用它们。

这是可行的配置吗?如果不行,我宁愿它失败并且不安装任何东西。

答案1

有足够的解释@vanadium 的回答以及这个答案... 所以,我在这里提供一个解决方法... UDEV 规则可以自动检查并删除挂载点(如果它存在于下)/media/user

基本上,您可以/etc/udev/rules.d/像这样创建一个文件:

sudo nano /etc/udev/rules.d/70-label.rules

并使其有效某个用户,在其中添加这两行,并将user这两行更改为所需的用户名,例如您的用户名:

ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rmdir /media/user/%E{ID_FS_LABEL}"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/rmdir /media/user/%E{ID_FS_UUID}"

或使其有效全部用户,请添加以下两行:

ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/sh -c '/bin/rmdir /media/*/%E{ID_FS_LABEL}'"
ACTION=="add", KERNEL=="sd[b-z][0-9]", RUN+="/bin/sh -c '/bin/rmdir /media/*/%E{ID_FS_UUID}'"

然后保存文件并重新加载 UDEV,如下所示:

sudo systemctl restart udev

这应该适用于标记和未标记的分区/文件系统。

注意:插入带有分区的 USB 磁盘将触发上述规则,并且无论当前登录的用户是谁,上述规则都会运行,并将运行命令,因此root,您可能需要记住这一点,我将其用作/bin/rmdir安全措施,因为它只会删除空目录以及指定的实际路径,所以它应该只删除/media/user...下的目录。还sd[b-z][0-9]假设当您插入第一个 USB 磁盘时,sdb内核会为其命名...但是,如果情况并非如此,并且系统上的命名从 eg 开始,sdc因为您的机器中有多个硬盘,则sd[c-z][0-9]出于性能原因将其更改为 eg。

答案2

不,这不是一个可行的配置。原则上,旧的挂载点不应该存在:每当自动挂载的可移动驱动器被移除时,旧的挂载点也会被自动移除。

因此,首先,移除 USB 驱动器,然后删除仍然存在的旧挂载点。然后重新连接 USB 驱动器:挂载点现在将以您期望的名称重新创建。

如果您确保小心地断开驱动器,或者在移除驱动器之前正确关闭系统,则每次的挂载点都应自动删除。

如果您采取了这些预防措施,但仍然看到问题,则可能是其他问题正在发生。如果找不到原因,则解决方法可能是在启动时自动删除该挂载点。

相关内容