群晖DSM7.X版本自动获取SataPortMap和DiskIdxMap的教程(2022年5月12日更新)

       群晖DSM7.X的引导出来有大半年了,老司机早就已经上车了,很多萌新小白估计被SataPortMap和DiskIdxMap这两个参数折磨得不成人形了吧?给博主留言问得最多的就是关于这两个参数的设置。好在pocopico大神给大家留了一个好东西,可以自动获取SataPortMap和DiskIdxMap这两个参数的,再次感谢pocopico大神!

      具体操作步骤:

      一、如果是使用物理机安装群晖的,先把群晖要用的硬盘全部接上去,接好数据线和电源线。

      二、如果是使用ESXI、PVE、UNRAID、VMware等虚拟机安装群晖的,有硬盘直通的设置好直通,使用虚拟硬盘的添加好虚拟硬盘。

      三、打开pocopico大神的github开源地址(https://github.com/pocopico/tinycore-redpill),找到如下图所示的文件,根据需要下载对应的文件:

      1、tinycore-redpill-uefi.v0.4.6.img.gz文件:适用于物理机安装群晖、主板仅支持uefi启动的(比如J4105、J5005等),以及PVE和UNRAID安装群晖(虚拟机用uefi方式启动的);

      2、tinycore-redpill.v0.4.6.img.gz文件:适用于物理机安装群晖、主板支持legacy启动的,以及PVE和UNRAID安装群晖(虚拟机用bios方式启动的);

      3、tinycore-redpill.v0.4.6.vmdk.gz文件:适用于ESXI或者VMware安装群晖;

      4、上述gz文件均为压缩文件,下载到电脑后使用解压软件解压出来,对应会得到tinycore-redpill-uefi.v0.4.5.img、tinycore-redpill.v0.4.5.img和tinycore-redpill.v0.4.5.vmdk;

      5、如果你的电脑访问github有困难的,可以直接从【GXNAS网盘】下载对应的文件。

 

(2022年3月10日更新内容:我写教程的时候还是0.4.5版本,pocopico大神的文件已经更新到0.4.6版本了,所以就懒得换图片了,一样操作方法。)

 

      四、如果是物理机安装群晖的,先准备一个U盘插到Windows系统的电脑(不是NAS主机哦)的USB口,然后在电脑上打开rufus写盘工具(电脑没有这个软件的,可在rufus官网下载或者GXNAS网盘下载),先确认一下设备那里显示的U盘是否正确。

 

 

      五、点“选择”。

 

 

      六、找到第三步骤下载的文件(如果下载的是.gz文件,需要先解压出来,才有.img文件),根据NAS主机是使用uefi还是legacy启动方式,选择对应的文件,打开。

 

 

      七、确认无误了就点“开始”。

 

 

      八、点“确定”以后,U盘的数据就会被擦除,如果U盘有数据就先备份。

 

 

      九、如果你的U盘刷过NAS的引导或者刷过PE系统,存在多个分区的,就会有这个提示,点“确定”。

 

 

      十、看到状态正在写入镜像,耐心等待。

 

 

      十一、U盘写入完成后状态会显示“准备就绪”,点“关闭”关掉软件。

 

 

      十一、使用物理机安装群晖的,把刚才刷好的U盘放到NAS主机上,进入BIOS设置设置从U盘启动;虚拟机安装群晖的,把第三个步骤下载的文件自行转换成虚拟机格式的文件并上传到虚拟机中,设置好启动顺序。开机以后正常会显示如下图的菜单,此时会有一个5秒的倒计时,如果不动键盘的话5秒以后会自动进入。

 

 

      十二、启动中,耐心等待。

 

 

      十一、显示到这个界面就算启动好了,点下方工具栏最右边图标。

 

 

      十三、左上角会弹出一个命令行的窗口。

 

 

      十四、在绿色光标处输入以下命令,并回车:

./rploader.sh satamap now

 

 

 

      十五、屏幕上就会显示出本机的SataPortMap参数和DiskIdxMap参数,自己记下来吧,修改引导文件就会用到。不同的机器显示的数值不一样的哦,别抄我的!

 

 

      十六、关机需要点下方工具栏左边第一个图标。

 

 

      十七、选“Shutdown”,再点“OK”。

 


【2022年3月11日更新】

补充说明

一、有关DiskIdxMap、SataPortMap、SasIdxMap三个参数的说明

1、在群辉系统中,一个控制器默认只能控制9个硬盘,所以SataPortMap=的数值范围只能是0-9,0则表示屏蔽该控制器,不可以设为SataPortMap=0来隐藏引导盘!

2、如果有多个控制器的(每个主板具体有几个控制器,请查阅主板说明书),则SataPortMap=后面的数值有几位就表示有几个控制器。比如SataPortMap=148,表明第一个控制器有1个硬盘,第二个控制器有4个硬盘,第三个控制器有8个硬盘。

3、DiskIdxMap=这个参数值,按顺序从左到右每两位数为一个控制器的盘序数值,这两位数为16进制数,如果数值小于等于9或者大于10的,需要在数值前面加个0。比如DiskIdxMap=000105的意思是,第一个控制器的磁盘(引导盘)从序号1(00为序列1)开始往后排,第二个控制器的4个硬盘从序号2(01为序号2)开始往后排,第三个驱动器的8个硬盘从序号5(05为序号6)开始往后排。此时在群晖DSM7.X的系统里面看到磁盘序号就会从磁盘1(引导盘)到磁盘13。

4、这里有个小技巧,可以将控制器的盘序设置超过当前最大磁盘数量。例如我想把第1个控制器的引导盘隐藏,可以改成DiskIdxMap=0C0004,引导盘在群晖系统里面就看不到了,此时在群晖DSM7.X的系统里面看到磁盘序号就会从磁盘1到磁盘12(引导盘被隐藏了),同时还治愈了很多患有强迫症的童鞋!

5、SasIdxMap为SAS硬盘的个数,使用SATA硬盘的时候默认设置为0。

 

二、如果你实在不会找出这三个参数,或者使用tinycore-redpill工具获取到的参数与实际不符,那么可以试一下以下方法:

1、使用物理机安装群晖的,在引导文件中使用这三个参数DiskIdxMap=00 SataPortMap=1 SasIdxMap=0,同时在主板的SATA1口插上一个硬盘(这个位置的硬盘不可以拆走),然后把引导文件刷到U盘去启动,绝大多数情况应该可以正常安装。等安装好群晖系统以后群晖关机,把所有的硬盘都插上,同时把U盘引导里面这三个参数去掉再次启动,如果硬盘数量不超过8个并且无扩展卡无阵列卡无直通卡的情况下,应该会正常认出硬盘。硬盘数量超过8个或者使用扩展卡/阵列卡/直通卡的,在系统安装完成后再根据上面“补充说明”的第一条,自行在U盘的引导文件中添加对应的参数。

2、使用虚拟机安装的,如果硬盘数量不超过8个并且无扩展卡无阵列卡的情况下,在引导文件中去除“DiskIdxMap、SataPortMap、SasIdxMap”这三个参数,应该是可以正常安装系统的。如果硬盘数量超过8个或者使用扩展卡/阵列卡/直通卡的,在系统安装完成后把群晖虚拟机关机,再根据上面“补充说明”的第一条,自行在虚拟机引导文件中添加对应的参数。

3、有时候,发现不加这三个参数,硬盘也可以全部识别出来。

 

 


【2022年5月12日更新】

一个命令查看你的主板有几个SATA控制器和几个SATA接口

 

1、在前面具体操作步骤做到第十三步的时候,输入以下命令(注意大小写和空格):

dmesg | grep SATA

 

2、此时屏幕上把当前主板的SATA控制器和SATA接口信息全部显示出来;

比如上图显示的内容中包含了以下信息:

(1)一共有2个ahci就表示有2个SATA控制器;

(2)第1个ahci控制器和第2个ahci控制器的带宽都是6Gbps;

(3)每个控制器显示的2 ports,表示该控制器有2个SATA接口;

(4)第1个ahci控制器控制的是ata1(SATA1口)和ata2(SATA2口),第2个ahci控制器控制的是ata3(SATA3口)和ata4(SATA4口);

(5)2个硬盘分别接在SATA2口和SATA3口上面;

 

3、如果用前面的./rploader.sh satamap now获取不了参数或者参数不正确的话,建议使用dmesg | grep SATA来获取,然后通过人为去判断吧。

点赞
  1. npc73说道:
    Google Chrome Windows 10
    你好,博主,我现在遇到了一个虚拟硬盘无法识别的问题 环境是ESXI 7.0,直通了板载SATA控制器给黑群,同时自己又创建了一个虚拟硬盘使用SCSI 适配器挂载 原来黑群 6.23是正常的 升级DSM7.1,无论添加几个虚拟硬盘,自动计算结果就是 DiskIdxMap=00 SataPortMap=1 ,grep SATA 也只有一个ACHI控制器 使用这个参数安装成功DSM7.1,是可以正确识别直通的板载SATA控制器上的所有硬盘(排序是3-8),但是找不到虚拟硬盘 也试过安装成功之后,把3个参数都删掉,再启动。。发现会丢失两个硬盘,不得已还是改回00和1 同时试过把虚拟硬盘用挂载为LSI Logic SAS控制器,配置SAS参数为2,也没有识别 还有什么尝试方向或者解决方案吗?
    1. npc73说道:
      Google Chrome Windows 10
      我的主板是 ASRock Rack C246M WS; 有一个M.2口,8个sata口 (SATA0-7); 当M.2口插了ssd之后,第一个SATA口就不可以用; ESXI是装到M.2 SSD上,然后将板载SATA控制器设置为直通
    2. npc73说道:
      Google Chrome Windows 10
      终于自己摸索搞定了,说一下处理方式吧 设置 SataPortMap=88 假设有两个sata控制器(一个是直通,一个是虚拟)每个都是8个硬盘;然后再设置 DiskIdxMap=0007 表示第一个控制器从00开始,第二个控制器从07开始,这样虽然硬盘编号会比较乱,但是不会冲突。。然后启动群晖,发现虚拟硬盘和直通硬盘都有了,这时候再慢慢调整数字,就可以了
      1. 博主说道:
        Google Chrome Windows 10
        按照文中教程,敲命令dmesg | grep SATA就可以查到硬盘的基本情况,就知道参数怎么写了。
        1. npc73说道:
          Google Chrome Windows 10
          不是,用dmesg | grep SATA 也没有什么用,过滤出来的还是只有直通的SATA控制器,而esxi添加的虚拟硬盘,不知道为什么,并不会在grep的结果显示出来。。这也是为什么使用sh命令的时候,永远都是DiskIdxMap=00 SataPortMap=1 ,因为这个镜像,一直都认为是只有一个SATA控制器。。这可能是ESXI直通控制器+虚拟控制器混合使用的原因。。。所以只能自己根据规则手动编一下,然后根据dsm里面硬盘的ID看直通控制器和虚拟控制器的先后顺序,再适当的调整SataPortMap的参数。比如我现在是SataPortMap=27 DiskIdxMap=0003 ,给将来可能的虚拟硬盘空一下位置,然后又可以让3622xs总览界面显示出所有的实体硬盘
  2. 钢盔说道:
    Google Chrome Windows 10
    话说,组织群号是多少啊 :bugaoxing: 愣是没看到
    1. 博主说道:
      Google Chrome Windows 10
      本博客无组织、无群组。
      1. gromin说道:
        Google Chrome Windows 10
        博主大神,请教一下,我用esxi7.0安装DSM7.1 918+,主板SATA接口接一块SSD,然后创建虚拟机,通过DS918_7.0.1-42218.img(DiskIdxMap=00 SataPortMap=1 )在SSD上建立虚拟盘引导,引导盘设置威SATA0:0,这时候如果不加其他磁盘,引导的时候会报没有找到硬盘,然后我直通一块3008SAS卡(7块4T机械一块480GB SSD),检测到8块盘,但是盘序是从磁盘2-磁盘9,不是从1开始的,开始以为要修改DiskIdxMap和SataPortMap,但是通过tinycore检测出来也是DiskIdxMap=00 SataPortMap=1,有点完美主义,怎样才能让盘序从1开始到8,而不是2到9,谢谢
        1. gromin说道:
          Google Chrome Windows 10
          写错了,纠正一下,img文件是DS918+_7.1.0-42661.img
        2. 博主说道:
          Google Chrome Windows 10
          想追求完美主义的话就自己折腾哦,我帮不了你。

发表评论