mini2440怎么用nfs挂载根文件系统

用busybox制作好了文件系统框架之后需要把文件系统制作成yaffs2镜像文件烧写进开发板,然后再用nfs挂载吗。还是不需要那个镜像,直接就开始根文件系统的挂载。
能给出从一个具体的挂载方法吗(从虚拟机到开发板)我原本的方法报错(挂载之前没有烧写yaffs2镜像)。

img


在minitools中内核启动命令包含了nfsvers=3。

如果是挂载nfs的根文件系统,只需要uboot支持就可以了;
如果在系统里要挂载nfs的文件夹,就需要在系统里运行mount命令挂载。
具体涉及到嵌入式linux的移植的内容,比较复杂,有兴趣可以私聊。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    首先,需要确认mini2440的内核是否支持NFS挂载。如果支持,可以直接在开发板上进行NFS挂载。否则需要重新编译内核并加入NFS支持。接下来的步骤假设内核已经支持NFS挂载。

    1. 在开发机上安装NFS服务器:使用sudo apt-get install nfs-kernel-server命令安装NFS服务器。

    2. 创建NFS共享目录:在开发机上创建一个目录并设置其权限,用于共享mini2440的根文件系统。例如,创建一个目录/root/nfsroot,并确保该目录对其他用户可读可写可执行(chmod 777 /root/nfsroot)。

    3. 拷贝mini2440的根文件系统:将已制作好的文件系统框架拷贝到共享目录中。

    4. 配置NFS服务器:编辑/etc/exports文件,添加如下一行: /root/nfsroot *(rw,sync,no_root_squash,no_subtree_check) 这个配置表明将/root/nfsroot目录共享给所有主机,使用rw选项可读可写。no_root_squash表示在客户端使用root权限时不映射到NFS服务器上的nobody用户。

    5. 重启NFS服务器:使用sudo /etc/init.d/nfs-kernel-server restart重启NFS服务器。

    6. 在开发板上挂载NFS共享目录:使用mount命令挂载共享目录。例如,mount -t nfs 192.168.1.100:/root/nfsroot /mnt/nfsroot,其中192.168.1.100为开发机的IP地址,/root/nfsroot为共享目录在开发机上的路径,/mnt/nfsroot为挂载点在mini2440上的路径。

    7. 修改内核启动命令:在mini2440的内核启动命令中加入nfsroot参数,指定NFS共享目录作为根文件系统。例如,在uboot中使用如下命令: setenv bootargs 'console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.1.100:/root/nfsroot ip=192.168.1.20:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off'

    其中,nfsroot参数指定使用NFS共享目录作为根文件系统,ip参数设置板子的网络配置。

    至此,NFS挂载mini2440的根文件系统的过程就完成了。关于yaffs2镜像和虚拟机的问题,这里并没有用到,可以忽略。关于nfsvers选项,如果不指定,默认使用nfsvers=3,可以根据需要添加到内核启动命令中。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^