起因还是树莓派, 树莓派间的文件共享

很久前总结的, 应该还是能用的, 可能小细节上会有差异

两个树莓派需在同一内网下

步骤

  • 安装 nfs
    • apt-get install nfs-kernel-server
  • 如果系统没有自带 rpcbind 或 postmap, 还需要装其一(树莓派自带 rpcbind )
  • 配置nfs文件
    • vi /etc/exports
    • 格式为: [共享文件绝对路径] [对其共享的IP地址] (共享选项, 一般为rw,sync,no_subtree_check 逗号间不能有空格, 否则启动服务报错)
    • 保存
  • 先重启 rpcbind (或者postmap)
    • service rpcbind restart
  • 重启 nfs 服务
    • service nfs-kernel-server restart
  • 另一个树莓派上编辑 /etc/fstab 挂载共享
    • [共享的IP地址]:[路径] [本地路径] nfs default 0 0
    • 保存
  • mount -a 挂载
  • 实现开机挂载写入/etc/rc.local(需不需要sleep没实际操作过)

可能出现的问题:

  1. 无法写入
    • 原因是权限不足, 对共享文件添加777权限
      • chmod 777 [路径]
  2. 服务端新建文件, 用户端无法更改只读文件
    • 编辑 /etc/exports
      • 在共享选项里添加 no-root-squash
    • 这会直接给用户root权限
    • 风险都懂+1

 

16年刚开始玩树莓派, 一直不能很方便的在Windows间传文件, 也装过其他工具(强迫症并不想为了一个功能专门装工具), 最后发现用系统默认的方式就可以实现文件共享

Linux 与 Windows 需在同一内网下

  • 在Windows端选择一个文件夹共享出来 (右键文件夹, 属性-共享-高级共享)
  • 回到Linux, mkdir一个共享的文件夹
  • 编辑 /etc/fstab
    • 添加新行:
      //[Windows_IP]/[Path] [Linux_Path] cifs defaults,username=[Windows_User],password=[Win_User_Pwd] 0 0
  • 新建一个.sh脚本 vim [name].sh
    • 添加代码:
      • sleep 10
        mount -a
  • 设置开机启动脚本, 编辑 /etc/rc.local
    • 添加新行:
      • sh [Full_path_of_script]/[name].sh

加入sleep 10这行代码是因为实际操作中, 树莓派无法立即挂载文件夹, 需等待一段时间后才能成功挂载, 可能是玄学sleep

测试过sleep 5, 未能挂载