1. 服务器/VPS/主机用户Telegram电报群: https://t.me/openos
    黑群晖 Synology Telegram电报群: https://t.me/nasfan
    排除公告

求助,如何添加DiskIdxMap= SataPortMap= SasIdxMap=这三个参数

本帖由 bigfacegan2021-10-24 发布。版面名称:群晖 Synology DSM

  1. bigfacegan

    bigfacegan Member

    注册:
    2021-10-10
    帖子:
    58
    如题,在最新的redpill 7.0.1的grub.cfg文件中,DiskIdxMap= SataPortMap= SasIdxMap=这三个参数该写在哪一段里面?
     
  2. bigfacegan

    bigfacegan Member

    注册:
    2021-10-10
    帖子:
    58
    这是我的grub.cfg,应该添加在哪里啊?

    # GRUB 2 config file
    terminal_output console
    if serial --unit=0 --speed=115200; then
    terminal_input --append serial_com0
    terminal_output --append serial_com0
    fi

    set default="0"
    set timeout="5"
    set timeout_style="menu"

    if [ -s $prefix/grubenv ]; then
    load_env --file $prefix/grubenv --skip-sig
    set has_env="1"
    if [ -n "${saved_entry}" ]; then
    set default="${saved_entry}"
    fi
    else
    set has_env="0"
    echo "WARN: failed to load env. Default choice will NOT be saved!"
    fi


    function savedefault {
    saved_entry="${chosen}"
    save_env --file $prefix/grubenv saved_entry
    }


    insmod usb_keyboard
    insmod part_msdos
    insmod ext2
    insmod fat
    insmod linux
    insmod gzio

    set gfxmode=auto
    insmod vbe
    insmod vga

    # UEFI
    insmod efi_gop
    insmod efi_uga

    insmod font
    if loadfont ${prefix}/unicode.pf2
    then
    insmod gfxterm
    set gfxmode=auto
    set gfxpayload=keep
    terminal_output gfxterm
    fi

    menuentry 'RedPill DS3615xs v7.0.1-42218 (USB, Verbose)' {
    savedefault
    set root=(hd0,msdos1)
    echo Loading Linux...
    linux /zImage mac1=001132112233 netif_num=1 earlycon=uart8250,io,0x3f8,115200n8 syno_hdd_powerup_seq=0 vid=0x0781 syno_hdd_detect=0 pid=0x5583 console=ttyS0,115200n8 elevator=elevator sn=2021LWN123456 root=/dev/md0 earlyprintk loglevel=15 log_buf_len=32M syno_port_thaw=1 HddHotplug=0 withefi syno_hw_version=DS3615xs vender_format_version=2
    echo Loading initramfs...
    initrd /rd.gz
    echo Starting kernel with USB boot
    }

    menuentry 'RedPill DS3615xs v7.0.1-42218 (SATA, Verbose)' {
    savedefault
    set root=(hd0,msdos1)
    echo Loading Linux...
    linux /zImage mac1=001132112233 netif_num=1 earlycon=uart8250,io,0x3f8,115200n8 syno_hdd_powerup_seq=0 vid=0x46f4 synoboot_satadom=1 syno_hdd_detect=0 pid=0x0001 console=ttyS0,115200n8 elevator=elevator sn=2021LWN123456 root=/dev/md0 earlyprintk loglevel=15 log_buf_len=32M syno_port_thaw=1 HddHotplug=0 withefi syno_hw_version=DS3615xs vender_format_version=2
    echo Loading initramfs...
    initrd /rd.gz
    echo Starting kernel with SATA boot
    }
     
  3. et9

    et9 Member

    注册:
    2020-02-25
    帖子:
    151
    根据xpenology论坛
    @jhoughten的说明,解决问题

    当 GRUB 屏幕出现时,您可以按 e 键来编辑命令。
    在 syno_port_thaw=1 之后
    添加 DiskIdxMap=00 SataPortMap=1 SasIdxMap=0
    然后按F10启动
    即可完美解决

    按照@jhoughten的介绍,

    The command line changes are not saved when you reboot, so you may want to make them permanent and rebuild the image file once everything is working.
    The initial reboot after installing DSM did not require them, so, I have not done that yet.


    本文所有的经验总结自:
    https://gugucomputing.wordpress.com/2018/11/11/experiment-on-sata_args-in-grub-cfg/
    这篇文章里面有各种参数组合的一个测试结果,这里就不一一测试了。可以自己去看。
    前提概要总结:
    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驱动的阵列直通卡。





    启动参数说明(可以不看)

    参考此处网址

    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



    这是我在各处扒下的留存资料,要根据主板的实际情况去处理!不知你是新装还是旧系统升级
    如果新装很简单啊u盘引导,只挂一块硬盘
    在 syno_port_thaw=1 之后
    添加 DiskIdxMap=00 SataPortMap=1 SasIdxMap=0直接安装,装完进系统后关机,把U盘引导添加的删除,挂其它硬盘进系统!会提示你发现新硬盘然后你慢慢配置即可。
    如果是升级,我就是6.23升级的板载6sata用了4个raid5+乐扩4sata也是raid5,共计8盘位,我就是拔掉扩展卡,u盘添加 DiskIdxMap=00 SataPortMap=1 SasIdxMap=0,引导提示可迁移安装过程中选设置套件一并迁移,装完后不要做任何设置关机,改引导,插扩展卡,开机会有提示前四个盘中三个有问题直接修复就可,扩展卡挂的四个好像是在其它位置上有题示好像都是在存储管理里面也可以修复(这个时间有点长)修复完成后会提示套件出错,也是套件中心修复,不能修复的就卸载再装一下!希望对你有帮助!免责声明啊升级出问题不要找我,我只是分享我是怎么做的!
    如果是升级建议还是按上边的修改好,一劳永逸,不要学我!
     
    已获得 choufengtuzhao78977sungamma另外 10 人的点赞。
  4. bigfacegan

    bigfacegan Member

    注册:
    2021-10-10
    帖子:
    58
    多谢多谢
     
  5. dosym

    dosym Member

    注册:
    2020-11-27
    帖子:
    71
    请问这个参数DiskIdxMap=00 SataPortMap=1 SasIdxMap=0要根据自己主板调整的吗?
     
  6. Kenf

    Kenf New Member

    注册:
    2021-10-25
    帖子:
    10
    需要的,主要是看自己主板接口的顺序来调整
     
  7. dosym

    dosym Member

    注册:
    2020-11-27
    帖子:
    71
    我主板只有3个SATA接口,一个ESATA接口。 还不太明白这个参数的意思,一会16进制,一会又10进制的。
     
  8. et9

    et9 Member

    注册:
    2020-02-25
    帖子:
    151
    看主板说明书,是否为一个控制芯片控制的,如果是就是一个控制芯片4sata,如果不是一个控制芯片就是两个控制芯片,一个控制芯片为1esata另一个为3sata。
     
  9. ko_bob

    ko_bob New Member

    注册:
    2017-10-21
    帖子:
    14
    用esxi7 运作 redpill 7.0.1
    发现最多只能显示 16 个硬盘

    SasIdxMap=0 DiskIdxMap=1B000912 SataPortMap=9999
    第一个控制器用作挂引导盘
    第二个控制器能辨认 9 个盘
    第三个控制器只能辨认 7 个盘
    其他都被屏蔽

    你们有这个问题吗?
     
  10. qq358311703

    qq358311703 Member

    注册:
    2020-09-19
    帖子:
    57
    我的是主板6个jmb585三个怎么改谢谢!6+5+5+5