主机配置

主机配置

经过几个小时的阅读和尝试和错误过程后,我想解释一下我的 nfs 安装问题和解决方案。

我在虚拟领域工作了多年Debian 8.5主机系统为多种嵌入式设备开发软件,基于imx,或者raspi、beagle board等。

在开发过程中,从主机通过 nfs 安装嵌入式根分区非常有用。配置通常很简单。

主机配置

# /etc/exports
/opt/tftpboot/rootfs *(rw,sync,insecure,no_subtree_check,no_root_squash)
  • 建议使用特定的 ip,而不是通配符
  • 还删除了生产环境中不安全的选项

客户端配置

如果内核支持网络文件系统,则可以很容易地从嵌入式/或远程系统配置根文件系统的安装。

# example part of the kernel command line
root=/dev/nfs nfsroot=10.0.102.247:/opt/tftpboot/rootfs,nolock

顺便说一句,随着新版本的nfs 内核服务器,交付与Debian 10.2或者9.x无法挂载根文件系统。启动过程卡住,主机设备上没有错误日志,远程系统上没有错误日志。

从外壳测试

我尝试从闪存启动远程系统并从 busybox shell 挂载远程文件夹,但失败了。

$ mount -t nfs 10.0.102.247:/opt/tftpboot/rootfs /mnt/nfs
no route to host

Ping 工作正常;-) 主机端的防火墙也配置良好。在排除任何其他问题(例如网络问题)后,我已将 mount 命令更改为使用 NFS V4,mount 命令的工作方式与预期一致。

mount -t nfs -o nfsvers=4 10.0.102.247:/opt/tftpboot/rootfs /mnt/nfs

答案1

解决方案

现在我们需要切换回在内核命令行中挂载根文件系统并传递 NFS V4。

# working example part of the kernel command line
root=/dev/nfs nfsroot=10.0.102.247:/opt/tftpboot/rootfs,v4,tcp 

相关内容