Ubuntu 恢复 Jellyfin 备份数据的实用步骤
一 恢复前的准备
- 确认备份内容:至少包含 Jellyfin 的配置与数据库(常见为 /var/lib/jellyfin 或容器内的 /config),以及你的媒体库目录(如 /media、/mnt/media 等)。
- 版本匹配:尽量使用与备份时相同或更高的 Jellyfin 版本,避免数据库/插件不兼容。
- 规划路径:记录当前媒体库挂载路径与备份中的路径差异,恢复后需要在 Jellyfin 管理后台调整“媒体库”路径。
- 权限与所有权:确保恢复后的目录对运行 Jellyfin 的用户(常见为 jellyfin:jellyfin)具备正确权限。
- 全新安装建议:若是全新系统,先完成 Jellyfin 安装与基础配置,再执行恢复。
二 按部署方式选择恢复步骤
-
本机系统服务部署(APT 安装)
-
停止服务
sudo systemctl stop jellyfin
-
恢复数据目录(两种常见做法,二选一)
- 整库覆盖(最稳妥,包含数据库与缓存)
sudo rsync -a --info=progress2 /path/to/backup/jellyfin/ /var/lib/jellyfin/
- 仅覆盖配置与数据库(保留现有缓存/插件增量)
sudo rsync -a --info=progress2 /path/to/backup/jellyfin/{config,database}/ /var/lib/jellyfin/{config,database}/
-
修正权限(如备份来源用户/UID不同)
sudo chown -R jellyfin:jellyfin /var/lib/jellyfin
-
启动服务并验证
sudo systemctl start jellyfin
sudo systemctl status jellyfin
-
在 Web 管理端:进入“控制台 > 仪表板 > 库”,检查/修正媒体库路径,保存后触发“立即扫描”。
-
Docker 容器部署
-
停止并移除旧容器(数据已外部化到卷或宿主机目录时可安全移除)
docker stop jellyfin && docker rm jellyfin
-
恢复配置目录(示例把备份恢复到宿主机的 /opt/jellyfin/config)
sudo rsync -a --info=progress2 /path/to/backup/jellyfin/config/ /opt/jellyfin/config/
-
启动新容器并挂载恢复后的目录与媒体库
docker run -d --name jellyfin
-p 8096:8096
-v /opt/jellyfin/config:/config
-v /path/to/your/media:/media
jellyfin/jellyfin:latest
-
首次访问 Web 界面,在“控制台 > 仪表板 > 库”中校正媒体库路径并执行“立即扫描”。
三 媒体库与权限修复要点
- 路径变更处理:若备份与当前媒体库挂载点不同,需在“控制台 > 仪表板 > 库”编辑每个库,将路径调整为当前实际路径,保存后“立即扫描”。
- 权限与所有权:若 Jellyfin 无法读取媒体文件,常见原因为目录所有者/权限不当。
- 快速修正示例(按需调整路径与用户组):
sudo chown -R jellyfin:jellyfin /path/to/your/media
sudo find /path/to/your/media -type d -exec chmod 755 {} ;
sudo find /path/to/your/media -type f -exec chmod 644 {} ;
- 外部盘/NFS 挂载:确保系统已正确挂载目标盘,并在恢复前完成挂载,避免 Jellyfin 扫描到空目录。
四 常见问题与回滚建议
- 版本不兼容导致启动异常:回退到备份时的 Jellyfin 版本 再恢复,或等待插件/数据库兼容更新。
- 页面显示异常或库为空:优先检查“媒体库路径”是否准确,执行“立即扫描”,必要时重启服务。
- 权限错误:核对 /var/lib/jellyfin 与媒体库目录的所有者为 jellyfin:jellyfin,必要时使用上面的权限修正命令。
- 回滚方案:恢复前先备份当前状态(例如将现有 /var/lib/jellyfin 重命名为 /var/lib/jellyfin.bak-$(date +%F)),出现异常可快速还原。