一,前言
我之前虚拟机配置的是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了
三,小结
毕竟桥接的虚拟机使用起来不方便,比如ubuntu虚拟机也要上网,这时候还需要去切换network0绑定的网卡,麻烦。所以能通过桥接的虚拟机挂载nfs成功,我提升了信心,问题点捕捉更加精准,于是我就又开始了NAT方式的虚拟机仅nfs挂载环境搭建。请看下一篇哈~
标签:Apple,桥接,虚拟机,work,192.168,setenv,nfs,tftp From: https://blog.51cto.com/AppleCai/8193525