黑群晖引导文件grub.cfg中参数对硬盘顺序的测试与分析

       对于多盘位的黑群使用者,经常会遇到一件事,就是在存储管理员看到的硬盘顺序,不是按照12345678...这样的顺序排列,对于有强迫症的用户非常痛苦。本文针对黑群晖引导文件grub.cfg中一些参数进行修改,测试在不同的参数下对硬盘排序的影响。

测试环境

  • ESXi 6.7.0 (Build 8169922)
  • 引导盘 v1.03b
  • DSM6.2 23739
  • 修改项默认值为空,也就是 set extra_args_3617=''
  • 在不加载直通物理硬盘时,虚拟硬盘的大小代表了 SATA 控制器位置。比如 20G 的虚拟硬盘代表了 (2:0)
  • 引导项虚拟盘永远位于 (0:0)
  • boot1~7 默认的 16G 数据盘位于 (0:1),boot8~12 位于 (1:0)
  • 测试的参数有些是瞎写试的,有的是刻意写的
启动盘 参数
boot0 default
boot1 DiskIdxMap=1000 SataPortMap=28
boot2 DiskIdxMap=0800 SataPortMap=28
boot3 DiskIdxMap=0800 SataPortMap=24
boot4 DiskIdxMap=100800 SataPortMap=188
boot5 DiskIdxMap=100400 SataPortMap=148
boot6 DiskIdxMap=100400 SataPortMap=144
boot7 DiskIdxMap=030400 SataPortMap=144
boot8 DiskIdxMap=200400 SataPortMap=244
boot9 DiskIdxMap=203000 SataPortMap=244
boot10 DiskIdxMap=313000 SataPortMap=244
boot11 DiskIdxMap=313000 SataPortMap=114
boot12 DiskIdxMap=31300000 SataPortMap=1144

 

测试理论

  • SataPortMap 代表每个 SATA 控制器拥有的 SATA 接口数量,148 代表三个 SATA 控制器分别拥有 1 个、4 个、8 个 SATA 接口
  • DiskIdxMap 代表每个 SATA 控制器接口开始的位置,16 进制,每两位代表一个 SATA 控制器

测试过程

  • 首先只创建默认的 16G 数据盘,导入全部 boot 启动盘,以默认启动盘安装 DSM6.2 23739
  • 查看硬盘状态,每次只替换启动盘

boot0

set extra_args_3617=''

  • 默认的启动参数,无法在多 SATA 控制器下读取全部的硬盘,只读取到了 (0:0)(0:1)(1:2)(1:3)这四个硬盘

boot1

DiskIdxMap=1000 SataPortMap=28

  • SATA 控制器 2 上的硬盘没有被全部读取到,16G 的数据盘被识别到了错误的位置


boot2

DiskIdxMap=0800 SataPortMap=28

  • 基本没有变化,没有被识别的硬盘在外置硬盘中被读取到


boot3

DiskIdxMap=0800 SataPortMap=24

  • 所有盘均被读取,但磁盘顺序错误

boot4

DiskIdxMap=100800 SataPortMap=188

  • 所有盘均被读取,但 SATA 控制器顺序错误,启动盘和 16G 盘被隐藏

boot4 添加直通硬盘

DiskIdxMap=100800 SataPortMap=188

  • 没有变化,直通硬盘出现在外置设备中,但缺少一块

boot5

DiskIdxMap=100400 SataPortMap=148

  • 所有硬盘被读取,但 SATA 控制器顺序错误,启动盘和 16G 盘被隐藏

boot5 添加直通硬盘

DiskIdxMap=100400 SataPortMap=148

  • 所有硬盘被读取,但 SATA 控制器顺序错误,启动盘和 16G 盘被隐藏
  • 直通硬盘被读取为外置设备

boot6 添加直通硬盘

DiskIdxMap=100400 SataPortMap=144

  • 所有硬盘被读取,但 SATA 控制器顺序错误,启动盘和 16G 盘被隐藏
  • 有一块直通硬盘被读取为外置设备

