cifs 挂载的绑定挂载的 systemd 挂载周期

cifs 挂载的绑定挂载的 systemd 挂载周期

我有一个单一卷的 CIFS 安装,然后绑定安装了 2 个子目录。启动时,systemd 抱怨“排序周期”,并且无法安装其中 1 个绑定,但另一个工作正常。如果我运行mount -a,则会安装缺少的绑定。我已经能够在新的虚拟机中重新创建此行为。

/etc/fstab

//server.example.com    /mnt/media             cifs    [snip]  0  0
/mnt/media/secure       /var/www/media/secure  none    bind    0  0
/mnt/media/public       /var/www/media/public  none    bind    0  0

绑定安装没有改变,这些是实际名称。我不知道如何,但是,我认为这可能很重要,可能是由于排序顺序,因为当我更改顺序时,fstab只有public绑定安装失败。secure总是有效。

日志中的日志

Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on var-www-media-public.mount/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on mnt-media.mount/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on network-online.target/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on networking.service/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Found dependency on local-fs.target/start
Mar 19 14:06:45 ubuntu systemd[1]: local-fs.target: Breaking ordering cycle by deleting job var-www-media-public.mount/start
Mar 19 14:06:45 ubuntu systemd[1]: var-www-media-public.mount: Job var-www-media-public.mount/start deleted to break ordering cycle starting with local-fs.target/start

我尝试x-systemd.requires=/mnt/media在绑定安装上指定,但没有任何改变。我不知道下一步该去哪里解决这个问题。

答案1

我不确定为什么其中一个绑定安装座能够工作。以下是我的建议,为什么两者可能同时失败,以及如何修复它:

您的networking.service顺序位于本地文件系统之后。绑定挂载被视为本地文件系统。但是,绑定挂载也是在网络挂载之后排序的 - systemd 会自动为绑定挂载添加这些逻辑依赖项。

在这种情况下,您需要告诉systemd绑定挂载实际上是网络挂载。对于这种情况,有一个特意的选择。只需将安装选项添加_netdev到绑定安装即可。有关更多信息,该选项在 中定义man systemd.mount

相关内容