Windows主机、虚拟机Ubuntu、开发板,三者之间文件互传

以下内容源于日常学习的整理,欢迎交流。

下图是Windows主机、虚拟机Ubuntu、开发者三者之间文件互传的方式示意图:

注意,下面谈及的所有方式,都要求两者的IP地址处于同一网段,涉及到的软件资源见felm

一、Windows主机、虚拟机Ubuntu

可以通过Filezilla这个软件进行互传。

二、虚拟机Ubuntu、开发板

方法1:使用NFS方式传输文件

首先理解一下NFS的原理。简单地说,就是将远端操作系统(即服务端,这里指虚拟机Ubuntu)下的某个目录,挂接在本地操作系统(即客户端,这里指运行着操作系统的开发板)下的某个目录。这样一来,就可以通过本地目录访问远端目录的内容。

**然后看一下设置方法:**很简单,使用mount命令进行挂载时,-t 选项后面设置为 NFS 即可:

bash 复制代码
mount -t nfs -o nolock,vers=3 192.168.1.142:/home/book/nfs_rootfs      /mn
                             //虚拟机ubuntu的IP:将哪个目录挂载  //挂载到开发板哪个目录

比如上面的例子,mount 成功之后,开发板在/mnt 目录下读写文件时,实际上访问的就是Ubuntu 中的/home/book/nfs_rootfs 目录,所以开发板和 Ubuntu 之间通过NFS 可以很方便地共享文件。

方法2:使用TFTP服务传输文件

开发板上可以使用 tftp 命令与 Ubuntu 互传文件,不过需要在Ubuntu上先安装 TFTP 服务。

1、安装TFTP服务

(1)在 Ubuntu 中执行以下命令安装 TFTP 服务:

bash 复制代码
sudo apt-get install tftp-hpa tftpd-hpa  //在ubuntu上按照tftp服务

(2)创建 TFTP 服务器工作目录(你自己创建,下面只是一个举例):

bash 复制代码
mkdir -p /home/book/tftpboot
sudo chmod 777 /home/book/tftpboot
sudo vim /etc/default/tftpd-hpa

(3)修改TFTP服务配置文件 /etc/default/tftpd-hpa中,添加以下字段(将上面自己创建的工作目录写进配置文件中;以及其他一些配置,这配置啥意思先不管,照着学就好):

cpp 复制代码
TFTP_DIRECTORY="/home/book/tftpboot"
TFTP_OPTIONS="-l -c -s"

(4)最后重启TFTP服务(该命令和重启网络命令好像,把tftpd-hpa改为network就好):

cpp 复制代码
sudo service tftpd-hpa restart

(5)查看 tftp 服务是否在后台运行:

cpp 复制代码
ps -aux | grep "tftp"

2、开发板从Ubuntu下载文件

(1)把待下载文件,放到Ubuntu中TFTP服务器工作目录中,比如123.txt。

(2)使用以下命令,从Ubuntu中下载文件:

cpp 复制代码
tftp -g -r    123.txt             192.168.1.142
              //要下载什么文件     //Ubuntu桥接方式下的IP地址

3、开发板上传文件到Ubuntu

使用以下命令,将开发板当前目录下的345.txt文件,上传到Ubuntu的TFTP服务器工作目录中:

cpp 复制代码
tftp -p -l    ./345.txt                          192.168.1.142
              //要将开发板的哪个文件上传到Ubuntu   //Ubuntu桥接方式下的IP地址

4、tftp命令简介

更多介绍,见 Linux tftp 命令 | 菜鸟教程

tftp命令是Linux系统中的一个用于进行文件传输的工具,它是基于UDP协议的、简单文件传输协议(TFTP)的客户端命令行工具。

tftp命令的主要作用是在网络中传输文件。它可以通过TFTP协议与远程主机进行通信,将文件从本地主机传输到远程主机,或者从远程主机下载文件到本地主机。比如可以将固件、配置文件、日志文件等传输到网络设备,或者从网络设备上下载这些文件进行分析和备份。

与其他文件传输协议(如FTP)相比,TFTP协议更加简单和轻量级,适用于在局域网或者本地网络中进行快速的、小体积的文件传输。

在使用tftp命令时,需要注意确保tftp服务器已正确配置、网络连接正常、文件权限和路径设置正确、注意文件名的大小写、设置传输模式和超时时间、使用合适的命令选项,并注意安全性。

三、Windows主机、开发板

这两者之间也可以使用TFTP服务传输文件,需要使用到一款软件:tftpd64。

如下图所示,在Windows主机下运行tftpd64,设置好TFTP服务的工作目录(以后开发板从这个目录中下载文件,或者上传文件到这个目录),选择有线网卡(桥接网卡)的IP地址。

如果开发板想下载Windows主机中的文件(比如123.txt),先将文件放入Windows主机TFTP服务的工作目录下,然后使用下面命令:

cpp 复制代码
tftp -g -r    123.txt             192.168.1.10
              //要下载什么文件     //Windows主机有线网卡的IP地址

如果开发板想上传文件(比如345.txt)到Windows主机,则采用下面命令:

cpp 复制代码
tftp -p -l    ./345.txt                          192.168.1.142
              //将开发板哪个文件上传到Windows    //Windows有线网卡的IP地址
相关推荐
超级阿飞2 个月前
在K8s中部署动态nfs存储provisioner
云原生·容器·kubernetes·nfs
DZSpace2 个月前
Kubernetes 部署 RabbitMQ 集群教程
kubernetes·rabbitmq·storageclass·nfs
斯普信专业组2 个月前
NFS 组件容器化部署实战指南
nfs
nangonghen3 个月前
smb和nfs双栈协议共享目录
nfs·samba·双栈
鹏大师运维3 个月前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
大隐隐于野4 个月前
NFS Write IO 不对齐深度分析
linux·nfs
陈小肚5 个月前
使用 docker 的方式部署 NFS server 提供文件共享能力
docker·nfs·1024程序员节
mszjaas005 个月前
nfs 中 lockd 与 statd 的作用
linux·nfs
三玖诶5 个月前
第三弹:探索网络传输中的TFTP、UDP广播与多播技术
网络·网络协议·udp·tftp