![高效等待 NAS 启动来挂载它](https://linux22.com/image/88819/%E9%AB%98%E6%95%88%E7%AD%89%E5%BE%85%20NAS%20%E5%90%AF%E5%8A%A8%E6%9D%A5%E6%8C%82%E8%BD%BD%E5%AE%83.png)
问题:服务器启动 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) 中的挂载选项