我也遇到了这个问题,我说下我的情况以及解决方案,供后人参考:
问题描述:我通过Rclone 挂载云盘到本地文件夹,在文件应用中可以正常访问,但通过应用商店下载的应用,都无法在设置中授权挂载文件夹的访问权限。
与AI沟通的解决方案:
这份文档为您整理了在 飞牛 OS (FnOS) 中解决 Rclone 挂载盘权限冲突(“未知网络错误”) 的完整操作流程。
飞牛 OS (FnOS) 挂载盘权限修复指南
1. 问题现象
在飞牛 OS 的应用设置(如 Trim, Emby, Jellyfin 等)中,点击 “允许访问以下文件夹” 并选择 Rclone 挂载的目录(例如 /vol1/1000/nas-real)时,系统提示:
“未知网络错误”
2. 问题原因
飞牛 OS 在分配权限时,会尝试对目标文件夹执行“修改所有者” (chown) 或“修改权限” (chmod) 操作。
- Rclone 的限制:Rclone 挂载的是虚拟文件系统,默认不支持底层 Linux 权限修改操作,因此拒绝了飞牛的请求。
- 结果:飞牛前端收到拒绝信号,报错“未知网络错误”。
3. 解决方案:“偷梁换柱”法
核心思路是:暂停 Rclone -> 创建同名本地空文件夹 -> 让飞牛把权限设置在这个空文件夹上 -> 修改 Rclone 配置允许覆盖 -> 重启 Rclone。
步骤一:停止 Rclone 挂载服务
首先,我们需要把“云端”撤掉,露出底下的“本地磁盘”。
Bash
# 停止加密盘挂载服务
systemctl stop rclone3
# 停止非加密盘挂载服务 (如果有)
systemctl stop rclone-nopw
步骤二:创建“替身”文件夹
在挂载点路径上,手动创建一个真实的本地文件夹,并赋予其满权限。这样飞牛就能对其进行操作了。
Bash
# 创建文件夹 (请替换为您实际的挂载路径)
mkdir -p /vol1/1000/nas-real/movies
mkdir -p /vol1/1000/nas/139
# 赋予 777 权限,确保飞牛没有任何理由报错
chmod -R 777 /vol1/1000/nas-real
chmod -R 777 /vol1/1000/nas
步骤三:在飞牛 UI 中设置权限
- 回到 飞牛 OS 网页端 -> 应用中心 -> 应用设置。
- 找到目标应用(如 Trim-media)。
- 点击 “允许访问以下文件夹”。
- 选择刚才创建的路径(如
存储空间1/.../nas-real/movies)。
- 点击确认。
- 结果:此时应当提示成功,因为它操作的是刚才创建的本地文件夹。
步骤四:修改 Rclone 服务配置 (关键)
因为挂载点现在不再是空的(里面有了真实的文件夹),Rclone 默认会拒绝挂载。必须添加参数允许它“覆盖”在非空目录上。
修改对象:/etc/systemd/system/rclone3.service (以及 rclone-nopw.service)
-
编辑服务文件:
Bash
nano /etc/systemd/system/rclone3.service
-
在 ExecStart 命令块中,添加 --allow-non-empty 参数:
Ini, TOML
ExecStart=/usr/bin/rclone mount 139-chunk:/ /vol1/1000/nas-real \
--config /root/.config/rclone/rclone.conf \
--allow-other \
--allow-non-empty \ <--- 【必须新增这一行】
--umask 000 \
... (其他参数保持不变)
-
保存并退出 (Ctrl+O -> Enter -> Ctrl+X)。
-
如果有其他服务(如 rclone-nopw),请重复此步骤。
步骤五:重启服务并验证
现在重新启动 Rclone,让云端数据覆盖在本地文件夹之上。
Bash
# 1. 重载系统配置
systemctl daemon-reload
# 2. 启动服务
systemctl start rclone3
systemctl start rclone-nopw
# 3. 检查状态 (确保是 active running)
systemctl status rclone3
4. 验证结果
- 飞牛应用:应用现在应该能正常启动,并且在其 Docker 配置中已经拥有了正确的路径映射。
- 文件访问:进入目录
ls /vol1/1000/nas-real,应该能看到云端的文件,而不是刚才创建的空文件夹。
- 读写权限:由于 Rclone 设置了
--allow-other 和 --umask 000,应用可以正常读写云端数据。
5. 维护备忘 (FAQ)
- Q: 以后新增一个应用(比如 Plex),还要做一遍吗?
- A: 是的。只要飞牛 UI 需要点“允许访问”按钮,都需要先
stop 服务,让飞牛把配置写进底层文件夹,再 start 服务。
- Q: 本地文件夹里的东西还在吗?
- A: 还在,只是被 Rclone 盖住了(隐藏了)。当你卸载或停止 Rclone 时,那个本地文件夹又会出现。
- Q: 为什么日志里会有
Directory is not empty 报错?
- A: 说明你忘记在 Service 文件里加
--allow-non-empty 参数了。请补上该参数。