AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 692158
Accepted
mashuptwice
mashuptwice
Asked: 2022-02-26 14:04:19 +0800 CST2022-02-26 14:04:19 +0800 CST 2022-02-26 14:04:19 +0800 CST

NFS systemd 自动挂载的问题

  • 772

我正在使用 systemd 在带有 Arch 的笔记本上自动挂载 NFS 分区。

问题:

如果 dolphin 在关闭时打开了 NFS 共享的文件夹并且我更改了网络,它会在我下次启动时拒绝打开。

zsh 和其他软件有时也会发生同样的情况。

只有当我连接到除常用网络之外的任何网络并且不使用我的 VPN 或根本未连接到任何网络时,才会出现此问题。只要我的系统可以访问 NFS 服务器,一切都会顺利进行。

当前解决方法:

目前我正在通过停止自动挂载单元并再次启动应用程序来规避这个问题。


以下是相关的单元文件:

/etc/systemd/system/pool1.automount

内容:

[Unit]
Description=Automount NFS pool1
Requires=NetworkManager.service
After=network-online.target

[Automount]
Where=/pool1
TimeoutIdleSec=10min

[Install]
WantedBy=multi-user.target

/etc/systemd/system/pool1.mount

内容:

[Unit]
Description=Mount NFS pool1

[Mount]
What=192.168.1.5:/pool1
Where=/pool1
Type=nfs
Options=soft,async

我确信有一个选项可以告诉 systemd 仅在共享存在时才尝试挂载,但我还没有找到任何关于它的信息。

如果 NFS 服务器不存在,我正在寻找一种可以无缝处理不同网络而不会出现任何延迟的解决方案。


更新

我已经添加TimeoutSec=5到该[Mount]部分,唯一的区别是现在海豚在 5 秒后放弃并自行关闭。

arch-linux systemd
  • 1 1 个回答
  • 492 Views

1 个回答

  • Voted
  1. Best Answer
    CR.
    2022-03-15T11:09:55+08:002022-03-15T11:09:55+08:00

    我能够重现问题。似乎有多个问题在起作用。NFS 本身、systemd 和网络堆栈都有问题。自动挂载的东西并不是真正为瞬态条件设计的。也许它可以被黑客攻击以更好地工作,我不知道。反正...


    此处显示了一种蛮力方法。基本上,不要使用自动挂载,而是从 cron 连续 ping 服务器并根据其状态挂载或卸载。


    我实验的另一种方法可以用来networkd-dispatcher自动挂载和卸载。事件脚本检测服务器或网络并采取相应措施。

    为挂载创建 fstab(或您喜欢的任何方法)。至少设置为“noauto”。

    在/etc/networkd-dispatcher/routable.d/10-nfs-pool1. 标记可执行文件(我猜)。

    #!/bin/sh
    if ping -q -c1 nfs-server >/dev/null; then
       mount /pool1
    else
       umount -f -l /pool1
    fi
    

    现在将该文件复制到 off.d 和 no-carrier.d 中:

    ln -s ../routable.d/10-nfs-pool1 /etc/networkd-dispatcher/off.d/
    ln -s ../routable.d/10-nfs-pool1 /etc/networkd-dispatcher/no-carrier.d/
    

    不幸的是,即使在不使用挂载时,上述两种方法都会保持挂载处于活动状态。自动挂载的问题是当您开始手动管理挂载时,自动挂载被禁用。Automount 似乎可以使用更多功能,但也许我只是不知道它们。

    • 1

相关问题

  • 如何在 Arch Linux 上设置音频,支持多个程序同时发出音频而不创建 asoundrc?

  • 使用 systemd 看门狗支持重新启动应用程序

  • 为什么有时需要手动导入密钥?

  • 在启动时加载设备

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve