为什么要装黑群

  1. 闲置的硬件利用起来,作为主力nas的冷备:一台闲置的ITX主机,处理器是i5-10500。8块闲置硬盘:3.5寸机械硬盘500G*2;2.5寸机械硬盘1T*2;2.5寸机械硬盘2T*2;2.5寸固态硬盘120G*2。
  2. 群晖有一个无可替代的功能SHR(Synology Hybrid RAID)群晖独有的磁盘阵列。能做到将不同容量的硬盘组磁盘阵列,而且不浪费空间,具体原理可以查看官方文档

安装篇

PVE虚拟机

其实群晖NAS对硬件要求很低。对于i5处理器,完全是性能过剩,所有选择装虚拟机,然后将sata控制器直通给虚拟机。虚拟机系统使用PVE,因为是基于Debian的发行版,用起来比较熟悉。然后免费开源,定制性较高。PVE如何安装、配置、以及开启硬件直通,不是本文重点,不多说。

虚拟机配置

创建虚拟机主要注意以下几点:

1、网卡类型要选择Intel E1000,否则黑群晖不识别(听说Vmware vmxnet也行)

2、创建完之后把硬盘和光驱都删掉

3、硬盘选择直通SATA控制器。itx主板自带的sata控制器只有四个sata接口,还好有2个m.2,于是某宝搜一下,可以把m.2转成sata口。而且能转5个。所以现在电脑上一共有两个sata控制器、9个sata接口。接上8块硬盘足够了。因为pve虚拟机系统装在另一个m.2的硬盘中,所以这两个sata控制器都可以直通到黑群晖中。完美!

安装

安装过程,其实最重要的就是引导镜像,需要到网上找,找到了引导镜像,导入虚拟机,再到群晖官网下载和引导镜像版本一致的系统文件。剩下的按照提示来就行了。

网上搜一个黑群晖的引导文件,每个引导文件都只能安装对应版本的系统,安装之后也不能升级,引导文件的下载地址我忘记了,网上也好找到,至于系统的下载可以到群晖官网下。
下载下来的引导文件,需要上传到pve,然后导入到虚拟机。以下命令在pve上执行

1、将引导文件镜像转成pve虚拟机磁盘格式

qemu-img convert -f raw -O qcow2 ***.img ***.qcow2

2、将引导磁盘导入到虚拟机

qm importdisk 虚拟机编号 ***.qcow2 local-lvm

3、经过上两步操作,回到pve浏览器控制台,能够看到导入的磁盘了。然后编辑,接口类型选sata,编号5,也就是这个磁盘位于第6个sata口(编号从0开始),至于为什么这么设置,第一是因为设置编号0-5,黑群晖才能识别,第二是为了在磁盘映射的时候在控制台隐藏这个磁盘。下文会讲到。

4、最后一步,修改虚拟机配置,第一启动顺序为sata5,如下图所示

搞完之后就可以启动虚拟机了,启动大概一分钟左右,在浏览器输入:http://find.synology.com 如果不出意外,将会搜到这个黑群晖,之后就可按照提示安装了。安装过程中选择离线安装,文件选择你刚才群晖官网下载的.pat系统文件。安装过程中不要注册账号,不要开启QuickConnect。

洗白

洗白的过程其实就是修改sn,和mac1这两个参数。这两个序列号,你要愿意花时间去找,应该也能找到免费的可以用的。不愿意找,也可以直接某宝购买,也就10来块钱一对。

1、进入黑群晖,控制面板-》终端和SNMP-》启动ssh功能,打勾-》应用。这样就可以通过ssh远程连接到黑群晖。

2、ssh远程连接上之后,输入:sudo fdisk -l 找到一个52MiB的磁盘,这个就是引导磁盘的盘符。不同版本的引导磁盘大小可能不一样,在虚拟机的“硬件”选项卡里面可以看到,比如我的如下图:

其中/dev/sdq既为引导磁盘

3、挂载引导磁盘,注意这里是用sdq1

sudo mkdir /mnt/boot
sudo mount -t vfat /dev/sdq1 /mnt/boot

4、修改序列号和mac1地址:

vim /mnt/boot/grub/grub.cfg
# 修改其中的sn 和 mac1这两个参数,改成你自己的sn和mac地址

5、然后重启,就洗白了。还需要群晖官网注册一个账号,区域设置成国外(因为我的洗白码是淘宝买的,是与国外的群晖机器对应的)

6、就算洗白,最好不要开启QuickConnect,也有被封的风险,毕竟使用QuickConnect就使用了群晖的中转服务器,占用了群晖的带宽。

7、最后发现其实我根本不用洗白,因为只做冷备用,不洗白也不影响使用。

磁盘映射

其实,装黑群晖的过程中,最麻烦的就是这一步了。DSM系统虽然是基于Linux,但是应该是深度定制的Linux,就算硬盘直通过去,通过命令行能识别,但是在DSM控制台里面不一定能识别。我的8块硬盘,初始情况下,在DSM的控制台里,只能识别到4块。所以要想黑群晖识别所有的磁盘,还需要再折腾一下。

网上也能找到很多关于磁盘映射的教程,不知道是那些作者根本没有自己操作过,还是我的理解能力差。按照他们说的去修改,重启之后,出现的结果总是跟预料的不一样。不过,最终经历了一番摸索,终于让我发现了规律。

