赞
踩
注意:首先要确保虚拟机和开发板之间可以互相访问,即配置桥接网卡,如果在同一个网段下但是无法ping通可能是防火墙的问题。可以查看博文解决:vmware虚拟机设置双网卡
注意:当前虚拟机版本为18.04,若虚拟机版本过高可能会出现其他问题,可以查看该博文解决:Ubuntu22.04虚拟机通过NFS连接开发板
RPC 协议可以简单的理解为一个基于 TCP 的应用层协议,它简化命令和数据的传输
。NFS 最大的特点是将服务端的文件系统目录树映射到客户端
,而在客户端访问该目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树是本地的还是远在另外一台服务器sudo apt-get install nfs-kernel-server rpcbind
在用户目录下创建共享文件夹
cd /home/book
mkdir nfs_rootfs
修改etc/exports文件 ,添加最后一句话
sudo vim /etc/exports
前面的是可以被挂载的ubuntu文件地址,设置为用户目录下所有文件都可以被挂载,灵活性较大,也可以设置只挂载home/book/nfs_rootfs
*表示局域网下的任务地址都可以挂载该虚拟机的共享文件夹,等同于192.168.1.0/24
,如果要指定ip地址则按照如下格式替换:192.168.1.230/24
,其中24表示子网掩码255.255.255.0
rw: 表示客户机的权限,rw 表示可读写,具体的权限还受文件系统的 rwx 及用户身份影响。
async 则代表数据会先暂存于内存当中,而非直接写入硬盘
no_subtree_check:不检查子目录权限,默认配置。
no_root_squash:客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行
重启服务
sudo /etc/init.d/nfs-kernel-server restart
在虚拟机终端输入
ps -A | grep nfs
输出结果
查看服务器端 NFS 共享情况
showmount -e
输出结果
sudo apt install nfs-common -y
showmount -e +“NFS 服务器 IP
命令。注意在不同网络环境下,NFS 服务器 IP 可能不一样,以实际情况为准。例如showmount -e 192.168.1.10
输出结果如下
mount -t nfs -o nolock,vers=3 192.168.xxx.xxx:/home/book/nfs_rootfs /mnt
编辑 vi /etc/profile
文件source /etc/profile
sudo umount /mnt
先切换到家目录 “~”,在进行 umount 操作
。在 Ubuntu 中执行以下命令安装 TFTP 服务:
sudo apt-get install tftp-hpa tftpd-hpa
然后,创建 TFTP 服务器工作目录,并打开 TFTP 服务配置文件,如下:
mkdir -p /home/book/tftpboot
sudo chmod 777 /home/book/tftpboot
sudo vim /etc/default/tftpd-hpa
在配置文件/etc/default/tftpd-hpa 中,添加以下字段:
TFTP_DIRECTORY="/home/book/tftpboot"
TFTP_OPTIONS="-l -c -s"
最后,重启 TFTP 服务:
sudo service tftpd-hpa restart
查看 tftp 服务是否在运行,运行如下命令,即可查看是否在后台运行。
ps -aux | grep “tftp”
开发板通过 tftp 传输文件
下载zImage文件,会直接下载在当前路径
tftp -g -r zImage 192.168.5.11
上传文件到ubuntu,成功不会有提示
tftp -p -l 1.txt 192.168.5.11
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。