开发板nfs挂载桥接虚拟机的文件系统环境搭建--Apple的学习笔记
  2Nv1H5BMjysw 2023年11月19日 20 0

一,前言

我之前虚拟机配置的是NAT方式,不是桥接,然后Kernel及uboot都同nfs挂载。所以先改成了最简单的桥接方式的虚拟机。

二,ubuntu虚拟机设置

1,vmware先设置为桥接。

2,设置ubuntu14.04的静态ip地址

gedit /etc/network/interfaces

内容

auto eth0
iface eth0 inet static
address 192.168.7.5
netmask 255.255.255.0
gateway 192.168.7.1
dns-nameservers 114.114.114.114

3,ubuntu添加tftp

1)安装软件

sudo apt-get install tftpd-hpa tftp-hpa xinetd

2)创建文件夹及设置权限

mkdir /work/tftpboot
chmod -R 777 /work/tftpboot

3)创建tftp配置文件

sudo gedit /etc/xinetd.d/tftp

内容

service tftp
{
    socket_type = dgram  
    protocol = udp   
    wait = yes  
    user = root  
    server = /usr/sbin/in.tftpd  
    server_args = -s /work/tftpboot -c  
    disable = no  
    per_source = 11  
    cps = 100 2  
    flags = IPv4  
}

4)修改配置文件

sudo gedit /etc/default/tftpd-hpa

内容

RUN_DAEMON="yes"
OPTIONS="-s /work/tftpboot -c -p -U tftpd"
 
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/work/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"

索性直接重启ubuntu。

4,nfs配置 1)查nfs版本

sudo cat /proc/fs/nfsd/versions

2)修改nfs文件夹权限 gedit /etc/exports添加

/work/img *(rw,sync,no_subtree_check,no_root_squash)
/work/img/rootfs *(rw,sync,no_subtree_check,no_root_squash)

然后重启服务

sudo service nfs-kernel-server restart

三,uboot中设置

1)ip地址设置

setenv serverip 192.168.7.5
setenv ipaddr 192.168.7.2
setenv netmask 255.255.255.0
setenv gatewayip 192.168.7.1

2)先验证tftp,zImage是在tftp的配置文件中设置的路径,能正常下载

tftp 0x82000000 zImage

3)设置bootcmd,结果怎么设置,在Kernel中都无法挂载文件系统。总是提示"VFS: Unable to mount root fs via NFS",检查log发现“Kernel command line:xxx”其中内容不是我设置的bootargs。

打印了所有的环境变量,找到了根本原因,发现bootcmd中会重新设置bootargs,里面用的参数是netargs,所以单独修改bootargs的值无用,要修改netargs。

bootcmd=setenv autoload no;run nfs_bootfile; run findfdt; run nfs_fdtfile; run netargs; bootz ${loadaddr} - ${fdtaddr}

解决方法:在u-boot中设置环境变量并saveenv保存。然后reset后kernel启动过程中,就能正常挂载文件系统了。

setenv netargs 'setenv bootargs console=ttyO0,115200n8  root=/dev/nfs nfsroot=192.168.7.5:/work/img/rootfs,v3,tcp,port=2049,mountport=9999 rw ip=192.168.7.2:192.168.7.5:192.168.7.1:255.255.255.0::eth0:off init=/linuxrc console=ttyO0,115200n8'

注:中间遇到的坑是打开了uboot的nfs命令,结果无法通过nfs下载,查看了uboot仅支持nfs vers=2,我按网上教程修改了ubuntu支持nfs2,但是依然不成功,所以uboot无法使用nfs,抓包我也看不懂,是否ubuntu中我真的设置支持v2了

开发板nfs挂载桥接虚拟机的文件系统环境搭建--Apple的学习笔记_桥接


三,小结

毕竟桥接的虚拟机使用起来不方便,比如ubuntu虚拟机也要上网,这时候还需要去切换network0绑定的网卡,麻烦。所以能通过桥接的虚拟机挂载nfs成功,我提升了信心,问题点捕捉更加精准,于是我就又开始了NAT方式的虚拟机仅nfs挂载环境搭建。请看下一篇哈~

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
2Nv1H5BMjysw