NAS: 群晖 Synology DSM7 套件迁移脚本
https://github.com/zawn/DSM-Package-Transfer
注意!此脚本存在问题,不建议使用:
实测:
Hyper Backup: 客户端加密时,查看版本列表,输入密码提示:无法执行此操作,可能是因为网络连接不稳定或系统正忙。请稍后再试。ssh查看日志,提示:synoscgi_SYNO.SDS.Backup.Client.Common.Target_1_password_verify[2814]: target.cpp:80 failed to verify
Synology Drive Server:打开套件时无法使用,提示:请进入“套件中心”> Synology Drive Server,然后单击“操作”>“运行”。
2023.08.01 更新v0.2
- 添加套件外部链接检测功能。
- 提示:部分套件会链接到套件文件夹外部的文件(夹),迁移后一般还能正常运行,如果外部的文件(夹)在需要调整的存储空间上,你可能需要手动移动它们,同时修改对应的软链接。
- 增加显示特定存储空间上安装的套件清单功能。
- 增加对迁移目标存储空间的检测。
一、介绍
用于在Synology DSM7 中将套件迁移到不同的存储空间。
二、测试平台
所有功能在DS3615xs DSM 7.1.1-42962 Update 2中测试通过。
经测试的套件
1. 官方套件
套件目录名 | 套件名称 | 迁移结果 |
---|---|---|
CloudSync | Cloud Sync | 正常 |
SynologyApplicationService | Synology应用程序服务 | 正常 |
StorageAnalyzer | 存储空间分析器 | 正常 |
Node.js_v12 | Node.js v12 | 正常 |
SynologyPhotos | Synology Photos | 正常 |
LogCenter | 日志中心 | 正常 |
2. SynoCommunity套件
套件目录名 | 套件名称 | 迁移结果 |
---|---|---|
transmission | Transmission | 正常 |
vim | Vim | 正常 |
三、原理
- 所有套件均安装在/var/packages目录,进入相应套件(以StorageAnalyzer为例)的目录可以看到其结构。
- 其中"etc" "home" "target" "tmp" "var"目录链接到了对应存储空间的相应目录
- 操作步骤:
1)复制原存储空间的目录到新存储空间;
2)修改"etc" "home" "target" "tmp" "var"链接到新存储空间。
四、使用说明
- 为避免数据丢失,操作前建议先停用要迁移的套件
- 执行
sudo -i
获得root权限 wget https://gitee.com/kangzeru/dsm_-transferpackage/raw/master/transferpackage.sh
chmod +x transferpackage.sh
./transferpackage.sh list
显示所有套件目录,找到要迁移套件的目录名./transferpackage.sh transfer [packagefolder_name] [targetvolume_num]
例如:要把“存储空间分析器”套件迁移到存储空间2,则运行./transferpackage.sh transfer StorageAnalyzer 2
- 查看迁移结果