RedPill 是使 DSM 7.x 能够在非 Synology 硬件上运行的核心技术。这篇文章旨在作为配置的权威教程/参考@pocopico的TinyCore RedPill(TCRP)加载器。它解释了如何在裸机上安装 TCRP,即将 DSM 作为 NAS 硬件上的唯一操作系统。此处提供了使用 ESXi 虚拟机管理程序安装 TCRP 的教程。教程和指南论坛中还有其他虚拟机管理程序教程。
TCRP 使用两步过程。首先,Linux 操作系统 (TinyCore) 启动并评估 NAS 硬件配置。因此,最好在开始 TCRP 安装程序之前安装您计划使用的硬件(特别是磁盘控制器和网卡)。
然后,创建一个个性化的加载程序(RedPill)。此加载程序用于安装和运行 DSM。之后,您可以在使用 RedPill 启动 DSM 和启动回 TinyCore 之间切换,以根据需要调整和重建加载程序。
完成安装需要基本的 Linux 命令行技能。本教程提供了所需命令的示例,但准确的语法和大小写至关重要。如果不熟悉,请研究并查看以下最小命令列表:
ls 显示当前目录 cat <file> 中的文件,显示指定文件
的内容 PWD 显示当前目录名
cd <目录路径>更改为指定目录
(与 Windows 规则相同,只是使用正斜杠而不是反斜杠)。没有参数,它返回到“主”TCRP 目录
vi<file> 文件编辑器,如果需要,用于手动编辑配置文件
本教程的维护是为了与 pocopico 稳定存储库保持一致。由于 TCRP 是完全开源的,任何人都可以分叉自己的存储库并为开发做出贡献,pocopico 现在维护一个单独的开发存储库。由于最好的功能和想法经过全面审查和测试,随着时间的推移,它们可能会被合并到稳定存储库中。
如果使用 pocopico 稳定存储库以外的存储库、脚本或 shell,则加载程序的行为可能会完全不同,并且本教程中的说明和故障排除步骤可能不再适用。在开源社区中,您可以使用所需的任何开发资源,但您增加了理解、审查和测试系统上代码的额外责任。
第 1 步。选择 DSM 平台/架构
评估您预期的 NAS 硬件和您是 DSM 的预期用途,并选择最能满足您需求的平台。参考信息: https://xpenology.com/forum/topic/61634-dsm-7x-loaders-and-platforms/
记下所选平台(例如 DS918+)、相应的架构(例如 apollolake)以及平台是否使用 SataPortMap/DiskIdxMap 或 Device Tree 进行插槽映射。稍后将需要此信息。
现在,确保 NAS 硬件兼容,并正确准备:
- x86-64 兼容 CPU 具有两个或更多内核
- 每个平台都有最大的线程支持!任何多余的线程都将被忽略
- 对于某些平台,英特尔 CPU 必须是第 4 代“Haswell”或更新的 FMA3 指令集
相应的 AMD CPU 架构为“桩机”或更高版本 - 基于 AMD 的系统可能需要停用 BIOS 中的 C1E 选项
- 2GB 或更多内存
- 2GB 或更大的 U 盘
- 将 BIOS 配置为仅从 USB 闪存驱动器启动
- 首选 SATA 磁盘控制器,但 SCSI/SAS 兼容
- 重要说明:所有 SATA 控制器都必须配置为 AHCI 模式
- 带端口倍增器的 SATA 控制器不兼容
- ATA 控制器不兼容(如果可能,禁用 BIOS 中的嵌入式 ATA)
- 至少一个 SATA/SCSI/SAS 驱动器(硬盘或固态硬盘),最小大小 21GB
- 重要说明:如果 BIOS/控制器支持热插拔,则在每个磁盘端口上启用 SATA 端口热插拔
- 重要说明:禁用未使用的 M.2 SATA 端口(如果 BIOS/控制器支持)
- NVMe 驱动器除了用作专用缓存设备外不可用
- 主机总线适配器当前与设备树平台不兼容
- 安装任何用作缓存设备的 NVMe 驱动器
- 在设备树平台上,必须在安装加载程序之前安装 NVMe 驱动器,以便识别它们
第 2 步。下载 TCRP 并将映像写入 U 盘
最新的 pocopico 稳定加载器代码始终在此处链接:https://xpenology.com/forum/topic/7848-links-to-loaders/
下载tinycore-redpill 7.x加载器并将其保存到您的个人计算机。然后,使用 zip 管理器打开它以显示启动映像:
tinycore-redpill.vX.X.X.img.gz (用于从 USB 闪存驱动器启动的 BIOS/CSM/Legacy 引导) tinycore-redpill-uefi.vX.X.X.img.gz (用于从 USB 闪存驱动器启动的 UEFI/EFI 引导) tinycore-redpill.vX.X.X.vmdk.gz (适用于虚拟机 SATABOOT 从磁盘映像)
选择与 NAS 主板的启动功能匹配的启动映像。如果不确定,请选择 BIOS/CSM/传统引导。将 gzip 文件保存到您的个人计算机,然后使用 zip 存档管理器打开它并保存未压缩的版本。
使用 Win32DiskImager 或其他适当的工具将未压缩的映像写入 USB 闪存驱动器。
USB闪存驱动器用于存储TinyCore和它生成的RedPill加载程序。它是可操作的XPEnology系统的永久组件。即使在 DSM 安装完成且 NAS 完全启动并运行后,也不要将其卸下。
第 3 步。启动到 TinyCore 并完成预配置更新
在安装 USB 闪存驱动器的情况下启动您的 NAS,TinyCore 将启动。然后,使用以下任一方法启动命令行会话:
- 单击TinyCore桌面右下角的终端图标以启动控制台窗口
- 使用计算机上的 ssh 客户端(例如 PuTTY)连接基于网络的控制台
- 请咨询您的DHCP服务器/路由器以获取IP地址分配(TinyCore的主机名为“box”)
- 登录凭据:tc/P@ssw0rd
当显示 Linux 命令行提示符 ($) 时,更新 TCRP 脚本
./rploader.sh update
Checking Internet Access -> OK
Checking if a newer version exists -> There is a newer version on the repo should we use that ? [yY/nN] Y
OK, updating, please re-run after updating
Updating tinycore loader with latest updates
Backing up files to /mnt/sda3//mydata.tgz
然后,更新 TCRP 支持文件
./rploader.sh fullupgrade <downloads snipped> Current /home/tc size is 114M , try to keep it less than 1GB as it might not fit into your image Should i update the sda with your current files [Yy/Nn] Y Backing up home files to sda : Backing up files to /mnt/sda3//mydata.tgz
最后,选择 DSM 版本号
群晖科技提供的每个 DSM 版本都有一个版本号。您可以通过运行不带参数的脚本来显示 TCRP 支持的平台和版本的组合
./rploader.sh <command help snipped> Available platform versions: ---------------------------------------------------------------------------------------- ds1019p-7.0.1-42218 ds1019p-7.1.0-42661 ds1019p-7.1.1-42962 ds1019p-7.2.0-64570 ds1520p-7.0.1-42218 ds1520p-7.1.0-42661 ds1520p-7.1.1-42962 ds1520p-7.2.0-64570 ds1621p-7.0.1-42218 ds1621p-7.0.1-42218-JUN ds1621p-7.1.0-42661 ds1621p-7.1.1-42962 ds1621p-7.2.0-64570 ds1621xsp-7.0.1-42218 ds1621xsp-7.1.0-42661 ds1621xsp-7.1.1-42962 ds1621xsp-7.2.0-64570 ds2422p-7.0.1-42218 ds2422p-7.1.0-42661 ds2422p-7.1.1-42962 ds2422p-7.2.0-64570 ds3615xs-7.0.1-42218 ds3615xs-7.0.1-42218-JUN ds3615xs-7.1.0-42661 ds3615xs-7.1.1-42962 ds3615xs-7.2.0-64570 ds3617xs-7.0.1-42218 ds3617xs-7.0.1-42218-JUN ds3617xs-7.1.0-42661 ds3617xs-7.1.1-42962 ds3617xs-7.2.0-64570 ds3622xsp-7.0.1-42218 ds3622xsp-7.0.1-42218-JUN ds3622xsp-7.1.0-42661 ds3622xsp-7.1.1-42962 ds3622xsp-7.2.0-64570 ds723p-7.0.1-42218 ds723p-7.1.0-42661 ds723p-7.1.1-42962 ds723p-7.2.0-64570 ds918p-7.0.1-42218 ds918p-7.0.1-42218-JUN ds918p-7.1.0-42661 ds918p-7.1.1-42962 ds918p-7.2.0-64570 ds920p-7.0.1-42218 ds920p-7.0.1-42218-JUN ds920p-7.1.0-42661 ds920p-7.1.1-42962 ds920p-7.2.0-64570 ds923p-7.0.1-42218 ds923p-7.1.0-42661 ds923p-7.1.1-42962 ds923p-7.2.0-64570 dva1622-7.0.1-42218 dva1622-7.1.0-42661 dva1622-7.1.1-42962 dva1622-7.2.0-64570 dva3219-7.0.1-42218 dva3219-7.1.0-42661 dva3219-7.1.1-42962 dva3219-7.2.0-64570 dva3221-7.0.1-42218 dva3221-7.0.1-42218-JUN dva3221-7.1.0-42661 dva3221-7.1.1-42962 dva3221-7.2.0-64570 fs2500-7.0.1-42218 fs2500-7.1.0-42661 fs2500-7.1.1-42962 fs2500-7.2.0-64570 fs6400-7.0.1-42218 fs6400-7.1.0-42661 fs6400-7.1.1-42962 fs6400-7.2.0-64570 rs3413xsp-7.0.1-42218 rs3413xsp-7.1.0-42661 rs3413xsp-7.1.1-42962 rs3413xsp-7.2.0-64570 rs3618xs-7.0.1-42218 rs3618xs-7.1.0-42661 rs3618xs-7.1.1-42962 rs3618xs-7.2.0-64570 rs4021xsp-7.0.1-42218 rs4021xsp-7.1.0-42661 rs4021xsp-7.1.1-42962 rs4021xsp-7.2.0-64570 sa6400-7.0.1-42218 sa6400-7.1.0-42661 sa6400-7.1.1-42962 sa6400-7.2.0-64570
第 4 步。配置系统特定参数
自定义系统参数存储在 user_config.json 文件中。这可以手动编辑,或者 TCRP 可以帮助确定硬件的适当值。
- U 盘 VID/PID:TCRP 可以在 USB 闪存驱动器中查询 DSM 用于在启动期间识别加载程序的硬件 vid/pid 值
./rploader.sh identifyusb Found: Superdisk Flash SerialNumber: 123456 Vendor ID: 0x1234 Product ID: 0x0001 Should i update the user_config.json with these values ? [Yy/Nn] Y
- 序列号/MAC:TCRP 可以为步骤 1 中选择的平台自动生成序列号。此外,它将为 NAS 网卡生成一个随机 MAC 地址。如果您希望改用实际的硬件 MAC 地址,请将“realmac”附加到命令中。示例 1:随机 MAC 地址
./rploader.sh serialgen DS3622xs+ Serial Number for Model : 20C0SQRLR47QM Mac Address for Model DS3622xs+ : 00:11:32:80:B2:36 Should i update the user_config.json with these values ? [Yy/Nn] Y
示例 2:真实 MAC 地址
./rploader.sh serialgen DS3622xs+ realmac Serial Number for Model : 2150SQRGS7N5T Mac Address for Model DS3622xs+ : 00:11:32:57:3A:9B Real Mac Address : 00:0C:24:62:3E:3D Notice : realmac option is requested, real mac will be used Should i update the user_config.json with these values ? [Yy/Nn] Y
- 驱动器插槽映射:TCRP 可以尝试确定如何将 NAS 磁盘控制器端口映射到 DSM 插槽。如果所选平台使用 SataPortMap/DiskIdxMap 进行端口映射,则以下命令将执行此操作。如果它使用设备树进行插槽映射,则可以跳过该命令,因为在加载程序构建期间会自动配置设备树。
./rploader.sh satamap Found "02:02.0 SATA AHCI controller" Detected 4 ports/2 drives. Override # of ports or ENTER to accept: <4> Recommended settings: SataPortMap=4 DiskIdxMap=00 Should I update the user_config with these values ? [Yy/Nn] Y
如果端口数不符合预期,可能是由于主板设计为具有多个控制器的物理端口提供服务,或者由于 M.2 SATA 插槽支持。如有必要,可以使用您喜欢的任何内容覆盖端口计数。注:如果您看到警告消息,则肯定您的某些驱动器无法访问,或者 DSM 安装会遇到问题。评估和调查问题。可以根据需要多次重新运行 satamap 命令以了解系统。
- 人工审核:对于以前的加载器(例如Jun的),这些参数的配置完全是手动的。没有适用于所有硬件的单一设置。即使在使用上述工具后,也请检查并验证参数,了解它们的作用,并在需要时手动编辑。rploader.sh 对 user_config.json 文件所做的任何更改都可以通过显示文件内容来查看
cat user_config.json
并通过编辑文件覆盖
vi user_config.json
您还可以添加一个更简单的编辑器 nano
tce-load -iw nano nano user_config.json
第5步。可选:手动添加驱动程序扩展
虽然 TCRP 可以根据检测到的 NAS 硬件自动添加驱动程序,但它并非万无一失。您可能希望为实际上尚未拥有的设备构建加载程序。并且有些功能仅“选择加入”。因此,存在手动添加驱动程序和其他功能的过程。扩展存储在 Web 上托管的存储库中。主存储库中的所有扩展都可以在此处查看:https://github.com/pocopico/rp-ext
要列出 TCRP 硬件检测算法推荐的所有扩展,请使用
./rploader.sh listmods <architecture>-<version>-<DSMreleasenumber>
./rploader.sh listmods ds918p-7.2.0-64570
若要添加特定扩展,请从列表中选择并引用步骤 1 中的体系结构。
./rploader.sh ext <architecture>-<version>-<DSMreleasenumber> <extensionurl>
这些示例说明了如何添加 ACPI 和 VIRTIO 支持。这些通常是对基本安装的增强功能。
./rploader.sh ext ds918p-7.2.0-64570 add https://raw.githubusercontent.com/PeterSuh-Q3/tcrp-addons/master/acpid/rpext-index.json
./rploader.sh ext ds918p-7.2.0-64570 add https://raw.githubusercontent.com/PeterSuh-Q3/tcrp-addons/master/cpuinfo/rpext-index.json
./rploader.sh ext ds918p-7.2.0-64570 add https://raw.githubusercontent.com/PeterSuh-Q3/tcrp-addons/master/powersched/rpext-index.json
第 6 步。构建加载程序
完成所有准备步骤后,使用命令结构
./rploader.sh 构建加载程序<体系结构>-<版本>-<DSM发布号>
示例 #1:DS918+,自动检测硬件
./rploader.sh build ds918p-7.2.0-64570
示例 #2:DS918+,使用预选驱动程序
./rploader.sh build ds918p-7.2.0-64570 manual
TCRP 会从互联网上下载资源,完成加载器构建的复杂过程。完成后,它会将其写入 USB 闪存驱动器,并将新项目添加到 GRUB 启动菜单中。查看输出中是否有任何错误,并在必要时进行更正。
步骤 7.可选备份任务
将 TinyCore 配置状态保存为默认状态,以便下次启动 TInyCore 时从您的所有设置开始
./rploader.sh backup
将生成的 RedPill 加载程序分区备份到 USB 闪存驱动器上的可用空间
./rploader.sh backuploader
步骤 8:使用 Grub USB 选件重新启动并启动 DSM
使用TinyCore命令干净地关闭并重新启动
exitcheck.sh reboot
首先,显示 GRUB 菜单。如有必要,请使用箭头键确保选择了 USB,然后按 ENTER 键。
加载程序将显示一些初始化信息,并以静默方式启动 DSM。除非连接了串行控制台,否则不会显示任何其他内容(请参阅下面的故障排除部分)。等待几分钟,然后启动 https://find.synology.com 或 Synology 助手桌面实用程序。如果加载程序工作正常,新的“SynologyNAS”将显示为未安装(对于新版本)或现有可迁移 NAS 的名称(如果从以前的版本升级)。
使用浏览器连接到 NAS。
如果显示“出现问题”,请跳转到下面的“基本故障排除”部分。
否则,请浏览至 Synology 下载中心,然后自行加载与加载程序版本中指定的平台和版本号匹配的 DSM 安装 PAT 文件。不要使用存储在TinyCore中的PAT文件。它具有与 DSM 安装不兼容的修改。但是,它的名称可能有助于识别要在下面下载的正确 PAT 文件。
可能有多个文件似乎是候选项。标记为虚拟DSM的PAT文件将不起作用。也可以有具有相同编号的补丁 PAT 文件。这些将不起作用,并且通常小于50MB。正确的 PAT 文件为 300MB 或更大。
将正确的 DSM PAT 文件保存到您的个人电脑后,请将其上载到 NAS。按照提示完成安装。
仅适用于升级:如果 Synology 助手显示未安装,或者在升级过程中提示抹掉磁盘,请停止!部分或全部阵列磁盘对 DSM 不可见。在安装 DSM 7.x 之前,必须通过故障排除和重新配置来解决此问题。
重要:在安装过程中,请始终选择 DSM 手动更新。如果新安装正常完成,但在重新启动后失败,则可能是 DSM 尝试使用不兼容的代码自动更新自身。