根据磁盘标签自动挂载和卸载 USB 磁盘

根据磁盘标签自动挂载和卸载 USB 磁盘

我运行的是 Kubuntu 12.04 和 KDE 4.11.1。我有一个 2TB 硬盘安装在外部 USB 外壳中。驱动器标签为备份。启动时不会自动安装该驱动器。我希望通过两种方式安装它:

  1. 我有一个 root cron 条目,如果驱动器尚未安装,它将安装该驱动器。这是我的夜间备份脚本的一部分。
  2. 作为普通用户,我可以单击 Dolphin 的位置面板中的驱动器标签,然后该驱动器就会被安装。

以前,驱动器将安装在 /media/Backup 中两个都案件。

我之前手动创建了目录 /media/Backup,它仍然存在。该目录是必需的,以便我的备份脚本可以在备份运行之前挂载此磁盘。正如我所说,在最近的一些系统更新之前,这可以按预期工作。我希望驱动器在上述两种情况下都挂载在同一位置。

但是,随着最近的系统更新(显然是 LTS Raring HWE 堆栈),如果我以普通用户身份从 Dolphin 安装驱动器,驱动器将从 Dolphin 安装到 /media/myusername/Backup。如果我以 root 用户身份安装驱动器,它将安装为 /media/root/Backup。

在我的场景中,这种新的 Ubuntu 方案可能会以各种方式失败。事实上,它经常失败,我的夜间备份也不再发生。我不会列出到目前为止我在故障排除中看到的所有失败方式。我只是想恢复以前的行为对于此磁盘或者在新系统下实现一些可靠的功能。具体来说,我希望看到的是:

  1. 该驱动器在启动时不会安装,除非/直到需要时才会安装。
  2. 无论是由我的普通用户通过 Dolphin 安装还是通过以 root 身份运行的脚本安装,驱动器始终安装在同一位置(因此我的备份脚本可以找到它)。
  3. 如果驱动器尚未安装(即通过 Dolphin),我的备份脚本(以 root 身份运行)能够将其安装在预定位置,然后继续备份。
  4. 挂载驱动器上的文件和目录的文件权限按预期工作

这是我之前在 root crontab 中需要的所有内容。我想让它再次运行。

00 03 * * * mount -L Backup /media/Backup >> /var/log/backup.log
05 03 * * * /opt/storeBackup/bin/storeBackup.pl -f /configfile

我不愿意改变系统范围的默认行为。因此,这个解决方案似乎并不理想:https://askubuntu.com/a/276670/36661(而且我还不知道我是否有支持该解决方案的 udisk 版本)。

我将非常感激对这一可能的解决方案的评论: https://askubuntu.com/a/350399/36661

答案1

我给了这个答案, 哪个可能是最好的方法。但是,还有一个基于 udisks2 的新默认行为的更简单的解决方案。Ubuntu 从 udisks1 切换到 udisks2 最初导致了我的问题。我没有恢复到 udisks1 行为,而是找到了一种利用新默认行为来发挥我的优势的方法。

解决方案的关键在于两个都以下安装(用于同一设备)可以共存:

  • /media/我的用户名/备份
  • /media/root/备份

因此,如果我将备份脚本更改为使用/media/root/Backup并始终在备份之前将设备挂载在该位置,则我的问题就解决了。我可以继续按照现在的方式使用 Dolphin,并且可以接受默认(非根)挂载位置/media/myusername/Backup。它们似乎并不相互冲突。

我一直努力避免为一个设备安装两个挂载点,但在测试此选项后,我发现它似乎工作正常。它解决了我看到的备份问题。

除非有人知道这种方法存在问题,否则它可能是我的首选方法,因为它不会改变新的默认行为,它不依赖于任何脚本(这总是需要随着时间的推移进行维护),并且它确保我的备份不会由于设备未安装而失败。

答案2

听起来你有一个剩余的挂载文件夹没有被正确删除。拔下驱动器后,从终端运行以下命令:

sudo rmdir /media/备份

下次连接外部硬盘时,它应该会挂载到新位置。请注意,较新版本的 Ubuntu 将挂载到 /media/username/Backup,而不是 /media/Backup

答案3

您可以为 HDD/Partitions 添加一个条目,然后/etc/fstab它将始终按照您需要的方式安装。

更多信息请查看本文档

答案4

我认为最好的方法可能是源自超级用户讨论的这个脚本:
https://github.com/fatso83/Code-Snippets/tree/master/system-utils/ubuntu/automount

我喜欢这种方法,因为它已经过相当广泛的调试和测试(并且已知可以在我运行的 Ubuntu 版本上运行)。

此外,我同意 SuperUser 最初提问者的观点:

我不想将所有数据输入到 fstab 中,部分原因是它很繁琐和烦人,但主要原因是我无法预测我将插入什么内容或分区将来会如何变化。

这是该脚本集的自述文件:

根据磁盘标签自动挂载和卸载 USB 磁盘

这些脚本基本上是从 StackOverflow 上的几个答案中摘录的。这些信息分散在几个答案中,有些有点过时,所以我试着把所有的信息汇编起来并放在这里

我们发现这些脚本可以在 Ubuntu 10.10 和 12.04.2 LTS 上运行。如果它们不适合您,请尝试查看原始 SO 讨论中是否有提示(见下文)。然后您可以将该信息传递给我,也许我会将其集成到特定补丁中。

所有脚本都应放在 /usr/local/sbin 中。udev
规则应放在 /etc/udev/rules.d/ 中

供参考,所有信息均摘自这里

相关内容