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

       群晖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版本了,所以就懒得换图片了,一样操作方法。)

(2022年6月4日更新)pocopico的github开源地址中tinycore-redpill已更新到tinycore-redpill.v0.8.0.0了,请自行下载新版本。

 

      四、如果是物理机安装群晖的,先准备一个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. 泼墨丶染江山说道:
    Google Chrome Windows 10
    大佬。。我用这个dmesg | grep SATA命令获取参数,显示我有2个AHCI,每个控制器有6个ATA,共12个接口,但实际我华擎H470ITX只有4个SATA接口,而且显示带宽是1.5G。。整的有点懵啊。然后显示我的2 7 8口接了硬盘,实际上我是SATA 1和2歌接了一个盘。大佬能帮忙分下下啥情况么- - :heixian:
    1. 博主说道:
      Google Chrome Windows 10
      有可能是某个控制器是通过南桥内部扩展出来的,显示有12个PCIE的通道,实际上物理口没有那么多而已。
  2. icucuio说道:
    Google Chrome Windows 10
    博主大神,我现在遇到一个问题,N5105 nas主板一共有6个sata口,我都做了直通,一个是原生的intel sata驱动,一个是JMB58驱动器,我现在在esxi里面安装群晖918+7.1.1系统,修改了SATAmap后,也只能识别5个SATA口,第一个原生的intel SATA口就是找不到,有解决办法吗?
    1. icucuio说道:
      Google Chrome Windows 10
      tinycore的信息如下: 按这个设置是吗?SataPortMap=125 DiskIdxMap=100002 scsi-5.10.3-tinycore64 is already installed! Succesfully installed scsI modules Found "02:02.0 VMware SATA AHCI controller" Detected 30 ports/1 drives. Mapping SATABOOT drive after maxdisks Found "13:00.0 Intel Corporation Ievice 4dd3 (rev 01)" Detected 2 ports/0 drives. Bad ports: 1.0verride # of ports or ENTER to accept Found "1b:00,0 JMicron Technology Corp. levice 0585" Detected 5 ports/4 drives. Override # of ports or ENTER to accept Found SCSI/HBA"03:00,0 VMware PVSCSI SCSI Controller (rev 02)" (0 drives) Computed settings: SataPortMap=125 DiskIdxMap=100002 WARNING: Bad ports are mapped. The DSM installation will fail! Should i update the user_config.json with these values ? [Yy/Nn] y Done. tc@box:~$
  3. yoyo2022说道:
    Google Chrome Windows 10
    您好,我手上是个华硕B365-V的主板,我用命令查询后,他是有6个sata,但是实际上主板只有4个sata,真实的口就是sata1到sata4,怎么配置都是报硬盘端口错误,除非是在引导文件中使用这三个参数DiskIdxMap=00 SataPortMap=1 SasIdxMap=0,才通过了。这种情况您有什么配置建议吗? 第二,我有两个500g硬盘,每次安装都出现上传完pat文件,刚安装完之后就自动关机,换成4t硬盘就好了!您知道原因吗?
    1. 博主说道:
      Google Chrome Windows 10
      市场上成品的B360和B365主板由于设计原因,主板的单口/双口nvme硬盘被视为SATA1和SATA2,但是DSM7成品引导安装需要SATA1口要接硬盘,所以直接安装是装不上的。想用DSM7有两个办法:1是上虚拟机安装,2是获取主板dtb数据以后编译DS920+这个型号(如果不会不知道怎样获取dtb,也可以用这个教程自动编译https://wp.gxnas.com/12245.html)。
  4. mute说道:
    Google Chrome Windows 10
    群晖7.1 还需要改吗,我换引导升级了 然后就死了,
    1. 博主说道:
      Google Chrome Windows 10
      我不知道你用的是什么引导,关于DSM7的引导请认真看此文章的说明:https://wp.gxnas.com/11849.html
  5. lang说道:
    MIUI Browser Android 12
    第八版本不一样的,我输入你的命令,啥也没有,坑爹
  6. DWX256说道:
    Google Chrome Windows 10
    大佬我用的7.0.1的引导(6月3日的那个)按照本教程设定diskidmap设定为0002,sataportmap为22,但是在迁移dsm6.2.3的阵列的老盘无论保不保存应用数据都卡55%安装包损毁请问是什么问题呢 连接的两个盘在控制器1上,控制器2没接东西
    1. 博主说道:
      Google Chrome Windows 10
      sataportmap=22这个参数是第1个和第2个控制器分别接了2个硬盘。既然第2个控制器没接硬盘,很明显这个是你设置的参数不对啊!
      1. DWX256说道:
        Google Chrome Android 12
        那么sataportmap参数应该设置为20还是2呢,如果我需要在控制器2上加SSD缓存或者其他硬盘,该参数是否变为21? :lei:
        1. 博主说道:
          Google Chrome Windows 10
          请认真阅读本文下方的补充内容“有关DiskIdxMap、SataPortMap、SasIdxMap三个参数的说明”这部分。
  7. 蔡先生早上好说道:
    Google Chrome Windows 10
    星际蜗牛A j1900 ,插了两个机械硬盘,按照大佬您的PVE下装Dsm7.1已成功,先拜谢大佬!然后接下来为了修改DiskIdxMap等数据把tinycore做成了群晖的硬盘并启动。也就是现在是两个机械硬盘,一个蜗牛原始16G的ssd,做成了一个群晖虚拟启动盘和一个tinycore虚拟启动盘(把教程里的50G虚拟盘分离换成了这个)。 和您在评论区的留言一样(我把相关的文章都读了评论也翻遍了):tinycore自动获取虚拟机环境的参数基本都是错的,改用dmesg | grep SATA来查看SATA控制器的数量以及硬盘接入情况,发现两个ahci控制器,每个控制器下均有6个ata*,其中ata2,ata9/7/10/8均显示link up。这里第一个问题,实际上两个机械盘加上两个虚拟盘不就4个盘吗,为什么查出来5个,但进入群晖只看到3个:两个机械盘,一个tinecore盘。 第二个问题:在上述情况下,我写SataPortMap=66 DiskIdxMap=0006是否正确,还是应该SataPortMap=14 DiskIdxMap=0001
    1. 博主说道:
      Google Chrome Windows 10
      具体不清楚什么原因,反正觉得PVE下安装群晖,怪事挺多的。
  8. 某匹狼说道:
    Google Chrome Windows 10
    PVE虚拟机,8个硬盘,LSi SAS 2308直通卡上有两个mini sas接口,每个接4个硬盘。有6个硬盘是本来群晖的,2个是新加的,按照顺序接的线。LSi SAS 2308我设置了硬件直通的。 用的是tinycore-redpill-uefi.v0.8.0.0,使用./rploader.sh satamap now命令获取到的是DiskIdxMap=101000,SataPortMap=11。可以认到我前面6个硬盘(原群晖硬盘),还有后面两个没有认出来。 按照我对SataPortMap的理解,是不是应该填144才对,因为有一个虚拟机的sata启动盘,加上2308的2个sata控制器
    1. 某匹狼说道:
      Google Chrome Windows 10
      DiskIdxMap也不知道对不对,101000这样设置后,盘符分别是3-8
    2. 某匹狼说道:
      Google Chrome Windows 10
      群晖版本是DS3615xs_7.0.1-42218
    3. 博主说道:
      Google Chrome Windows 10
      虚拟机安装群晖,自身的引导盘也算是一个SATA(占用一个控制器),然后你再看LSI 2308有几个SATA控制器,每个控制器接入几个硬盘。保证每个控制器的硬盘数量在8以内。
      1. 某匹狼说道:
        Google Chrome Windows 10
        DiskIdxMap=00,SataPortMap=11,也是一样效果,只认前面6个。 我的LSI 2308 SAS直通卡是2个Mini-SAS SFF-8087控制器,商品页面说明是支持一分四,dmesg | grep SATA查看是每个可以接入6个硬盘共12个。 我试过用144和166,用这些参数都只能认出5个硬盘,而且还在尝试中把其中一个硬盘搞损毁了。所以188还没有试过。 我奇怪的11为何可以认出6个硬盘,因为我一个Mini-SAS SFF-8087控制器只接4个硬盘
      2. 某匹狼说道:
        Google Chrome Windows 10
        是不是6.2.4不用折腾这些参数啊?我还是直接降级算了
    4. 某匹狼说道:
      Google Chrome Windows 10
      在只认6个硬盘的情况下进入群晖,然后使用dmesg | grep SATA命令,好像可以显示有8个硬盘 root@PVE-DS3615xs:~# dmesg | grep SATA [ 0.000000] Synology boot device SATADOM: 1 [ 0.589454] Boot media SATADOM (native) requested [ 0.601905] Using native SATA-DoM boot - vid= and pid= parameter values will be ignored [ 0.602284] Configured boot device type to fake-SATA DOM [ 0.626996] Registering SATA port emulator shim [ 0.628312] Successfully registered SATA port emulator shim [ 0.628903] Registering native SATA DOM boot device shim [ 0.629669] Successfully registered native SATA DOM boot device shim [ 0.995779] ahci 0000:00:1f.2: AHCI 0001.0000 32 slots 6 ports 1.5 Gbps 0x3f impl SATA mode [ 0.997600] ata1: SATA max UDMA/133 abar m4096@0xc2304000 port 0xc2304100 irq 44 [ 0.998309] ahci 0000:06:07.0: AHCI 0001.0000 32 slots 6 ports 1.5 Gbps 0x3f impl SATA mode [ 1.000256] ata2: SATA max UDMA/133 abar m4096@0xc1651000 port 0xc1651100 irq 45 [ 1.302238] ata1: SATA link down (SStatus 0 SControl 300) [ 1.305230] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) [ 1.309798] Checking if SATA disk is a shim target - id=0 channel=0 vendor="QEMU HARDDISK 2.5+" model="HARDDISK " [ 1.311357] Shimming device to vendor="SATADOM-" model="TYPE D 3SE" [ 1.688689] scsi 2:0:0:0: SATA: handle(0x0009), sas_addr(0x4433221100000000), phy(0), device_name(0x5000cca22ecf51f9) [ 1.692679] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.730489] scsi 2:0:1:0: SATA: handle(0x000a), sas_addr(0x4433221101000000), phy(1), device_name(0x5000cca22ecf56af) [ 1.733860] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.757833] scsi 2:0:2:0: SATA: handle(0x000c), sas_addr(0x4433221102000000), phy(2), device_name(0x5000cca22ecea283) [ 1.761146] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.772567] scsi 2:0:3:0: SATA: handle(0x000b), sas_addr(0x4433221103000000), phy(3), device_name(0x5000cca22ecf335c) [ 1.776143] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.787764] scsi 2:0:4:0: SATA: handle(0x000d), sas_addr(0x4433221104000000), phy(4), device_name(0x5000cca22ecec2e6) [ 1.791045] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.801559] scsi 2:0:5:0: SATA: handle(0x000e), sas_addr(0x4433221105000000), phy(5), device_name(0x5000cca22ecf57ce) [ 1.804914] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.810816] scsi 2:0:6:0: SATA: handle(0x000f), sas_addr(0x4433221106000000), phy(6), device_name(0x50014ee267c3a8d2) [ 1.813918] scsi_is_boot_dev_target: it's not a SATA disk, ignoring [ 1.819917] scsi 2:0:7:0: SATA: handle(0x0010), sas_addr(0x4433221107000000), phy(7), device_name(0x50014ee267b85eb1) [ 1.823131] scsi_is_boot_dev_target: it's not a SATA disk, ignoring
      1. 博主说道:
        Google Chrome Windows 10
        搞不定就装6.23吧,省心,不需要折腾。
        1. 某匹狼说道:
          Google Chrome Windows 10
          折腾几天后,我知道为何只认6个盘了。因为我买的所谓浪潮服务器拆机LSI 2308直通卡,真实通道只有6个,还有2个是虚拟的,群晖系统用不了。
          1. 博主说道:
            Google Chrome Windows 10
            好的。
          2. 阿里冬冬说道:
            Google Chrome Windows 10
            esxi7.0 虚拟机安装群晖3615-7.01-42218引导文件,超微x11ssh-ln4f 主板+浪潮LSi SAS 2308直通卡上有两个mini sas接口,接到tank机箱硬盘背板插了6个sata硬盘 虚拟机创建了一个群晖的120m的sata启动引导盘(sata 0:0)加上直通的pci 直通卡 (应该2308的2个sata控制器) 那DiskIdxMap=000105,SataPortMap=144 感觉应该这么设置吧 现在进去后硬盘是从2开始识别,然后盘的顺序跟实际硬盘笼序号是串的 ,很奇怪 鼓捣了一晚上尝试更换参数也没有成效,,请教一下 怎么设置顺序能匹配 然后怎么把硬盘从1开始识别 :hehe:
          3. 博主说道:
            Google Chrome Windows 10
            虚拟机安装群晖DSM7.X,引导菜单选择的是SATA方式启动,那么引导盘就会占用SATA1,所以存储硬盘的顺序会从SATA2开始的。如果你想治愈强迫症,只能直通U盘启动,然后选USB启动方式,那么存储硬盘才可以从SATA1开始排序。
  9. mihayoo说道:
    Google Chrome Windows 10
    博主你好,我使用你的引导文件已经成功安装上了7.1-42661.cpu是i3-8350k。 gpu id 3E91 ls dri 正常 ,hw control正常,但是使用plex调用硬解功能没法播放,请问这是什么问题
    1. 博主说道:
      Google Chrome Windows 10
      8代U不需要打核显补丁,DS918可以直接调用核显。如果plex不能硬解,估计应该是plex的安装和设置有问题吧。
      1. mihayoo说道:
        Google Chrome Windows 10
        有其他方法测试核显是否正常工作吗
        1. 博主说道:
          Google Chrome Windows 10
          你可以安装vdeio或者jellyfin来测试,播放一个1080P H264编码的视频,有没有硬解就知道了。
          1. mihayoo说道:
            Google Chrome Windows 10
            我使用的是你6月3的引导,发现:不使用q35,加上legacy-igd=1参数,7.1u3普通视频可以硬解,4khdr报错。人脸识别依然可用
          2. 博主说道:
            Google Chrome Windows 10
            好的
  10. 半支烟说道:
    Google Chrome Windows 10
    我用的星际蜗牛,主板是J4105,主板只有1个SATA,从Msata又转接出来两个SATA,但tiny启动以上命令后报错是什么问题。 :heixian:
    1. 博主说道:
      Google Chrome Windows 10
      要用U盘引导
      1. 半支烟说道:
        Google Chrome Windows 10
        是按以上方法,把tinycore的ISO烧录进U盘引导的啊,引导进系统是正常的,但执行命令报错。 另外,我以前装DSM7.01的时候没有装扩展卡同时SATA1有盘,装完系统以后又装了扩展卡并安装了两块硬盘,现在装DSM7.1的时候用以前的参数就提示SATA345禁用,会不会是扩展卡的原因?tinycore对扩展出来的sata无法识别?
        1. 博主说道:
          Google Chrome Windows 10
          使用tinycore自动获取参数有一定的局限性,使用阵列卡/HBA卡/扩展卡/虚拟机这些环境的时候,获取到的参数基本上都是错误的。建议敲命令dmesg | grep SATA来查看SATA控制器的数量以及硬盘接入情况,自行判断参数。
          1. 半支烟说道:
            Google Chrome Windows 10
            明白,我来试试看,应该是扩展卡的问题
          2. 半支烟说道:
            Google Chrome Windows 10
            我现在如果直接软重启DSM7.01,也会出现找不到扩展卡的问题,必须要断电重启才能找到扩展卡,应该是对扩展卡的支持不好。
          3. 博主说道:
            Google Chrome Windows 10
            我使用的是SSU品牌一个4SATA口的扩展卡,ESXI下直通,一切正常!我给人家也安装过很多台机器,用扩展卡也是没问题的。你这个应该是硬件问题。

发表回复