boot7

DiskIdxMap=030400 SataPortMap=144

  • 所有硬盘被读取,但 SATA 控制器顺序错误,启动盘没有被隐藏

boot7 添加直通硬盘

DiskIdxMap=030400 SataPortMap=144

  • 所有硬盘被读取,但硬盘顺序错误,启动盘没有被隐藏
  • 有一块直通硬盘被读取为外置设备

新一组实验

  • 考虑到大多数情况最多只会有两组连接数据盘的 SATA 控制器,所以删除一组 SATA 控制器和虚拟硬盘
  • 将 16G 默认数据盘位置改为 (1:0),独享一个 SATA 控制器

boot8

DiskIdxMap=200400 SataPortMap=244

  • 所有硬盘全部被读取,但硬盘顺序有错误
  • 启动盘和 16G 盘没有被隐藏
  • 硬盘提示错误不是问题,转移群晖数据盘时经常能见到,硬盘没坏的情况下在储存空间管理员中修复即可
  • 2T 盘显示是硬盘 4 是插错了 SATA 接口,不是参数问题

boot9

DiskIdxMap=203000 SataPortMap=244

  • 虚拟盘全部删除,启动盘没有被隐藏

boot10

DiskIdxMap=313000 SataPortMap=244

  • 使用了很激进的起始硬盘号保证 DS3617xs 肯定读不到 SATA 控制器 1 和 2
  • 虚拟盘全部删除,启动盘和 16G 盘被隐藏

boot11

DiskIdxMap=313000 SataPortMap=114

  • 重新添加虚拟盘
  • 启动盘和 16G 盘被隐藏
  • 直通硬盘的编号有错误

boot12

DiskIdxMap=31300000 SataPortMap=1144

  • 尝试在数据盘中全部使用 00 的 DiskIdMap
  • SataPortMap 中对启动盘和 16G 盘限制到极限值 1
  • 全部数据盘被读取到,顺序完全正确
  • 启动盘和 16G 盘被隐藏

 


原文地址:https://blog.irain.in/archives/DSM6-2-Loader-grub_cfg.html

