高效等待 NAS 启动来挂载它

高效等待 NAS 启动来挂载它

问题:服务器启动 3 分钟,Raspberry Pi 启动 30 秒。断电后,RPi 启动速度更快,并且不挂载 NAS 磁盘。

这个特定的 RPi 需要磁盘才能进行记录。因此,如果没有安装(外部)磁盘,RPi 就毫无用处。我使用 RPi autostart.sh 来:

mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock;

当我意识到这个问题的时候。因此,我在 RPi 的 autostart.sh 中创建了一个循环,用于挂载 NAS。在正常操作期间(一旦安装完成),此问题不会再发生:只要其中一个重新启动,RPi 安装就可以正常工作(我认为)。

这是否是一个好的解决方案(仅在 RPi 启动时执行)并且可以做得更好或更优雅吗?

until mountpoint -q /storage/nas || mount -t nfs 192.168.1.5:/Public/Video/TV /storage/nas -o nolock; do sleep 30; done

如果已安装,则不应尝试安装,否则 - 安装。另外,请等待重试直至安装。似乎按预期工作,除了 RPi 将启动(不等待安装),但此 RPi(实际上是 Kodi)将被冻结,直到安装 NAS。

我可以看到这里可以添加的唯一内容是:在睡眠之前将 WOL 发送到 NAS。

说明:这是OPENelec RPi安装,没有使用fstab,而是使用上面描述的方法。

答案1

您可以尝试添加背景nfs 的挂载选项(如果有的话)。人 5 NFS:

如果指定了 bg 选项,超时或失败会导致 mount(8) 命令分叉一个继续尝试挂载导出的子命令。父进程立即返回并返回零退出代码。这称为“背景”安装。

答案2

您真的使用 shell 脚本而不是 fstab 在启动时安装驱动器吗?

阅读 /etc/fstab(运行命令手动fstab),特别是查看 _netdev 选项,这样你最终会得到类似的结果。

10.10.10.10:/srv/share /mnt/mymnt   nfs4    defaults,noexec,nosuid,_netdev,auto     0       0

免责声明:在未阅读 fstab 之前,请勿复制粘贴以上内容!

PS 根据您的操作系统,nobootwait 也可能值得探索作为一个选项。

PSPS 另请参阅 nfs(5) 中的挂载选项

相关内容