物理黑群晖 DSM 7.0 安装 / 升级指南
准备工作
- 一块容量 2GB 以上的 U 盘,这个 U 盘将刷写 TCRP 并作为黑群晖的引导盘使用,需要一直插在黑群晖上。下文用 "引导 U 盘" 代指该 U 盘
- 将要安装黑群晖的主机,并在 BIOS 进行以下设置
- 如果 CPU 是 AMD 的,开启 C1E 选项
- 硬盘模式设为 AHCI
- 开启所有硬盘端口的热插拔功能
- 如果不使用,禁用 M.2 SATA 接口
- 良好的国际互联网连接条件
Step 1 刷写 TinyCore RedPill Loader
TinyCore RedPill Loader,详细介绍参见 RedPill Tinycore loader - Developer Discussion Room - XPEnology Community
以下简称 TCRP。
到 GitHub - pocopico/tinycore-redpill 下载 TCRP 镜像。
镜像的选择:
tinycore-redpill.vX.X.X.img.gz
: for BIOS/CSM/Legacy boot from USB flash drivetinycore-redpill-uefi.vX.X.X.img.gz
: for UEFI/EFI boot from USB flash drivetinycore-redpill.vX.X.X.vmdk.gz
: for virtual machine SATABOOT from disk image
使用 Rufus 或其他类似的刷写镜像的软件工具,将下载好的 TCRP 镜像刷写到准备好的引导 U 盘中。
Step 2 进入 TCRP & 进行预配置
将引导 U 盘接入要安装黑群晖的机器上。
插入所有你打算在黑群晖中使用的硬盘,接好网线
对于迁移:
请将先前在旧版黑裙上使用的所有硬盘移除
先使用一块干净的其他 HDD/SSD 进行测试安装
启动机器,引导进入 TCRP,然后设法进入命令行。
- 你可以连接显示器,并使用鼠标键盘直接操作 GUI。此时点击系统界面右下角的 Terminal 图标即可
- 你也可以使用机器的局域网 IP,通过 SSH 客户端连接
登录信息:
- username: tc
- password: P@ssw0rd
进入命令行后,首先更新相关脚本文件:
1 | ./rploader.sh update |
随后,根据自己需要,确定要安装的黑群晖平台及其对应 DSM 版本号。
参考 DSM 7.x Loaders and Platforms - Tutorials and Guides - XPEnology Community
脚本可输出当前版本 TCRP 支持生成的平台与其对应的 DSM 版本号
1 | ./rploader.sh |
本文将以平台 apollolake-7.1.0-42661
为例。
Step 3 根据设备信息自定义 Loader 生成参数
TCRP 生成 Loader 的参数储存在 user_config.json
中,你可以通过自行编辑该文件来手动自定义参数。
你也可以使用 TCRP 的脚本帮助确定对应自己设备的自定义参数。
以平台 DS918+
为例,以下是使用 TCRP 定义生成参数的示例:
设置引导 U 盘的 VID/PID
1 | ./rploader.sh identifyusb |
设置 SN 与 MAC 地址
SN 将会随机生成。如需特别指定,请手动修改 user_config.json
。
对于 MAC 地址,如需随机生成:
1 | ./rploader.sh serialgen DS918+ |
如果希望使用设备主板网口的真实 MAC 地址:
1 | ./rploader.sh serialgen DS918+ realmac |
建议使用主板真实 MAC 地址,以便设置 WOL 唤醒
设置硬盘插槽映射(Drive Slot Mapping)
为确保硬盘能够被 DSM 正确读取,需要配置参数以将设备硬件的硬盘控制器正确映射到 DSM 的插槽中。
根据不同的平台,硬盘插槽映射有 SataPortMap/DiskIdxMap
和 Device Tree
两种,请参考 DSM 7.x Loaders and Platforms - Tutorials and Guides - XPEnology Community , 根据自己选择的平台来确定你所需要使用的硬盘插槽映射模式。
对于使用 SataPortMap/DiskIdxMap
的平台,你需要在生成 Loader 前配置映射参数。
首先,先尝试使用 TCRP 自动配置映射参数:
1 | ./rploader.sh satamap |
此时,脚本会自动寻找设备上的硬盘控制器,同时依次输出每个控制器下的硬盘接口数与已连接硬盘数,并要求你检查自动检测到的每个硬盘控制器的硬盘接口数是否正确:
- 如不正确,输入数字指定该硬盘控制器的硬盘接口数。
- 如果正确,回车接受该硬盘控制器的自动检测结果。
分别检查完成后,TCRP 脚本将会输出配置参数,检查无误后即可保存到文件。
如果自动生成的映射参数存在问题,可以在保存自动生成参数后编辑user_config.json
,进行调整。
手动配置 / 调整映射参数,请参考以下文章:
- DiskIdxMap、SataPortMap 设置方法及思路 - 黑白群晖 - 隔壁网
- 群晖 DSM7.X 版本自动获取 SataPortMap 和 DiskIdxMap 的教程(2022 年 3 月 11 日更新)(转) - TechBlog
示例:
示例设备信息:
华擎 J3455-ITX
- 主板板载的 4 个 SATA3 接口,其中:
- 2 * SATA (板载 1-2) from CPU 原生硬盘控制器
- 2 * SATA (板载 3-4) from 板载 ASMedia ASM1061
- m.2 wifi 上接入的 2 口 SATA 扩展卡
- 2 * SATA (扩展 1-2) from JMS583
需求:
主板的 4 个 SATA 口依次对应 DSM 的硬盘槽 1-4,扩展卡的 2 个 SATA 口对应 DSM 的硬盘槽 5-6
- DSM 硬盘槽 1-2 -> 2 * SATA (板载 01-02) from CPU 原生硬盘控制器
- DSM 硬盘槽 3-4 -> 2 * SATA (板载 03-04) from 板载 ASMedia ASM1061
- DSM 硬盘槽 5-6 -> 2 * SATA (扩展 01-02) from 扩展卡 JMS583
首先,使用 TCRP 的脚本自动检测并生成映射参数
1 | # 识别到的第1个控制器为板载的CPU原生硬盘控制器,实际共2个SATA端口 |
可以看到,脚本自动生成的映射参数为:
1 | SataPortMap=222 |
由于 TCRP 脚本把 SATA 扩展卡的控制器识别为了第二个控制器,而把提供板载 3-4 号 SATA 口的 ASMedia ASM1061 识别为了第三个控制器,根据自动生成的参数,群晖上实际识别的结果是:
- DSM 硬盘槽 1-2 -> 2 * SATA (板载 1-2) from CPU 原生硬盘控制器
- DSM 硬盘槽 3-4 -> 2 * SATA (扩展 1-2) from 扩展卡 JMS583
- DSM 硬盘槽 5-6 -> 2 * SATA (板载 3-4) from 板载 ASMedia ASM1061
与前面提到的需求不符,因此需要手动编辑映射参数,
修改 user_config.json
中的硬盘端口映射参数为:
1 | SataPortMap=222 |
修改后,后两个硬盘控制器端口的映射关系相互交换,此时映射关系如下。
- DSM 硬盘槽 1-2 -> 2 * SATA (板载 01-02) from CPU 原生硬盘控制器
- DSM 硬盘槽 3-4 -> 2 * SATA (板载 03-04) from 板载 ASMedia ASM1061
- DSM 硬盘槽 5-6 -> 2 * SATA (扩展 01-02) from 扩展卡 JMS583
对于使用 Device Tree
的平台,上述命令可跳过,硬盘映射在生成 Loader 时会自动配置。
检查 Loader 生成配置文件
检查 TCRP 自动生成的 Loader 生成配置文件
对于命令行:
1 | vi user_config.json |
也可以使用 TCRP 系统 GUI 提供的图形编辑器:
Step 4 添加自定义驱动扩展(可选)
你可以添加自定义的驱动扩展,以便使用不能在群晖下免驱的设备 / 群晖没有提供的功能驱动 / 修复特定设备的兼容性问题。
显示指定的平台和 DSM 版本号可用的扩展
1 | ./rploader.sh listmods <architecture>-<version>-<DSMreleasenumber> |
示例:
1 | ./rploader.sh listmods apollolake-7.1.0-42661 |
添加特定扩展:
1 | ./rploader.sh ext <architecture>-<version>-<DSMreleasenumber> <extensionurl> |
示例 & 常用扩展
添加 acpid 以修复机箱关机按钮失效的问题:
1 | ./rploader.sh ext apollolake-7.1.0-42661 add https://raw.githubusercontent.com/pocopico/rp-ext/master/redpill-acpid/rpext-index.json |
如果后续生成固件时,提示该扩展无法在所选平台构建,请尝试使用下面的链接添加 acpid 扩展
1 | ./rploader.sh ext apollolake-7.1.0-42661 add https://raw.githubusercontent.com/pocopico/redpill-load/develop/redpill-acpid/rpext-index.json |
添加 Virtio 支持:
1 | ./rploader.sh ext apollolake-7.1.0-42661 add https://raw.githubusercontent.com/pocopico/rp-ext/master/v9fs/rpext-index.json |
添加对 RTL8125 2.5G 网卡的支持
1 | ./rploader.sh ext apollolake-7.1.0-42661 add https://raw.githubusercontent.com/pocopico/rp-ext/master/r8125/rpext-index.json |
Step 5 生成 Loader
请确保全程拥有良好的全球网络连接条件
检查确认配置的生成参数无误后,运行脚本生成 Loader
1 | ./rploader.sh build <architecture>-<version>-<DSMreleasenumber> |
示例:
1 | ./rploader.sh build apollolake-7.1.0-42661 |
此时,TCRP 会根据配置好的生成参数,自动从网上下载生成 Loader 所需的文件,并完成 Loader 生成工作。Loader 生成完成后,会自动刷入引导 U 盘,并加入到引导 U 盘的引导菜单中,并将 Loader 作为默认引导项。
如果中途生成失败,希望清理先前构建时产生的缓存,执行:
1 | ./rploader.sh clean |
Step 6 备份(可选)
备份在 TCRP 中的已配置的参数与设置,下次进入 TCRP 会自动加载
1 | ./rploader.sh backup |
备份前一次生成好的 Loader 为文件
1 | ./rploader.sh backuploader |
Step 7 重启并安装 DSM
重启设备
1 | exitcheck.sh reboot |
重启后,引导 U 盘进入 grub,系统会默认引导到先前生成并刷写好的 Loader 中。
如有必要,你也可以手动选择。
进入后,等待几分钟,然后使用 https://find.synology.com 或者 Synology Assistant 查找黑群晖设备。
如果一切正常,你将能看到一台状态为 "DSM 未安装" 或 "可迁移" 的群晖设备。
浏览器打开显示的 ip 地址,并在页面中上传 Loader 对应平台和版本号的 DSM 系统安装文件,随后跟随流程完成安装 / 迁移即可。
注意: 当安装过程中选择 DSM 系统更新策略时,请一定注意选择手动升级,不要开启自动升级。
从 DSM 6.x (Jun’s loader) 迁移升级
从 DSM 6.x (Jun’s loader) 迁移升级至本文 DSM 7.x(RedPill Loader),请遵循以下步骤:
- 操作前备份好黑群晖上的所有数据,同时卸载掉 SSD 缓存
- 黑群晖设备关机后,把所有硬盘和缓存用的 SSD 卸载移除,同时拔掉旧有安装了 Jun’s loader 的 DSm6.x 引导 U 盘
- 准备好调试用的 1 个新的引导 U 盘和 1 块干净的 HDD/SSD
- 参考上文步骤在新的引导 U 盘上配置 RedPill Loader,并使用准备好的干净 HDD/SSD 进行测试
- 确认新 Loader 没有问题一切正常后,关机将测试用的 HDD/SSD 替换回原有的硬盘,先不要插上缓存用的 SSD
- 重新开机,使用 https://find.synology.com 或者 Synology Assistant 查找黑群晖设备,在确认设备状态为 "DSM 可迁移" 后浏览器打开设备管理页面。
- 根据提示进行升级迁移操作。在迁移进度正式开始后,拔掉网线以避免迁移过程中自动升级到不匹配 Loader 的版本。
- 迁移完成并确认一切正常后,重新安装并配置 SSD 缓存
后续 DSM7. x 更新升级方法
在 TCRP 适配新版本 DSM7. x 后:
- 手动在 DSM 管理面板安装更新
- 安装后重启时引导进入 TCRP,使用命令行更新 Loader:
1 | ./rploader.sh backup |
重启后,需要在引导界面手动选回默认的 RedPill Loader 引导项
参考资料
- GitHub - pocopico/tinycore-redpill
- Tutorial: Install/Migrate to DSM 7.x with TinyCore RedPill (TCRP) Loader - Tutorials and Guides - XPEnology Community
- DSM 7.x Loaders and Platforms - Tutorials and Guides - XPEnology Community
- [BETA] About REDPILL SataPortMap and DiskIdxMap - Tutorials and Guides - XPEnology Community
- sata and sas config commands in grub.cfg and what they do - Tutorials and Guides - XPEnology Community
- DiskIdxMap、SataPortMap 设置方法及思路 - 黑白群晖 - 隔壁网
- 群晖 DSM7.X 版本自动获取 SataPortMap 和 DiskIdxMap 的教程(2022 年 3 月 11 日更新)(转) - TechBlog