点赞
  1. mj说道:
    Google Chrome Windows 10
    B365M-ITX/ac 储存扩展包括4个SATA3(6Gbps)和Ultra M.2,扩展包括PCI-E 3.0(x16),同样也保留了M.2无线模块,支持IEEE 802.11ac无线和蓝牙4.2,,尾部也拥有英特尔Intel I 219V千兆有线方案
  2. mj说道:
    Google Chrome Windows 10
    博主您好,本人华擎B365M-ITX/ac主板,主板4个sata口,一个nvme固态口,主板拆了无线加了个2口sata扩展卡,安装黑群晖7.01,显示:我们检测到硬盘(1,9,10,11)中有错误端口被禁用。,这种情况下,如何改sata控制器识别接口数和硬盘盘序 ,才能顺利安装黑群。希望博主能在百忙之中,回复下鄙人的问题,困恼了我无数天,谢谢
    1. mj说道:
      Google Chrome Windows 10
      附上主板的参数与产品的页面,谢谢 http://www.asrock.com/MB/Intel/B365M-ITXac/index.cn.asp#Overview B365M-ITX/ac 支持第九代与第八代 Intel® 酷睿™ 处理器 (1151 插槽) 支持 DDR4 2666 1 PCIe 3.0 x16 显示输出选项: HDMI, DVI-I, DisplayPort 7.1 声道高保真音频 (Realtek ALC887 音频编码解码器), ELNA 专业音频电容 4 SATA3, 1 超级 M.2 (PCIe Gen3 x4 & SATA3) 6 USB 3.1 Gen1 (2 前置, 4 后置) Intel® 千兆网卡 Intel® 802.11ac 无线网络 + BT 4.2
    2. 博主说道:
      Google Chrome Windows 10
      查主板说明书吧,说明书的图纸上写有。我没用过这个主板,你问我我也不知道。
  3. devileragon说道:
    Google Chrome Android 11
    请问,主板一个pcie转m2,一组板载sata,一个hba卡,sataportmap应该是6位吗?
    1. 博主说道:
      Google Chrome Windows 10
      由于每个主板的SATA控制器数量都不一样,建议你去看一下这篇文章末尾的参数说明:https://wp.gxnas.com/10940.html
  4. Knight说道:
    Google Chrome Windows 10
    大佬你好,我这边黑裙是H81M主板,查到只有1个控制器 4个Sata口 但四块盘插满 在群晖里显示盘位是12 , 56。怎么改引导配置文件都不行,望大佬指条明路 指点一下。 DiskIdxMap=00 Sata portmap=4 直接认不到34盘 。 如果sataportmap=6 能认到4块盘 但顺序是错的12 , 56。 如果DiskIdxMap=02 Sata portmap=6 往前挤一挤的话 开机4块盘都能认 但是序号是 34,78 :lei: 如果加入sata_remap参数 2>4:4>2:3>5:5>3 引导开机直接找不到系统 跳到安装界面提示 3,4盘有错误 :lei:
    1. Knight说道:
      Google Chrome Windows 10
      BIOS里看只有 4个port :lei:
    2. Knight说道:
      Google Chrome Windows 10
      大佬,有新进展,在PE里查看控制器具体信息显示 ATA Channel 0 ATA Channel 1,ATA Channel 4,ATA Channel 5。这种情况有办法强制让序号连续起来吗?
      1. 博主说道:
        Google Chrome Windows 10
        这个不太清楚,至少我是没有这个能力能让它连在一起。
    3. 博主说道:
      Google Chrome Windows 10
      请自行查询主板控制器数量,根据实际控制器数量及每个控制器接入的硬盘进行参数设置。
  5. 火锅路人甲说道:
    Google Chrome Windows 10
    博主你好,今天从6.2.3更新7.0.1,无论我如何修改grub.cfg有关硬盘顺序参数,安装开始时都提示“我们检测到硬盘(*,*,*,*)中存在错误.....”,随车更改的不同的参数,显示的硬盘数字不同而已,求教我到底该如何改?感谢! 主板是华擎H470M ITX,ESXI环境,直通了4个SATA接口的硬盘,俩M2硬盘充当ESXI系统及其他虚拟机用了。 就是这4快直通硬盘,死活不被7.0.1识别,之前6.2.3还好好的,目前这四块盘都格式化了,好在没什么有用的资料。
    1. 博主说道:
      Google Chrome Windows 10
      ESXI安装群晖7.0的教程:https://wp.gxnas.com/11089.html
  6. 问题叔叔说道:
    Google Chrome Windows 10
    原因找到了: 拆开散热片看到了型号搜了下 本款注意事项: 1. Intel I211AT网卡没有service驱动,得自己改,或者装82576兼容驱动 2. 前面8个sata接口中,由88SE9235支持的有7个,另外一个和左边那4个由88SE9705来支持,1到5接口。 windows系统得装驱动,以上12个sata都是sata3,msata原生sata2接口。 3. 黑群晖不支持9705那5个接口(侧面4个+正面1个),OMV支持。 唉~~
    1. 博主说道:
      Google Chrome Windows 10
      群晖可以通过修改参数来全部识别。6.23的系统修改/etc.defaults/synoinfo.conf和/etc/synoinfo.conf这两个文件,7.0的系统修改引导盘里面的grub.cfg。
      1. 问题叔叔说道:
        Google Chrome Windows 10
        支持88SM9705么?
        1. 博主说道:
          Google Chrome Windows 10
          这个不太清楚,没用过。
  7. 问题叔叔说道:
    Google Chrome Windows 10
    关于盘符和硬盘识别问题想请教你的 蜗牛星际 13sata win10打完驱动能全识别 然后黑群晖里面6.x和7.0.x都我都尽力了 搞了几天 最多能识别到msata和sata 还有就是外挂的12个sata只能识别到7个 第八个死活不出来 :xinsui:

发表评论