黑群晖之红色小药丸

手把手教你制作群晖引导文件

背景

之前网上下的引导文件安装的群晖DS918+虚拟机一直有些小问题:

  1. 硬盘无法休眠,整个调试过程让我崩溃。本以为问题解决了,放一晚上,到第二天发现一次休眠都没有。
  2. 群晖虚拟机cpu占用一直比较高,虚拟机内看什么都没有,ESXi内看cpu老高了。初步判断是内核有问题。
  3. 经常性的开机进不了系统,不知道卡在哪了,3次开机有一次能成功。
  4. 想退回老版本DSM 7.0.1试试,结果新的虚拟机都无法安装老版本,不知道什么原理。

于是,我决定自己动手制作一个引导文件。既然要做,为什么不做个比DS918+更高级一点的呢,所以我决定做DS3617xs的引导文件,就为了下面这个小图:

2023-05-12-10-14-00@2x

准备工作

洗白码

这个并不是必要的,如果没有洗白码,可以先使用红色小药丸生成的SN。不要问我原始SN去哪找,这个都找不到就不要玩黑群晖了。另外,肯定有人需要这个,算号器

红色小药丸(tinycore redpill

这也是个神奇的项目。其实我早些时候就看到过这个项目,但它居然没有自我介绍,所以就忽视了。直到最近看到一篇关于制作DSM引导文件的文章,我才知道这个小药丸的功效。

直接下载💊最新的虚拟机镜像文件:

https://github.com/pocopico/tinycore-redpill/releases/download/v0.9.4.4/tinycore-redpill.v0.9.4.4.vmdk.gz

虚拟机

由于我使用的是ESXi,所以我们将镜像文件上传到服务器之后,还需要对其进行格式转换:

1
vmkfstools -i tinycore-redpill.v0.9.4.4.vmdk iRedPill.vmdk -d thin

最后,创建虚拟机。这个时候,如果有需要直通的硬件,可以设置好。因为💊会自动识别并增加驱动。

另外关于虚拟机选项,有几点要特别注意的:

  1. 必须使用BIOS启动。首先下载的💊不支持EFI,其次黑群晖似乎也是对BIOS支持更好。
  2. 必须使用SATA控制器,且💊必须为SATA0:0,否则安装DSM时会出错。
  3. 手动设置网卡MAC,否则无法洗白。
  4. 网卡可以设置为VMXNET3,因为它比E1000e性能更好。

2023-05-11-19-48-52@2x

2023-05-11-19-46-58@2x

2023-05-11-19-47-32@2x

由于我采用的是SATA控制器直通,所以不需要创建数据盘,否则还需要添加ESXi虚拟硬盘。 2023-05-11-19-48-11@2x

2023-05-20

一定要创建一个单独的系统盘。

我们知道DSM会在每个硬盘创建两个系统分区,这样可以从任意硬盘启动。然并卵。

创建一个单独的系统盘,并放在最前面,并把所有套件都安装在其上。这样我们更换硬盘时不会影响DSM,而且我们可以使用ESXi的快照功能给DSM创建快照,甚至直接备份整个DSM。

引导文件配置

现在虚拟机已经准备就绪,直接开机进入💊,系统直接提供了一个GUI界面,可进行命令行操作。或者,使用ssh登陆💊,这样操作更方便一些。

默认帐号tc密码P@ssw0rd

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 更新
./rploader.sh update now
./rploader.sh fullupgrade now

# 生成SN
./rploader.sh serialgen DS3617xs realmac

# 使用虚拟机时,这个不是必须,且💊判断是虚拟机会自动退出
./rploader.sh identifyusb now
# 制作通过引导文件时,可用lsusb查看usb id,然后手动修改user_config.json
lsusb

Bus 002 Device 002: ID 0e0f:0005 VMware, Inc. Virtual Mass Storage

# 自动配置SATA映射
./rploader.sh satamap now

# 配置💊的驱动 => 💊会自动安装驱动,这里只需要配置额外的
./rploader.sh ext  ds3617xs-7.1.1-42962 add https://raw.githubusercontent.com/pocopico/rp-ext/master/vmxnet3/rpext-index.json

# 下载加速,使用群晖中国区下载服务器
# global.download.synology.com => download.synology.cn
grep "global.download.synology.com" . -R -l | xargs sed -i 's/global.download.synology.com/cndl.synology.cn/g'
# 由于修改了源文件,所以运行`build`命令时会有如下提示
# `There is a newer version of the script on the repo should we use that ? [yY/nN]`
# 直接按Enter跳过

# 手动修改和确认引导文件参数
vi user_config.json

编译引导文件

一切都就绪后,我们就可以开始制作自己的引导文件了。

1
2
./rploader.sh clean now
./rploader.sh build ds3617xs-7.1.1-42962

💊会自动下载相关资源,然后编译和设置好群晖引导文件,一切都是自动的。

2023-05-11-15-55-27@2x

如果中间出现群晖DSM相关错误,需要使用以下命令清除缓存

1
rm -rvf /mnt/sd*3/auxfiles/* ~/redpill-load/cache/ds*.pat ~/custom-module 

到这里,我们的引导文件已经制作好了。接下来重启并安装DSM 7.1.1-42962。

1
sudo reboot 

启动界面选择第二项SATA启动,等待两分钟,在浏览器中输出https://finds.synology.com/。安装DSM的过程我这里就不详述了。

这样一来我们的黑群晖就完工了。

结束语

最后,上资源

链接: https://pan.baidu.com/s/1UVQZ-BkqC7OZWmlnKh8QRg?pwd=pg89 提取码: pg89

备注:该引导文件仅适用了DS3617xs + VMXNET3

参考

  1. RedPill TinyCore Loader Installation Guide for DSM 7.1 BareMetal

2023-05-30 SataPortMap & DiskIdxMap

网上很多关于群晖硬盘编号与顺序的文章,但很少提及ESXi黑群晖。通过不断试验,我们发现了其中的规律。

ESXi - 虚拟机 - 编辑 - 虚拟机选项 - 高级 - 编辑配置,搜索pciSlotNumber

2023-05-30-17-53-03@2x

在其中,我们可以看到sata和scsi等的pci编号,其大小就对应到SataPortMap/DiskIdxMap的顺序,按编号从小到大排列。

但是,这里有个例外,就是直通SATA设备,我们并不知道其pci编号,也不知道如何修改。以我的黑群晖来说,其编号就位于sata0和scsi0之间,这导致我无法从虚拟硬盘(scsi0)启动群晖,将scsi换成sata控制器就好了。

所以,我们设置SataPortMap=148/DiskIdxMap=100004,其中第一个控制器是synoboot,第二控制器为DSM/虚拟硬盘,第三控制器为直通的SATA控制器。

2023-08-05 arpl-i18n

tinycore redpill目前好像有不少的BUG,有时制作的引导文件在安装DSM会出现各种问题。

arpl项目极大的简化了💊的操作,只需要几个简单按键就可完成引导文件的编译。但是arpl更新似乎很慢,目前还不支持DSM 7.2。

arpl-i18n项目是目前本人使用过的最好的,刚测试了DSM 7.2,完美。


最后更新于 2023-05-20
小酌怡情
Built with Hugo
主题 StackJimmy 设计
访问量 -    访客数 - 人次