- 由 虚拟的现实创建于1月 17, 2024 需要 4 分钟阅读时间
ARPL 介绍
ARPL 全称 Automated Redpill Loader, 从名字可以看出其基于 Redpill 项目; 使用 ARPL 的优势在于:
- 直接提供 ESXi 引导盘
- 基本全自动完成修复
- 提供友好地交互 UI
- 支持常用插件集成
- 基本一致保持在最新版本
初始化虚拟机
下载 ARPL
由于 ARPL 直接提供 ESXi 的磁盘镜像, 所以我们直接从 Release 页面下载最新的磁盘镜像即可。
创建虚拟机
因为黑群晖需要安装在虚拟机中, 所以我们就需要先创建一下用于运行黑群晖的虚拟机, 不过在创建时有些选项需要调整:
- 虚拟机名称随意, 客户机操作系统选择 Linux, 内核选择 “其他 4.x Linux(64 位)”
- 内存需要至少 4G, 且最好选择锁定内存(勾选预留所有客户机内存), 如后续采用 PCIE 直通则此步骤是必须的
- 不要额外创建其他硬盘, 默认创建的 “硬盘1” 磁盘控制器切换到 SATA 0:0
- 删除默认的 SCSI 控制器还有 CD/DVD 驱动器
- 引导选项必须设置为 BIOS 引导
如果有购买的洗白码的话, 最好再添加一个网卡(新增网络适配器)
上传磁盘
创建好虚拟机后, 需要使用下载的 ARPL 磁盘替换默认的启动磁盘, 在替换之前需要将我们下载的磁盘上传到 ESXi 虚拟机目录(先自行解压 ARPL zip 文件):
- 首先在存储选项中找到虚拟机目录
- 在虚拟机目录中点击上载
- 上传两个 arpl 磁盘文件, 上传成功后将只显示一个
调整启动盘
我们需要使用 ARPL 的磁盘作为引导盘, 所以需要将默认的 “硬盘1” 替换为上传的 ARPL 磁盘; 这个替换操作一般两种方式:
- UI 添加: 直接在 UI 界面编辑虚拟机, 删除掉 “硬盘1”, 然后使用 “添加现有硬盘功能” 选择上传的 ARPL 硬盘
- 命令改配置: 先取消注册虚拟机, 然后 SSH 到 ESXi 宿主机通过直接编辑 vmx 文件更改 “硬盘1” 配置
说下两者优缺点, 无疑第一种方式是最简单且好用的, 但是测试在 ESXi7+ 版本似乎没法识别 ARPL 的硬盘, 保存时会报错(测试是 UI BUG, 自己创建的硬盘重新导入也不行)。
而第二种方式经过测试直接修改是完全没问题, 且在 ESXi8 上也没问题(第一种 ESXi8 一样不能用)。
所以这里采用更通用的第二种方式, 直接修改 vmx 文件:
- 首选在虚拟机列表中找到虚拟机, 右键 “取消注册”
- ESXi 主机管理中启动 SSH 服务
- 通过 SSH 连接到 ESXi 主机, 进入到虚拟机目录
- 使用 vi 命令编辑 [虚拟机名称].vmx 文件
- 替换 sata0:0.fileName = "XPEnology.vmdk" 为 sata0:0.fileName = "arpl.vmdk" 并保存
- 重新注册虚拟机, 选择刚刚修改过的 vmx 文件
调整必要参数
经过上面的调整以后, 就可以直接启动黑群晖虚拟机并进行调整了; 虚拟机启动后会直接进入控制台, 并打印 VNC 访问地址, 我们需要使用 VNC 调整参数来安装黑群晖:
访问该地之后会看到一个菜单列表, 根据需要一步一步填写信息即可:
- Choose a model: 选择一个型号, 请根据需要自行填写
- Choose a Build Number: 选择 build 版本, 一般直接最新的即可(选择型号后才会出现)
- Choose a serial number: 选择序列号, 默认自动生成的, 无法登陆群晖账号等; 可以选择填写自己淘宝买的
- Addons: 添加插件驱动等, 如果没有必要请不要添加, 除非你知道你在干什么
- Cmdline menu: 启动参数, 核心配置, 可以在此调整网卡数量和添加自己的 mac 地址
- Build the loader: 编译引导, 这一步会自动化下载文件并编译引导
必要参数说明
在调整参数时首次使用的用户可能比较懵逼, 下面详细说一下一些要点:
- 菜单列表中只要选择了 “Yes” 或者 “Ok” 只要不重启就已经保存了, 保存完成后的 “Exit” 和 “Cancel” 都可以回退到上一层菜单, 不用担心没保存上
- 像 “Cmdline menu” 之类的参数菜单一般都提供一个预览选项, 可以完整的看到自己设置的参数
网卡参数配置
netif_num 这个参数用于告诉群晖系统现在系统有几个网卡, 一般自己生成或者购买的洗白码都会给你两个 mac 地址; 所以通常 netif_num 会设置成 2, 当然如果你直接使用 arpl 随机生成的大概率不能登录群晖账号, 所以默认一个能联网就行。
mac[N] 这个参数用于定义具体网卡的 mac 地址, 众所周知群晖账户登录校验是要判断网卡 mac 的; 所以一般买来的洗白码出了序列号意外也会给两个 mac 地址, 依次填写 mac1、mac2 就行; 同时推荐也在 ESXi 里把这两个 “网络适配器” 手动设置成跟群晖里一样的 mac 地址, 避免 ESXi 某些安全机制导致你没法联网。
SataPortMap 和 DiskIdxMap
SataPortMap 用于定义我们有几个 Sata 驱动器, 如果按照我的教程来走基本上是两个驱动器:
- Sata0: 专门挂载 arpl 启动盘
- Sata1: 专门挂载用自己的磁盘, 主要用于 RDM 模式
如果不使用 RDM 而是直通 Sata Controller, 那么理论上这个 Sata 控制器等同于 Sata1(都是第二个)。
明白了这一点就好理解为什么 SataPortMap 教程里被设置为 14 了: 因为第一个 Sata0 肯定只有 arpl 启动盘, 所以是 1, 第二个需要根据用户实际情况自己写自己有几个盘。我这里是 4 个 RDM, 所以自然写 4。
DiskIdxMap 用于定义群晖里硬盘识别的计数,有个小技巧就是如果你把某个 SATA 控制器上的磁盘计数设置成 0F 就会隐藏这个驱动器上的所有磁盘; 文章里 0F00 的意思就是告诉群晖: 挂 arpl 启动盘的这个 “Stata0” 控制器上所有磁盘给我隐藏掉,所有硬盘序号从第二个控制器开始数”。
SasIdxMap 是否使用SAS硬盘,一般默认为0。
添加物理硬盘
简单的说 ESXi 把物理硬盘直通到虚拟机里就两种方式, 一种是编辑 /etc/vmware/passthru.map 直接把 SATA 控制器直通进去。另一种就是采用 RDM 方式创建 RDM 磁盘链接来直通。要说明的是如果采用 RDM 记得把 RDM 盘挂载到 Sata1 上, 因为上面的 SataPortMap 和 DiskIdxMap 都是按照两个 SATA 控制器设计的。
下面是我添加 RDM 的一些步骤和截图, 仅供参考:首先命令行创建 RDM 磁盘,核心命令就是 vmkfstools -z "物理磁盘路径" "RDM 磁盘路径":
vmkfstools -r /vmfs/devices/disks/t10.ATA_____WDC_WD10EZEX2D00BN5A0_________________________WD2DWCC3F7DPP2Z5 download-rdm-1t.vmdk
安装黑群晖
总结一下上面 ARPL 虚拟机初始化的核心步骤:
- 创建一个 BIOS 引导的虚拟机
- 设置两个 SATA 控制器
- ARPL 挂载到第一个 SATA
- 其他磁盘挂载到第二个 SATA
- 配置 ARPL 参数
在完整这些步骤后只需要简单的重启虚拟机, 等待启动完成就可以着手安装群晖系统了; 安装群晖系统不需要借助群晖的 Find 查找工具, 虚拟机启动后会在控制台打印 IP, 直接访问 http://IP:5000 端口即可。
关机修复
ESXi 默认情况下想要安全关闭一个虚拟机, 需要虚拟机内安装 VMWare 的 open-vm-tools 工具; 该工具作为一个 Agent 运行, 并上报系统的 IP、网速、磁盘、内存使用情况等信息给 ESXi; 当 ESXi 发出关机等指令时该工具根据系统类型自动调用系统命令来完成该操作。当我们在 ESXi 上安装黑群晖后, ESXi 无法识别系统类型, 所以在管理界面只会显示一个 “关闭电源” 的按钮, 这个关机等同于物理机直接拔电源, 非常容易造成数据损坏。
解决办法只有一个就是安装 open-vm-tools,问题在于黑群晖系统不在 VMWare 官方的支持列表中, 所以并未提供安装包。不过目前也有两种解决方案, 一种是采用 docker 运行 open-vm-tool, 另一种是自己编译 open-vm-tools; 两种方案各有优缺点:
- docker 安装: 缺点是 ESXi 界面显示操作系统选择错误, 因为 open-vm-tools 上报的操作系统是 docker 容器的系统; 好处就是 “永久兼容” 没有群晖版本依赖问题。
- 自编译 open-vm-tools: 缺点是绑定群晖系统版本, 需要等待社区大神改代码才能跟上群晖的发版;好处就是原生运行不需要群晖内有额外的系统资源占用。
Docker 安装 open-vm-tools
这个是最简单的, 需要先在系统内安装 Docker 套件, 然后 SSH 到群晖系统, 执行以下命令运行容器(需要使用 root 用户)
ssh-keygen # 直接运行这个容器即可 docker run -dt --name open-vm-tools -v /root/.ssh:/root/.ssh --privileged --pid host \ --ipc host --uts host --network host --restart always mritd/open-vm-tools
关于 mritd/open-vm-tools 这个镜像是我自己编译的,担心安全问题的可以自行查看源码 AutoBuild。 原理其实就是点关机时帮你自动从 Docker 容器 ssh 到群晖系统然后执行关机命令。
自编译安装 open-vm-tools
期望自行编译 open-vm-tools 可以参考 synology-dsm-open-vm-tools 仓库文档, 编译时请保证网络环境畅通, 有条件的最好用国外 VPS 8C 16G 配置进行编译. 编译完成后会生成 SPK 安装包, 直接在套件中心选择手动安装即可。
物理主机配置群晖启动 U 盘
U 盘的选择
- 容量:大于2GB就够了,引导系统非常小
- USB 2.0还是3.0:都可以,引导不需要很快读写速度,选USB2.0发热还会小一些(容量小于8GB的优盘,多数都是USB 2.0)
- 是否需要MLC颗粒:根本不需要,纯属商家误导,黑群晖使用U盘引导系统后,系统是在内存中运行,优盘根本不会再读写(你可以尝试下,引导进入系统后,拔掉优盘,系统照样正常运行),NAS又是常年不关机的设备,一年优盘都读写不了多少次,根本不需在意颗粒寿命
- 体积:为了整洁美观,可以淘宝买一个主板USB2.0插针转USB口的小配件
制作黑群晖引导盘(优盘)
优盘插电脑,打开 ChipGenius,记录下VID和PID(比如图示:0781和5406),完成后关闭软件
运行Rufus工具 -> SELECT选择.img格式的黑群晖引导文件,其它不用设置,点START开始写镜像,写入完成后,关闭软件即可
修改grub.cfg配置文件
运行DiskGenius,展开优盘/Primary/boot/grub,找到grub.cfg配置文件,右键Copy To Desktop复制到桌面
引导grub.cfg文件的几个参数说明
- PID和VID,是优盘能否顺利安装的关键,注意将此前ChipGenius 获得的PID和VID填写,注意不要删除0x的前缀,比如0x5406,0x0781
- SN和mac1 mac2,是群晖半洗白、全洗白的关键,不修改的话,也不影响安装和使用黑群晖(除QC和相册人脸识别)
- DiskIdxMap、SasIdxMap、SataPortMap这3个值影响硬盘的识别(不同的主板参数不同),是黑群晖7.0版本的引导,新增的配置项目(自动获取教程)
修改好grub.cfg文件的参数并保存,然后再次打开DiskGenius,将grub.cfg重新拖回原文件所在位置,按照提示,选择replace覆盖即可,引导优盘至此制作完毕。
- 无标签
添加评论