Riven常见问题解决:Plex库显示为空、挂载传播问题排查
【免费下载链接】rivenHandle your Media Library with ease!项目地址: https://gitcode.com/gh_mirrors/riv/riven
Riven是一款强大的媒体库管理工具,能轻松处理你的媒体库,支持通过Debrid和第三方服务如Overseerr、Mdblist等实现Plex torrent流媒体播放。在使用过程中,用户可能会遇到Plex库显示为空或挂载传播等问题,本文将详细介绍这些常见问题的解决方法。
Plex库显示为空问题排查
确认Plex库配置要求
Riven目前需要Plex库具有特定的部分,这是强制性要求。不过,未来计划使其可自定义,以支持用户偏好的其他库。相关内容可查看项目中的README.md文件。
检查文件系统挂载路径设置
在Riven设置中,需将文件系统挂载路径设置为容器路径(通常为/mount),而非主机路径。Riven(如果容器化)和Plex应引用其库的相同容器内路径(例如/mount/movies、/mount/shows)。这一步骤在README.md的“Troubleshooting: Plex shows empty /mount after Riven restart”部分有详细说明。
验证媒体文件是否在VFS中可用
媒体项的任何文件系统条目是否在已挂载的VFS中可用,可通过检查相关代码来确认。例如在src/program/media/item.py中,有判断媒体项是否在VFS中可用的逻辑。
挂载传播问题排查
确保主机挂载目录为共享绑定挂载
将主机挂载目录标记为共享绑定挂载(每次启动时执行一次),可通过以下命令:
sudo mkdir -p /path/to/riven/mount sudo mount --bind /path/to/riven/mount /path/to/riven/mount sudo mount --make-rshared /path/to/riven/mount findmnt -T /path/to/riven/mount -o TARGET,PROPAGATION # 预期结果:shared 或 rshared详细步骤可参考README.md。
验证Plex容器内的传播设置
容器还必须递归接收挂载事件(rslave或rshared),可通过以下命令验证:
docker exec -it plex sh -c 'findmnt -T /mount -o TARGET,PROPAGATION,OPTIONS,FSTYPE'PROPAGATION应显示为rslave或rshared,FSTYPE在RivenVFS挂载时应显示为fuse。在docker-compose中为Plex配置时,确保绑定包含挂载传播(必要时还有SELinux标签),例如:
- /path/to/riven/mount:/mount:rslave,z这些内容在README.md中均有详细介绍。
处理陈旧的FUSE挂载
如果之前的FUSE实例在主机上未干净地卸载,陈旧的挂载可能会阻止重新挂载,可使用以下命令清除:
sudo fusermount -uz /path/to/riven/mount || sudo umount -l /path/to/riven/mount此命令在README.md的故障排除部分有说明。
检查RivenVFS的挂载状态
Riven的文件系统服务会检查RivenVFS是否已挂载,若未挂载会记录错误。相关代码可查看src/program/services/filesystem/filesystem_service.py。同时,RivenVFS自身也有挂载生命周期管理,包括挂载、卸载和清理等操作,具体实现可参考src/program/services/filesystem/vfs/rivenvfs.py。
总结
遇到Plex库显示为空或挂载传播问题时,首先应检查Plex库配置和文件系统挂载路径设置,确保媒体文件在VFS中可用。对于挂载传播问题,要确认主机和容器内的挂载传播设置正确,并及时处理陈旧的FUSE挂载。通过以上方法,大部分相关问题都能得到有效解决。如果问题仍然存在,可进一步查看项目中的相关文档和代码,或寻求社区支持。
【免费下载链接】rivenHandle your Media Library with ease!项目地址: https://gitcode.com/gh_mirrors/riv/riven
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考