MacLodge's Blogsince 2022
Linux / Linux 小技巧

Linux 文件共享

Linux 主机与嵌入式开发板文件共享

本文目录(6 节)
  1. 1.1 安装与配置
  2. 1.2 使用
  3. 2.1 安装与配置
  4. 2.2 连接共享文件夹
  5. 2.1 安装与配置
  6. 2.2 Windows文件共享

1. NFS服务

Linux 主机与嵌入式开发板文件共享

  • 功能

在嵌入式开发板无法通过 SSH 访问时,可以通过 nfs 挂载目录到 Linux 主机,实现文件共享。

1.1 安装与配置

  1. 首先要在 Linux 主机上安装 nfs 服务
sudo apt install nfs-kernel-server
  1. 创建共享文件夹

这里以 VMC 文件夹为例

mkdir /home/lodge/VMC          # 创建一个用于共享的文件夹
chomd 777 /home/lodge/VMC      # 设置该文件夹的权限使其让所有用户可读可写可运行
  1. 修改配置文件
sudo vim /etc/exports

添加共享文件夹的路径,以及设定参数

/home/lodge/VMC *(rw,sync,no_root_squash,no_subtree_check)
  1. 重启 NFS 服务
sudo /etc/init.d/nfs-kernel-server restart

1.2 使用

首先保证 Linux 主机和嵌入式设备 IP 能够互相 ping 通。

登录嵌入式设备,使用 mount 命令挂载文件夹,这里是把 Linux 主机的 VMC 目录挂载到嵌入式设备的 /mnt 目录下,这样就可以在 /mnt 目录下实现和主机的文件共享。

sudo mount -t nfs -o nolock 10.64.12.54:/home/lodge/VMC /mnt

如果挂载失败,可以尝试加一个 busybox

sudo busybox mount -t nfs -o nolock 10.64.12.54:/home/lodge/VMC /mnt

2. Samba服务

  • 功能

方便用于 windows 和 Linux 系统间文件共享。

2.1 安装与配置

  1. 安装 Samba
sudo apt install samba smbclient
  1. 创建共享文件夹

这里以 VMC 文件夹为例

mkdir /home/lodge/VMC          # 创建一个用于共享的文件夹
chomd 777 /home/lodge/VMC      # 设置该文件夹的权限使其让所有用户可读可写可运行
  1. 修改配置文件
sudo vim /etc/samba/smb.conf

在文件最后添加想要共享的目录信息

[VMC]
comment = share folder
browseable = yes
path = /home/lodge/VMC
create mask = 0777
directory mask= 0777
force user = lodge
public = yes
available = yes
writable = yes

[VMC] 是共享目录的显示名称,可以自定义;path 是共享目录绝对路径;然后确定目录访问权限和指定用户访问,可以根据需要设置。

  • 其他参数描述如下
参数 描述
comment 备注描述
path 共享文件夹的路径
valid users 可访问的用户,多个用户用,隔开(使用上面步骤创建的 Samba用户名)
public 访问是否不需要密码
read only 是否只读
create mask 文件权限设置
directory mask 文件权限设置
available 是否有效
browseable 是否可浏览,no表示隐藏,需要通过 IP+共享名称 进行访问
display charset、unix charset、dos charset 防止出现中文目录乱码的情况
  1. 启动 Samba 服务
sudo service smbd restart       # 重启服务
testparm        # Samba 服务重启后,可以使用下面命令检查 smb.conf 配置文件是否有语法错误
  • 其他控制命令
sudo service smbd start                 # 启动
sudo service smbd stop                  # 关闭 Samba 服务器:
sudo service smbd restart               # 重新启动 Samba 服务器:
sudo service smbd status                # 查看 Samba 服务状态
ps -aux | grep smbd                     # 查看 samba 是否正在运行

2.2 连接共享文件夹

首先确保两台设备的 IP 能够互相 ping 通

在 Windows 系统的文件管理器导航栏上反斜杠输入 Linux 设备 IP 后回车

image

然后在弹出的对话框输入 Samba 配置的用户和密码,如果用户名和登录 Linux 的用户名一样,则需要输入登录 Linux 设备的密码,验证正确后即可看到共享的文件夹,然后就可以进行文件传输读写操作。

image

  • 注意

    在ubuntu下创建samba后发现不能写,用下面方法即可解决

    进入共享目录,执行命令

    chmod -R go+w share/

3. FTP服务

  • 功能

方便用于 windows 和 Linux 系统间文件传输共享。

2.1 安装与配置

  1. 安装 FTP
sudo apt install vsftpd
  1. 修改配置文件
sudo vim /etc/vsftpd.conf

找到如下两行, 去掉注释

local_enable=YES
write_enable=YES

image

  1. 重启 FTP 服务
sudo /etc/init.d/vsftpd restart

2.2 Windows文件共享

windows 上安装 FTP 客户端

下载 安装对应的系统版本软件。

  • FileZilla 设置

Linux 作为 FTP 服务器, FileZilla 作为 FTP 客户端。

点击 “文件” → “站点管理器”,“新站点”,创建站点,例如我这里创建名为 “Ubuntu” 的站点。

image

然后连接就行,这时右侧就显示 Ubuntu 系统上的文件,如果有乱码,就断开连接,在站点设置的字符集选项中设置 强制 UTF-8。

如果需要复制文件,直接左右窗口拖动即可。

4. ubuntu访问windows共享文件夹

参考:https://www.cnblogs.com/smartjourneys/articles/7992298.html

署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0)
本文可自由转载与修改,但需保留作者署名与出处链接,不得用于商业用途,且衍生作品需以相同方式共享。 转载请注明:MacLodge's Blog · Linux 文件共享
Esc