问题描述:一般是物理机安装或虚拟机直通后硬盘不识别(或部分不识别)
首先了解一下启动参数说明:

SataPortMap: 定义每个控制器可使用的sata接口数量
SataPortMap=4,表示第一个控制器上有4个sata
SataPortMap=24,表示第一个控制器有2个sata,第二个有4个;这符合本矿难的板子,但实际上启动器已经识别对了,所以本次不修改这个参数
SataPortMap=NW,依此类推,没个控制器有N,W个sata,适合本身主板内置N个sata,然后通过PCIE扩出来W个sata的情况
DiskIdxMap: 定义每个控制器第一个sata接口映射到的索引位置,本段从0
DiskIdxMap=0400,2位16进制一组来看04 代表第一个控制器的sata接口从4开始计数,00代表第二组sata从0开始计数,假设原来 (A,B)(C,D,E,F)的顺序就会变成(C,D,E,F)(A,B)
DiskIdxMap=0F00,同样的(A,B)(C,D,E,F)就变成 (C,D,E,F)(——)(——)(——)(A,B),然而A和B的位置已经超过了最大盘数,这两个盘就不会显示,这就是隐藏内置SSD盘的原理
sata_remap:重新调整每个sata接口的顺序
sata_remap=0>4:4>0,交换第一个和第五个sata接口的顺序,原来A,B,C,D,E的顺序就变成 E,B,C,D,A

基本上,设置好SataPortMap就可以了。如果不明白可以把下面看完。

PS1:群辉系统默认一个控制器只能有9个接口,这里意味着你填写SataPortMap=A的时候,A的范围是在:0-9,0则默认屏蔽这个控制器。
(注:无法通过设为0来隐藏引导加载分区所在磁盘,会导致直接该磁盘不识别,群辉系统无法正常加载,隐藏引导分区所在磁盘只能通过修改DiskIdxMap,让引导磁盘所在的盘序超过当前最大磁盘数,即可实现隐藏(原理:系统无法显示大于磁盘数的磁盘))
PS2:SataPortMap=ABCD,后面的数值定义,ABCD表示4个控制器;
SataPortMap=4234,表明第一个控制器有4个接口,第二个有2个,第三个有3个,第四个有4个。这里具体的控制器数量限制未知,经测试4个控制器X9的接口,36个盘还是可以认的到的
(注:需配合系统硬盘数修改,不然识别了不显示可参考群教程:04、群辉各种教程-----黑裙获取root权限及硬盘数量更改教程.docx)
PS3:DiskIdxMap=09070400 这个参数项,2位数为一个控制器的盘序表示,这两位数为16进制数,超过9的,ABCDEF前面还需要加个0,不可忽略。
这里的09070400的意思是,第一个控制器的盘序从9开始往后排,第二个驱动器位7-8,第三个驱动器为4-6,第一个驱动器为0-3。
这里有个小技巧,可以将控制器的盘序设置超过当前最大磁盘数量,例如一共有20个盘,你盘序设置成15(十进制21),这个盘系统里面就看不到。
注:默认的纯引导分区磁盘,如U盘,VM,esxi挂载的单独的引导盘,无数据存储分区的,群辉系统内默认是不显示的,即不显示在磁盘列表里面。只有那种不全是引导分区,即像二合一系统一样,同SSD上有引导分区和数据分区的这种,群辉系统里面才能认的出来。但是实际是占用了控制器接口数的。
教程
首先你需要修改img引导文件中第一个分区文件中的gruf.cfg
找到gruf.cfg文件中的:
set extra_args_3617= (DS918中会是set extra_args_918=)
set sata_args=
如何修改,修改的要点
首先,你要先确定自身的一个需求:
自己一共需要多少个盘,自己有多少个控制器。主板默认sata控制器有几个口。扩展的sata控制器有几个,每个分别是几个口。
举例:
主板:华擎Z370M itx/ac 主板自带6口sata
扩展卡:JMB585 M2转5口sata (用M2主板BIOS默认屏蔽sata_0,但是群辉默认检测的是sata控制器的口数所以sata_0还是能检测到的,所以后续还需要做相应的一个盘序调整。)
需求:我一共需要11个盘,并保证JMB585的盘序靠前,主板的靠后。
这里一共2个控制器,所以 :
SataPortMap=65
这里的数值为十进制。数值范围0-9,0为屏蔽该控制器,最大数值9表明一个控制器最多用9个sata口挂载设备。
其中首位群辉默认标识的主板sata控制器,这里的6标识该控制器一共有6个sata口,第二位为第二个控制器即JMB585扩展卡,这里的5标识该控制器一共有5个sata口。
DiskIdxMap=0500
这里的数值为十六进制,2位数标识一个sata控制器的盘序排列。
其中00标识第二个控制器即jmb585的盘序从00开始,到04,00-04对应系统中的1-5,群辉系统默认控制器的盘序检测是从0开始,但是系统内的硬盘排序是从1开始。
其中05标识主板控制器盘序从05开始,05以后直到10都是主板控制器的盘,对应系统中的6-11。
Sata_remap=05>10:10>05
这里的数值是十六进制,前面提到主板使用M2会屏蔽掉sata_0接口,所以为了让系统内盘序看着更加连贯一下,而不是出现第6个为空的情况。这里的05>10:10>05表示05和10的盘序进行调换,即主板控制器的sata_0口检测盘序为10,对应系统中的11位;原来的盘序10检测为盘序5,系统内识别第6位。这样系统内盘序就看着顺眼多了,不至于出现中间空出一格的情况。
SasIdxMap=0
这个参数的目的是让硬盘处于正确的排序,默认加上就行了。
正确的参数修改填写应该如下:
set extra_args_3617='SasIdxMap=0 DiskIdxMap=0500 SataPortMap=65 sata_remap=05>10:10>05'
set sata_args=' SasIdxMap=0 DiskIdxMap=0500 SataPortMap=65 sata_remap=05>10:10>05'
注意:DS3617中set sata_args='’默认还多了3个参数项:(DS918+中无这三项)
sata_uid=1
sata_pcislot=5
synoboot_satadom=1
如不删除这三个删除项,会导致盘序无法正常工作。经过测试全删和单独保留第一个或第二个参数项能正常工作,单独添加第三个参数项,系统失联。更多的信息未知,你也可以执行研究。
最后将修改好的gruf.cfg直接替换引导盘中的gruf.cfg,然后拿去装系统即可。
总结
该方法适用于VM、esxi、pve等虚拟机和实体物理机
需要注意的,虚拟机在分配磁盘的时候应当选择sata控制器。并保证每个控制器的sata的口数不能超过9(引导盘(以现有硬盘模式挂在的磁盘)默认不算进盘序,系统内不显示,但是会占用sata控制器一个接口)。
从6.2.3开始,黑群辉DS918+、DS3617对阵列卡的驱动支持开始变得不是那么完美。
经过测试LSI9207 在DS918+中 使用extra.lzma版本v13.3 无法看到smart;使用v12.1,能看到smart但是无法正常休眠启动,容易造成硬盘掉盘,为正常启动出现数据丢失,严重的会导致硬盘出现物理坏道。
DS3617中 LSI6207直接无法识别到硬盘。
在此Xpenology的管理员,extra.lzma第三方编译的作者IG-88建议,请大家采用sata控制器扩展卡,例如jmb585,尽量不要使用mtp2-sas mtp3-sas驱动的阵列直通卡。