成功连接网络后 Linux NFS 挂载

成功连接网络后 Linux NFS 挂载

我有一个小型嵌入式(mips)设备,它运行非常轻量级的 Linux。

它能够挂载 NFS 共享(手动命令)。

但是我想自动安装它,所以我在文件系统文件。

问题在于,在处理 fstab 时设备没有可用的连接:

mount: mounting 10.1.1.1:/srv/fs on /nfs failed: Input/output error

然后系统继续启动(初始化 wifi 模块,连接 AP,并使用韓國

udhcpc 成功获取 IP 地址后,我可以运行:

mount -a

并且 /nfs 将会成功挂载。

我如何告诉 fstab 等待并不断重试?

请注意,这是一个截断的 Linux。没有可用的 systemd 或 ifup 脚本。

当然,我可以在启动时运行一个脚本,不断运行“mount -a”直到成功,但这是蛮力的方法,如果存在的话,我正在寻找更复杂的解决方案。

答案1

通常的解决方案是DHCP 客户端在完成网络配置后通知您。大多数 DHCP 客户端都能够为此目的启动“钩子”shell 脚本,udhcpc 也是如此。根据文档

当事件发生时,udhcpc 会调用操作脚本。默认情况下,该脚本是/usr/share/udhcpc/default.script但这可以通过命令行参数进行更改。脚本的三个可能参数是:[...]

边界:当 udhcpc 从非绑定状态变为绑定状态时,使用此参数。所有参数均在环境变量中设置,脚本应配置接口,并设置任何其他相关参数(默认网关、dns 服务器等)。

这意味着您只需将一个 shell 脚本放在正确的位置(--script必要时使用选项),并让它在调用时以$1参数设置为 来启动您的挂载bound

#!/bin/sh
if [ "$1" = bound ]; then
    mount -a
fi

相关内容