跟洗白过程一样,也是修改grub.cfg中的两个参数

1、set extra_args_918(我的黑群晖对应的型号是DS918+,其它型号可能不一样)

2、set sata_args

启动虚拟机的时候,在虚拟机控制台会短暂出现启动选择菜单。有三个启动项,默认是从第一个启动项启动,修改extra_args_918会影响第一个启动项。修改sata_arg会影响第三个启动项。

在进行实验的时候,要选择第三个启动项,修改sata_args进行测试。因为修改完之后很可能导致重启之后无法识别引导盘,这个时候能通过从第一个启动项启动,就可以恢复如初。可以再挂载引导盘继续实验,每次修改sata_args参数之后,都要从第三个启动项启动。最终需要的效果是,所有的磁盘都能识别,命令行能找到引导盘,而dsm控制台隐藏了引导盘。这个时候再把sata_args的值复制到extra_args_918中,然后从第一个引导项启动,就大功告成了。

确定你的黑群晖对应型号最多可以支持多少个磁盘

通过控制台的“存储管理员”查看,如下图:最下方有16个小方格,说明最多可以支持16块硬盘

确定黑群晖中有几个sata控制器

通过ssh远程连接黑群晖,执行下面的命令:

lspci -n | grep "0106"

有几行就代表有几个sata控制器,如下图,我的黑群晖有4个sata控制器,其中前两个是群晖自带的,后两个是直通的两个物理sata控制器

配置参数介绍:

SataPortMap=****:每个*都是一个十进制数字。有几个数字就代表有几个sata控制器。第一个数字代表第一个sata控制器中有几块磁盘,第二个数字代表第二个sata控制器有几块磁盘,…………..。据说每个数字不能超过6,6还是9不大确定。

DiskIdxMap=********:每个*都是一个十六进制数字。两个数字一组,代表磁盘编号的开始序号。1、2两个数字代表第一个sata控制器的磁盘编号从几开始,3、4两个位置代表第二个sata控制器的编号从几开始,…………….

例如:set sata_args=’SataPortMap=4444 DiskIdxMap=0004080C’
表示:系统中一共有4个sata控制器,每个sata控制器中有4个硬盘。第一个sata控制器的硬盘编号从0开始(控制台显示从1开始),占用了编号0-3。所以第二个sata控制器的硬盘编号从4开始,占用编号4-7,依次类推……。

确定系统中的sata控制器,对应的是SataPortMap参数中的第几个数字

经过之前的步骤可以确定,我的系统中有4个sata控制器,但是每个控制器对应第几个数字,只能靠一次次的实验:

比如我推测,第三个数字代表直通的主板的sata控制器,所以最开始设置的是:set sata_args=’SataPortMap=4444 DiskIdxMap=0408000C’,表示第3个sata控制器有4个硬盘,编号00-03(控制台应该显示1-4),重启之后,在控制台中显示了磁盘1-4,都是主板上的sata控制器连接的磁盘。因此可以确定,第三个数字就是代表的是直通的主板上的sata控制器。

最终经过不厌其烦的修改参数、重启(每次重启都要两到三分钟,如果重启完之后系统识别不了引导盘,还要从第一个启动项重启),最终终于确定了:SataPortMap参数的值所代表的sata控制器:

第一个数字,代表系统中的第一个sata控制器,上面没有磁盘;

第二个数子,代表系统中的第二个sata控制器,只有一个引导盘就在这个控制器上;

第三个数字,代表直通的主板sata控制器,有4个sata口;

第四个数字,代表直通的m.2转sata控制器,有5个sata口,实际上连接了4个磁盘。

所以最终参数是这样的: set sata_args=’SataPortMap=3644 DiskIdxMap=080B0004’,这样配置表示:

第三个数字设置为4,第一个磁盘的开始编号00,表示:直通主板上的sata控制器有4个接口,占用编号00-03(控制台显示1-4)

第四个数字设置为4,第一个磁盘的开始编号04,表示:直通m.2转sata的控制器有4个接口,占用编号04-07(控制台显示5-8),虽然这个控制器实际有5个sata口,但是实际上只接了4块硬盘。插硬盘的时候要注意这4个硬盘编号要是连续的。

第一个数字设置为3,第一个磁盘的开始编号08,表示:系统自带的sata控制器有3个接口,占用编号08-10,这个控制器中没有磁盘,就是凑数的。

第二个数字设置为6,第一个磁盘的开始编号0B,表示:系统自带的、引导盘所在的sata控制器有6个接口,占用编号11-16。

细心的同学可能发现,3+6+4+4=17,而且第二个sata控制器占用了11-16编号,编号是从0开始的,而之前确定过,这个黑群晖最多只支持16块硬盘,所以最大编号只能到15。其实是故意这样设置的。

我们在设置虚拟机引导盘的时候,配置了引导盘的编号是5(编号从0开始),也就是说,第二个sata控制器中有6个sata口,引导盘插在了第6个sata口上,而这个sata控制器的编号是从0B(十进制11)开始,由于最多只能显示16块硬盘,所以最多到0F(十进制15)就结束了。中间只能显示5个,所以第6个盘就不能在控制台显示了,所以就完美的隐藏了引导盘。最终的效果如图:

打完收工

最后把sata_args复制到extra_args_918,重启从第一个引导项启动,一个完美的黑群晖就安装完成了!