目录

OpenWRT开发时的文件共享方案

我在开发MT7628时,使用两台电脑,一台是Ubuntu,用于交叉编译openwrt系统。一台是Mac,编写代码。需要在Mac与Ubuntu电脑之间共享文件。Ubuntu编译后的文件,要传输到MT7628上,也需要Ubuntu与MT7628之间的文件共享。

下面分别介绍Ubuntu分别与Mac、MT7628之间的文件共享方法。

1. MT7628与Ubuntu的文件共享

如果在MT7628上加载Ubuntu系统上的文件夹/home/usr/files/。

1.1. 在Ubuntu上安装NFS服务

ubuntu 执行以下命令

sudo apt-get install nfs-kernel-server #安装 NFS 服务

接着用管理员权限(sudo)打开 ubuntu 中/etc/exports 文件 sudo vi /etc/exports,在末尾添加
/home/usr/files *(rw,sync,no_root_squash) 。这行代码的含义如下:

  • /home/usr/files:这是NFS服务器上的共享目录路径,这个目录将被导出,让客户端可以进行挂载。

  • *:这个星号代表允许所有的客户端访问这个共享。如果想限制特定的客户端或者网络,可以将星号替换为特定的IP地址或子网。

  • rw:这表示挂载这个共享的客户端将具有读写权限(read-write)。如果你只希望客户端拥有读权限,可以使用ro(read-only)。

  • sync:这表示所有的文件操作将同步进行,意味着在回应客户端请求之前,更改会被写入磁盘。这与async相反,后者允许系统在文件操作尚未完成时就回应客户端,可以提高性能,但如果系统崩溃可能会丢失数据。

  • no_root_squash:默认情况下,NFS将远程挂载的root用户的操作映射为匿名用户,出于安全考虑(称为root squashing)。no_root_squash选项关闭了这种映射,允许远程挂载的root用户保留其在客户端的root权限。使远程root用户将能够以root身份在NFS共享上执行文件操作。这有一定的风险。

所以,这行配置的意思是,NFS服务器上的/home/usr/files目录将被导出给所有客户端,这些客户端将拥有对这个目录的读写权限,并且所有的操作将同步执行,客户端的root用户将能夜以root权限在该共享上操作文件。

1.2. 在MT7628上挂载Ubuntu上的文件夹

首先需要确定MT7628上已经安装了 NFS 支持的安装包。一般是默认安装好的。

在MT7628上执行:

mkdir /mnt/n
mount -t nfs -o nolock 10.0.0.109:/home/usr/files /mnt/n

这行代码是在Linux操作系统中使用的命令,用于挂载(mount)一个网络文件系统(NFS)。我来逐一解释这个命令的各个部分:

  • mount:这是用于挂载文件系统的命令。

  • -t nfs:这个选项指定了要挂载的文件系统类型,这里是NFS(Network File System,网络文件系统)。

  • -o nolock:这里的-o表示选项(options),nolock是指在挂载时不使用NFS锁定功能。通常在某些客户机不支持或不需要锁定时会使用这个选项。

  • 10.0.0.109:/home/usr/files:这部分指定了NFS服务器的IP地址(10.0.0.109)和服务器上共享资源的路径(/home/usr/files)。

  • /mnt/n:这是本地系统上的挂载点,即远程NFS共享将被挂载到本地文件系统的这个位置。

这行代码实现了这样的功能:

“使用mount命令在本地挂载一个类型为NFS的网络文件系统,挂载时不使用锁定机制,将位于IP地址为10.0.0.109的服务器上的/home/usr/files目录挂载到本地的/mnt/n目录下。”

但是每次MT7628掉电重启后都需要执行上面的mount指令,重新挂载。

2. Ubuntu与Mac的文件共享

Ubuntu与Mac的文件共享,我是使用SMB协议实现的。

2.1. 在Ubuntu上安装samba:

sudo apt-get install samba

在Ubuntu上创建共享文件夹:

sudo mkdir /home/usr/files

在Ubuntu上配置samba:

sudo vi /etc/samba/smb.conf

在文件末尾添加:

[share]
    path = /home/usr/files
    available = yes
    valid users = usr
    read only = no
    browsable = yes
    public = yes
    writable = yes

其中usr是Ubuntu上的用户名。

2.2. 在Mac上访问Ubuntu上的文件夹

这样就可以在Mac上访问Ubuntu上的文件夹了。

在Mac上访问Ubuntu上的文件夹:

open smb://10.0.0.109/share

其中10.0.0.109是Ubuntu的IP地址。

或者在Finder中按Command+K,输入smb://10.0.0.109/share,点击连接。就可以访问Ubuntu上的文件夹了。