搭建网络挂载文件系统

    xiaoxiao2021-03-25  153

    /***************本文是在am335x环境下从网络加载uImage和挂载nfs文件系统******************/ **************************搭建ubuntu TFTP服务器********************************* tftpd-hpa 是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统 1、安装软件:tftp-hpa tftpd-pha xinetd sudo apt-get install tftp-hpa tftpd-hpa xinetd 2、建立配置文件 sudo vi /etc/xinetd.d/tftp 文件tftp文件内容: service tftp { disable = no socket_type = dgram wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/goembed/tftpboot -c //服务器文件目录 per_source = 11 cps = 100 2 flags = IPv4 } 3、修改配置文件/etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot " //改成你想要的那个tftpboot TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -c -s"        //这里是选项 4、建立tftp服务文件目录 mkdir -p /home/goembed/tftpboot sudo chmod 777 /home/goembed/tftpboot 5、【重要】重启服务,修改配置文件的任何地方都要重启服务 sudo /etc/init.d/xinetd reload 或者sudo /etc/init.d/xinetd restart 6、测试服务tftp是否启动 netstat -a|grep tftp 显示 : udp        0      0 *:tftp                  *:*  则启动服务了 7、测试tftp 127.0.0.1(在ubuntu下) tftp>get test tftp>q 出现错误:    【错误】Error code 0: Permission denied,是因为tftpboot文件夹没有权限,或者是要上传和下载的文件没有权限。    【解决】修改权限 sudo chmod 777 -R  /tftpboot    【错误】Error code 1: File not found,原因1:指定的文件不存在;原因2:tftpd启动参数中没有指定-c选项;原因3:目录有问题,因为安装的时候默认的tftp目录是【/var/lib/tftpboot】,您可以把test文件放在这个目录中重新测试一下,如果正确说明猜想是正确的。    【解决】原因1和原因2都好解决,这里只解决原因3:重启服务或者重启系统 8、在busybox下测试 tftp -g -r test 192.168.1.151(服务器IP) *************************搭建ubuntu NFS服务器******************************************** 1、安装软件:nfs-kernel-server sudo apt-get install nfs-kernel-server 2、配置NFS sudo /etc/exports 添加服务目录配置 格式: 绝对路径目录名  IP(权限) /home/goembed/nfs   *(rw,sync,no_subtree_check) 3、创建网络根文件系统目录 解压rootfs.tar到home/goembed/nfs 4、修改权限 sudo 777 -R /home/goembed/nfs 5、重启NFS服务器 sudo service nfs-kernel-server restart 本地测试: mount 192.168.1.xx:/home/gec/mini_rootfs    /tmp 服务器IP与目录                     本地挂载的目录 卸载: umount /tmp    ----->  退出tmp目录才卸载 6、开发板设置uboot远程挂载参数:                                                                    服务器IP与服务目录 set bootargs root=/dev/nfs rw nfsroot=192.168.1.33:/home/gec/mini_rootfs  console=ttySAC0,115200 init=/linuxrc  ip=192.168.1.34:192.168.1.1::255.255.255.0::eth0:on                     板子IP      网关          子网掩码     设备 save **********************板子环境搭建************************************ 1、设置环境网络相关:ip gateway netmask serverip set ipaddr 192.168.1.138 set gatewayip 192.168.1.1 set netmask 255.255.255.0 set serverip 192.168.1.151 2、设置启动环境变量 set bootargs console=ttyO0,115200n8 noinitrd root=/dev/nfs rw nfsroot=192.168.1.151:/home/goembed/nfs -o nolock,proto=tcp,nfsvers=3 ip=192.168.1.138::255.255.255.0::eth0::on mem=256M init=/linuxrc 3、从tftp下载uImage tftp 0x82000000 uImage 4、从ram引导uImage启动内核 bootm 0x82000000 挂载成功。 问题: 1、Starting logging: OK Populating /dev using udev: [    6.760498] udevd[645]: starting version 1.9 done Starting portmap: done Initializing random number generator... cat: read error: Input/output error read-only file system detected...done Starting system message bus: done Starting network... ip: RTNETLINK answers: File exists udhcpc (v1.22.1) started [   19.728759] nfs: server 192.168.1.151 not responding, still trying 解决:在服务器中的文件 etc/network/interfaces 把动态ip改成静态IP, 因为在udhcpc自动获取IP的过程中,nfs挂载会出现丢包的现象,导致挂载的文件系统没有反应。
    转载请注明原文地址: https://ju.6miu.com/read-6027.html

    最新回复(0)