在 Linux 中自动挂载设备的方法不断变化,谷歌搜索返回了相当多的解决方案,对现代基于 systemd 的机器具有不同程度的适用性。
似乎存在以下方法:
/etc/fstab以通过 UUID/标签/设备添加每个驱动器的安装。udev 规则(显然“原始规则”可能与现有的 systemd 策略冲突)thunar+thunar-volman包,或nautilus在 Gnome 中使用gnome-volume-manager包自动挂载(显然它们依赖udisks)。选择可能是压倒性的,目前尚不清楚哪种方法是推荐的。此外,似乎不同的自动挂载子系统可能会相互冲突,导致分区由一个工具挂载,然后在几秒钟内被另一个工具自动卸载。
对于具有桌面环境的系统,这很简单,因为它们中的大多数会自动处理 USB 挂载,因此除了在设置中启用自动挂载选项外,不需要额外的操作。
对于主要在文本模式下运行的无头系统,当前的方法是什么?
所有我发现的选项摆弄后usbmount,以(几乎)刚刚工作后,我编辑 /lib/systemd/system/systemd-udevd.service和改变MountFlags=slave,以MountFlags=shared在描述这个问题(???? UPDATE:对于最近的systemd版本PrivateMounts=no,而应使用!)。无需手动向任何配置文件添加任何 UUID 或标签。缺点是它创建的挂载点/media/usbN并不完美,所以我已经切换到automount-usb非常容易设置(只需运行configure.sh脚本)并创建挂载文件夹,/media/<device>_<disk_label>例如像/media/sda2_mylabel(???? UPDATE :automount-usb似乎不可维护)。
相关链接:
与我针对Windows和Mac OS X 的问题类似,如何为 Linux 创建注销脚本?
任何发行版都可以,因为我确信它可以扩展到其他发行版。不过,我最熟悉 RHEL/CentOS/Fedora 和 Ubuntu。
另外,
如果这对于图形登录(即在 lcoal 工作站)和远程登录(例如 via ssh)都存在,那将是理想的 - 但如果两者都不可能,我会选择其中之一。
通常,当我将外部 USB 驱动器连接到我的 Ubuntu 系统时,其上的文件系统会自动挂载到 /media/ label。但是,我希望将文件系统安装在我选择的安装点上。我在/etc/fstab 中添加了这样的一行:
UUID=2BE905C238C1F724 /p ntfs-3g defaults 0 0 # Passport 320GB
Run Code Online (Sandbox Code Playgroud)
这允许我通过运行sudo mount /p在/p手动挂载卷,但是当驱动器连接到 PC 时,文件系统不再自动挂载。如果可能的话,我需要做什么才能让自动挂载到这个挂载点工作?
有没有办法在 Linux 中提供 post-mount 和 pre-umount 脚本?
我正在尝试在安装时和卸载之前在存储介质上执行一些脚本(例如,用于同步)。
任何帮助表示赞赏。
Ubuntu 服务器 9.10
我知道使用该mount命令,您可以使用-L按标签挂载,如下所示:
mount -L thelabel /media/themount
Run Code Online (Sandbox Code Playgroud)
有没有类似的方法来设置 Automount / Autofs 以按标签名称安装?