V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
asdasdqqq
V2EX  ›  Linux

请教 Linux (debian11)开机挂载 nfs 的问题

  •  
  •   asdasdqqq · 251 天前 · 2423 次点击
    这是一个创建于 251 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个 nas 开启了 nfs 共享( 192.168.1.100:/volume1/share ),我需要让我的另外一台 debian11 虚拟机(192.168.1.101)开机的时候自动挂载。 于是我在 /etc/fstab 里添加了行 192.168.1.100:/volume1/share /data nfs defaults 0 0 但是重启后并没有挂载成功,看日志提示 mount.nfs: Network is unreachable 应该是网络还没准备好

    请问下各位大佬需要怎么设置呢?通过 systemd 吗?

    19 条回复    2022-03-22 07:06:16 +08:00
    youdoit
        2
    youdoit  
       251 天前
    用脚本,设置 sleep 多久之后在挂载,这样就不会出现系统没有起来就先挂载了。
    asdasdqqq
        3
    asdasdqqq  
    OP
       251 天前
    @youdoit 我之前就是这么处理的,但是这个有一个问题
    我需要 docker 挂载这个 nfs 。但是 docker 已经起来了,然后 nfs 才挂载成功,导致 docker 里面 link 的文件夹是未挂载的本地文件夹。
    Lyrica
        4
    Lyrica  
       251 天前
    defaults 改成 defaults,_netdev
    asdasdqqq
        5
    asdasdqqq  
    OP
       251 天前
    @msg7086 谢谢,参考了你的连接还有其他一些地址,目前 fstab 的配置是

    192.168.1.100:/volume1/share /data nfs x-systemd.automount,x-systemd.after=network-online.target 0 0

    也就是挂载参数由 defaults 变为 x-systemd.automount,x-systemd.after=network-online.target

    目前是可以的,也是我自己测试过的,不知道还有没有其他正确的方案(较官方的)
    asdasdqqq
        6
    asdasdqqq  
    OP
       251 天前
    @Lyrica 谢谢,这个试过了,不行,reboot 后没有挂载成功
    lithiumii
        7
    lithiumii  
       251 天前 via Android
    修改 systemd 让 docker 在指定的
    lithiumii
        8
    lithiumii  
       251 天前 via Android
    @lithiumii 让 docker 在指定挂载成功后再启动
    corvofeng
        9
    corvofeng  
       251 天前
    如果你的 NFS 挂载之后只是在 Docker 里面用, 可以试试 Docker 自己的 volume 功能

    https://docs.docker.com/storage/volumes/
    asdasdqqq
        10
    asdasdqqq  
    OP
       251 天前
    @corvofeng 谢谢 涨姿势💪💪💪
    Chowe
        11
    Chowe  
       251 天前 via iPhone
    刚好处理过一个又一丢丢类似的,我的做法是写个 systemd 的 service ,等网络启动之后再去执行。
    hxsf
        12
    hxsf  
       251 天前
    systemd-mount 了解下? 然后 docker.service 依赖这个 mount
    defunct9
        13
    defunct9  
       251 天前 via iPhone
    开 ssh ,让我上去试试
    wzaqqq
        14
    wzaqqq  
       250 天前
    ```bash
    172.16.0.2:/share /share nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0
    ```
    yanqiyu
        15
    yanqiyu  
       250 天前
    remote-fs.target 的时机和 network-online.target 的时机应该是 systemd 会处理好的,是不是你的网络管理器的 online 检测服务没 enable
    yanqiyu
        16
    yanqiyu  
       250 天前
    @asdasdqqq 这种情况下给 docker 的 service 一个 RequiresMountsFor=/path/to/mount/point 的属性就行
    asdasdqqq
        17
    asdasdqqq  
    OP
       250 天前
    @yanqiyu 谢谢,是这个位置不 /lib/systemd/system/docker.service ,[unit]部分添加一行
    yanqiyu
        18
    yanqiyu  
       250 天前
    @asdasdqqq 这个路径升级会覆盖,用 systemctl edit docker 创建 drop-in 配置文件
    jxr111
        19
    jxr111  
       250 天前 via Android
    可以使用 autofs 服务来代替 fstab 配置文件挂载网络存储,fstab 挂载不稳定
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1253 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 23:33 · PVG 07:33 · LAX 15:33 · JFK 18:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.