标签: automounting

在执行其他任何操作之前,如何让 systemd 启动我的 ZFS 挂载脚本?

现在我在 Fedora 19 上使用 zfsonlinux,它运行良好。使用 systemd 调用的 initscript(包含在 zfs 中)按计划在启动时进行挂载,但有一个非常严重的缺陷:ZFS 挂载方式,在启动过程中太晚了,以至于没有 /zfs 传输和其他服务会非常丢失安装并且无法恢复,因此使它们失败。

我所追求的是一种让 systemd 在做任何其他事情之前启动脚本的方法。我知道如何使用 initscripts(只需将其设置为较低的运行级别,例如 2),但是在使用 systemd 的目标系统执行此操作时,我并不是最迷茫的。

我试过在需要 zfs 启动的服务中设置一些东西,但它不起作用,除非 Type=idle (但无论如何必须有更好的方法):

Requires=network.target
After=zfs
Type=idle
Run Code Online (Sandbox Code Playgroud)

为了参考,这里是 Fedora 提供的 initscript。由于 ZFS 在 linux (?) 上的挂载方式的性质,我不能只是将一个条目放入 fstab 并完成它,它必须使用命令进行挂载。

fedora zfs automounting systemd

8
推荐指数
1
解决办法
3465
查看次数

在笔记本电脑上自动挂载 CIFS 共享

我在几个变体中看到过与此类似的问题,但我还没有找到令人满意的答案。

这是我所拥有的:

  • 移动性高的 Debian 笔记本电脑,经常切换网络。
  • 家里的 FreeNAS 服务器,上面有一堆 CIFS 共享。

这是我想要的:

  • 如果我在家时访问 CIFS 共享目录,请自动挂载 CIFS 共享。
  • 如果我在其他任何地方访问 CIFS 共享,请立即返回错误(即在确定 NAS 不存在之前不要考虑网络五分钟)。
  • 当我暂停或休眠机器时,干净地卸载共享,以便在机器再次唤醒时安装不会指向稀薄的空气。如果无法完全卸载共享(进程正在使用目录),则:
    • 中止挂起/休眠并告诉我谁在山上露营;或者
    • 无论如何都要强制卸载并继续挂起/休眠。
  • 额外奖励:当网络连接断开(拔掉插头或失去与 WAP 的关联)时,尝试干净地卸载共享。
  • 额外的信用:这个魔法应该独立于使用的网络管理器。

我读过的各种选项似乎都不合适:

  • autofs 似乎是可靠的,但似乎没有任何挂起/休眠意识。
  • _netdev选件mount/etc/fstab看起来很有趣,但似乎只适用于NFS共享。
  • 我还没有能够开始gvfs工作,但后来我还没有很努力地尝试。

关于如何解决这个问题的任何建议?

附录:

这是我到目前为止所做的简短版本。我安装了autofs,并编写了一个小的 shell 脚本来强制过期所有自动安装的卷,每当网络接口出现故障时都会调用它。

我为我的 CIFS 服务器创建了一个自动挂载器映射,凭据存储在一个外部文件中(糟糕)。然后我编写了以下shell脚本:

#!/bin/sh -e

# Expire everything in the automounter.
if [ -f /var/run/autofs.pid ]; then
    kill -USR1 "$(cat /var/run/autofs.pid)"
fi
Run Code Online (Sandbox Code Playgroud)

向自动挂载守护进程发送 USR1 信号会导致它强制过期所有未使用的挂载。然后我把这个脚本/etc/network/if-down.d/autofs,在一个软链接/etc/network/if-post-down.d/autofs。当连接断开时,NetworkManager 会调用后一个目录中的所有脚本,因此应该卸载任何自动安装的文件系统。

然而,我对这种安排并不十分满意。首先,autofs …

debian automounting suspend cifs

8
推荐指数
1
解决办法
1995
查看次数

符号链接和使用 fstab 绑定有什么区别?

在 Eric Hammond 的文章用 EBS 在 Amazon EC2 上运行 MySQL 中,他展示了如何添加第二个驱动器 ( /vol/),然后继续将mysql的配置和数据移动到那里。

/sdh/vol通过编辑fstab和添加来安装:

/dev/sdh /vol xfs noatime 0 0
Run Code Online (Sandbox Code Playgroud)

接下来添加一些路径,如下所示:

/vol/etc/mysql /etc/mysql     none bind
Run Code Online (Sandbox Code Playgroud)

我这样做没有问题,但我不太明白发生了什么。

我可以最接近地将其与使用符号链接进行比较,例如:

ln -s /etc/mysql /vol/etc/mysql
Run Code Online (Sandbox Code Playgroud)

我在man fstab没有看到有关bind语法的太多信息的情况下查看了它,并且fstab在 Linux 管理员手册的部分中也找不到它。有人可以阐明fstabbind语法、它是如何工作的、它的作用是什么,以及我应该在哪里可以找到有关它的更多信息?

ubuntu automounting mount fstab xfs

7
推荐指数
1
解决办法
6512
查看次数

在 Ubuntu 12.04 或 13.04 中未禁用自动挂载

我正在尝试禁用任何 USB 设备的自动挂载。我在 Ubuntu 10.04 上有这个工作,但我试图在 12.04 或(理想情况下)13.04 中做同样的事情,但没有任何运气。

我到处看看告诉我跑dconf-editor,然后去orgdesktopmedia-handling勾去掉automountautomount-open。这种方法在 10.04 中有效,但在其他方法中无效。我也试过autoopen-never在其他两个未勾选的情况下打勾,但没有任何运气。

我正在使用 VirtualBox VM 来执行此操作,我不知道这是否会影响我的结果。我已经设置了一个空白的 USB 设备过滤器来捕获所有设备并将它们附加到 VM。欢迎任何建议!

编辑:

感谢所有的建议。我再次开始全新安装并设法使其正常工作,我认为这一定与我的 VM 设置有关,但我不知道是什么!

ubuntu usb automounting

7
推荐指数
2
解决办法
7818
查看次数

防止用户挂载某些分区(gnome+udisk)

我想防止在一个外部硬盘驱动器上自动挂载一个分区(已知的 UUID 等)。其他的应该是自动挂载的。发行版是“现代的”(使用大量测试版软件)并使用 udisk+udev 进行安装。

linux gnome udev automounting

6
推荐指数
1
解决办法
3206
查看次数

Nautilus,使用右键菜单挂载 ISO 文件

我现在正在使用 Nautilus,然后当我使用 Ubuntu 时,我可以右键单击 ISO 文件并自动挂载它,而无需发出任何命令。

但是现在我在 Archlinux 中使用 Nautilus,它似乎没有运行所需的插件,有人知道包名是什么,或者我应该怎么做才能获得该功能?

gnome iso automounting nautilus

6
推荐指数
2
解决办法
1万
查看次数

systemd:如何要求并有效安装特定的文件系统?

我想创建一个服务文件,该文件在启动时会导致在执行服务文件的操作之前安装指定的文件系统(因为它需要该文件系统可用)。此外,我希望此服务文件在无法安装文件系统的情况下正常失败(例如,因为它位于有时未插入的外部硬盘驱动器上)。

我的第一次尝试很简单并且部分成功:x-systemd.automount作为选项添加到文件系统的 fstab 行中。然后,当服务文件导致其挂载点被访问时,文件系统将自动挂载。但是,它不会正常失败,因为超时很长并且会被记录为错误。

我的第二次尝试并不成功,我将BindsTo=path-to-mountpoint.mount和添加After=path-to-mountpoint.mount到服务文件(x-systemd.automount已删除):path-to-mountpoint.mount找不到。我想它只是在成功安装后创建的,所以它并不适合我想做的事情。

automounting dependencies systemd

6
推荐指数
1
解决办法
3426
查看次数

nemo 用什么命令挂载驱动

我使用 Linux Mint Cinnamon。我想知道nemo当您单击资源管理器侧栏上未安装的驱动器时,什么命令用于安装驱动器。

我问是因为我需要在启动时自动挂载一些分区。我尝试了几个挂载选项,但没有一个像 nemo 那样挂载。使用mount它会导致权限过多、权限不足或所有权问题。

我不知道 nemo 使用什么选项/命令,这就是我问的原因。

在此处输入图片说明 --> 在此处输入图片说明

automounting mount linux-mint nemo

6
推荐指数
1
解决办法
5603
查看次数

外部硬盘驱动器的一致自动安装

添加/dev/sdb1 /home/[user]/external_drive ntfs defaults,noatime 0 2/etc/fstab机器启动/重新启动后自动安装外部驱动器。

但是,如果在重新启动期间插入了额外的 USB 驱动器,有时会插入,并且在重新启动后/dev/sdb1即可访问。/home/[user]/external_drive

有没有一种方法可以一致地自动安装每个设备,以便每个设备都可以通过预期的文件夹进行访问?

automounting mount fstab

6
推荐指数
1
解决办法
1万
查看次数

如何将只能安装到 /etc/fstab 中具有条目的驱动器/分区列入白名单?

在我的 Ubuntu 系统上,我注意到某些文件管理器在打开时可以挂载通过我的 USB 端口之一(作为非 root)连接的任何驱动器。为了防止这种情况发生,我/etc/fstab这样配置:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/vgubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/nvme0n1p3 during installation
UUID=485794d0-6773-4136-9df9-c8f97fc3c3bc /boot           ext4    defaults        0       2
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=5E62-20EC  /boot/efi       vfat    umask=0077      0       1
/dev/mapper/vgubuntu-swap_1 none            swap    sw              0       0
#/media/j/sandisk-32GB is my primary USB drive for backups
PARTUUID=d199a40a-b5cc-724b-b70b-1b90e4274ea9 /media/user_xyz/sandisk-32GB ext4 defaults,nofail 0 3
Run Code Online (Sandbox Code Playgroud)

1. 如何防止非用户自动挂载或挂载my 中root指定的驱动器/分区?/etc/fstab

2.是否可以进一步限制root安装白名单以外的驱动器?例如, …

filesystems automounting mount fstab

6
推荐指数
2
解决办法
528
查看次数

标签 统计

automounting ×10

mount ×4

fstab ×3

gnome ×2

systemd ×2

ubuntu ×2

cifs ×1

debian ×1

dependencies ×1

fedora ×1

filesystems ×1

iso ×1

linux ×1

linux-mint ×1

nautilus ×1

nemo ×1

suspend ×1

udev ×1

usb ×1

xfs ×1

zfs ×1