【问题】
同一个xxx.app程序,在本地运行”./xxx.app”,可以正常执行;当挂载远程服务器NFS时,进行指令”./xxx.app”运行时,程序运行报错退出。
【诊断】
NFS 挂载未开启使能支持执行二进制文件所导致的。
【原挂载指令】
mount -t nfs -o nolock,intr,rsize=1024,wsize=1024,proto=tcp 10.11.13.247:/nfs /mnt
这个命令以NFS默认配置去运行, 没有显式指定 exec,而 Linux 的 NFS 客户端在未指定 exec/noexec 时,默认行为取决于内核版本和发行版。但在很多嵌入式系统(尤其是较旧的 Buildroot、BusyBox 环境)中,默认会启用 noexec 作为安全策略。
故需要显式的指定 exec。
挂载NFS指令为:
mount -t nfs -o nolock,intr,rsize=1024,wsize=1024,proto=tcp,exec 10.11.13.247:/nfs /mnt
命令中各选项含义
| 选项 | 作用 | 是否必要 |
|---|---|---|
| nolock | 禁用文件锁 | ✅ 嵌入式推荐 |
| intr | 允许 NFS 操作被信号中断(Ctrl+C 可用) | ✅ 推荐 |
| rsize=1024,wsize=1024 | 读写块大小(太小!建议增大) | ⚠️ 可优化 |
| proto=tcp | 使用 TCP(比 UDP 更可靠) | ✅ 推荐 |
| exec | 允许执行二进制文件 | ❗ 必须加 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
















暂无评论内容