树莓派使用另一主机的硬盘
实现效果:不实际接入真实硬盘, 而是使用局域网内(公网主机也行, 只是速度取决于带宽)另一主机上的硬盘(或者是目录)
实现方案: 使用NFS来实现
准备:
- 一个树莓派
- 一台Linux主机, 系统Ubuntu 20.04, ip是10.0.0.239
操作步骤:
服务端(Linux主机)
IP为10.0.0.239的主机安装nfs server
1
sudo apt install nfs-kernel-server
创建nfs共享目录(如果已经存在, 可以不创建), 也就是要挂载到树莓上的目录
1
mkdir -p /mnt/media/download
配置nfs服务, 编辑配置文件:vim /etc/exports, 添加一行
1
/mnt/media/download *(rw,sync,no_root_squash,no_subtree_check)
各个字段说明如下:
- /mnt/media/download: 要共享的目录
- *:指定可以访问共享目录的用户 ip, * 代表所有用户。192.168.3. 指定网段。192.168.3.29 指定 ip。
- rw:可读可写。如果想要只读的话,可以指定 ro。
- sync:文件同步写入到内存与硬盘中。
- async:文件会先暂存于内存中,而非直接写入硬盘。
- no_root_squash:登入 nfs 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!但如果你需要在客户端对 nfs 目录进行写入操作。你就得配置 no_root_squash。方便与安全不可兼得。
- root_squash:在登入 nfs 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。
- subtree_check:强制 nfs 检查父目录的权限(默认)
- no_subtree_check:不检查父目录权限
配置完成后, 执行如下命令:
1
2sudo exportfs -a
sudo service nfs-kernel-server restart此时服务端配置完成
客户端(树莓派)
安装nfs客户端
1
apt install nfs-common
将树莓派的目录挂载到之前在另外一台主机上共享出来的文件夹, 例如将树莓派的/mnt/download目录挂载到刚刚在另外一台Linux主机上创建的/mnt/media/download目录, 命令如下:
1
mount 10.0.0.239:/mnt/media/download /mnt/download/
在10.0.0.239的/mnt/media/download下创建一个文件, 此时可以看到树莓派的/mnt/download/目录下也存在刚刚新建的文件
评论