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

2022-03-20 18:27:08 +08:00
 asdasdqqq

我有一个 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 吗?

3190 次点击
所在节点    Linux
19 条回复
msg7086
2022-03-20 18:30:26 +08:00
youdoit
2022-03-20 18:31:37 +08:00
用脚本,设置 sleep 多久之后在挂载,这样就不会出现系统没有起来就先挂载了。
asdasdqqq
2022-03-20 18:45:00 +08:00
@youdoit 我之前就是这么处理的,但是这个有一个问题
我需要 docker 挂载这个 nfs 。但是 docker 已经起来了,然后 nfs 才挂载成功,导致 docker 里面 link 的文件夹是未挂载的本地文件夹。
Lyrica
2022-03-20 19:07:52 +08:00
defaults 改成 defaults,_netdev
asdasdqqq
2022-03-20 19:09:30 +08:00
@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
2022-03-20 19:12:01 +08:00
@Lyrica 谢谢,这个试过了,不行,reboot 后没有挂载成功
lithiumii
2022-03-20 19:31:34 +08:00
修改 systemd 让 docker 在指定的
lithiumii
2022-03-20 19:32:07 +08:00
@lithiumii 让 docker 在指定挂载成功后再启动
corvofeng
2022-03-20 19:36:15 +08:00
如果你的 NFS 挂载之后只是在 Docker 里面用, 可以试试 Docker 自己的 volume 功能

https://docs.docker.com/storage/volumes/
asdasdqqq
2022-03-20 20:13:57 +08:00
@corvofeng 谢谢 涨姿势💪💪💪
Chowe
2022-03-20 21:48:08 +08:00
刚好处理过一个又一丢丢类似的,我的做法是写个 systemd 的 service ,等网络启动之后再去执行。
hxsf
2022-03-20 22:22:14 +08:00
systemd-mount 了解下? 然后 docker.service 依赖这个 mount
defunct9
2022-03-20 22:53:23 +08:00
开 ssh ,让我上去试试
wzaqqq
2022-03-21 09:35:08 +08:00
```bash
172.16.0.2:/share /share nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0
```
yanqiyu
2022-03-21 11:59:08 +08:00
remote-fs.target 的时机和 network-online.target 的时机应该是 systemd 会处理好的,是不是你的网络管理器的 online 检测服务没 enable
yanqiyu
2022-03-21 11:59:54 +08:00
@asdasdqqq 这种情况下给 docker 的 service 一个 RequiresMountsFor=/path/to/mount/point 的属性就行
asdasdqqq
2022-03-21 16:56:00 +08:00
@yanqiyu 谢谢,是这个位置不 /lib/systemd/system/docker.service ,[unit]部分添加一行
yanqiyu
2022-03-21 19:11:39 +08:00
@asdasdqqq 这个路径升级会覆盖,用 systemctl edit docker 创建 drop-in 配置文件
jxr111
2022-03-22 07:06:16 +08:00
可以使用 autofs 服务来代替 fstab 配置文件挂载网络存储,fstab 挂载不稳定

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/841667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX