点击关注我的Telegram群组和微信公众号

MENU

黑群晖DSM引导项 grub.cfg 参数修改测试

2020 年 08 月 26 日 • 阅读: 201 • 技术,分享,教程

前言

搭建 ESXi 6.7 部署黑群晖 DS3617xs 并启用硬盘直通一文中使用了DSM 6.2 Loader作为黑群晖的引导项,在洗白黑群晖或直通SATA控制器时也需要修改该镜像中的grub.cfg文件。这篇文章会对该文件中和SATA控制器相关的部分进行修改,测试在不同的配置下DSM对硬盘的识别情况。

测试环境

  • 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)
  • 测试的参数有些是瞎写试的,有的是刻意写的
启动盘参数
boot0default
boot1DiskIdxMap=1000 SataPortMap=28
boot2DiskIdxMap=0800 SataPortMap=28
boot3DiskIdxMap=0800 SataPortMap=24
boot4DiskIdxMap=100800 SataPortMap=188
boot5DiskIdxMap=100400 SataPortMap=148
boot6DiskIdxMap=100400 SataPortMap=144
boot7DiskIdxMap=030400 SataPortMap=144
boot8DiskIdxMap=200400 SataPortMap=244
boot9DiskIdxMap=203000 SataPortMap=244
boot10DiskIdxMap=313000 SataPortMap=244
boot11DiskIdxMap=313000 SataPortMap=114
boot12DiskIdxMap=31300000 SataPortMap=1144

BOOT DISK

测试理论

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

测试过程

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

boot0

set extra_args_3617=''

boot0

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

boot1

DiskIdxMap=1000 SataPortMap=28

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

boot1

boot2

DiskIdxMap=0800 SataPortMap=28

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

boot2

boot3

DiskIdxMap=0800 SataPortMap=24

boot3

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

boot4

DiskIdxMap=100800 SataPortMap=188

boot4

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

boot4 添加直通硬盘

DiskIdxMap=100800 SataPortMap=188

boot4 pci

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

boot5

DiskIdxMap=100400 SataPortMap=148

boot5

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

boot5 添加直通硬盘

DiskIdxMap=100400 SataPortMap=148

boot5 pci

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

boot6 添加直通硬盘

DiskIdxMap=100400 SataPortMap=144

boot6 pci

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

boot7

DiskIdxMap=030400 SataPortMap=144

boot7

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

boot7 添加直通硬盘

DiskIdxMap=030400 SataPortMap=144

boot7 pci

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

新一组实验

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

boot8

DiskIdxMap=200400 SataPortMap=244

boot8

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

boot9

DiskIdxMap=203000 SataPortMap=244

boot9

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

boot10

DiskIdxMap=313000 SataPortMap=244

boot10

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

boot11

DiskIdxMap=313000 SataPortMap=114

boot11

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

boot12

DiskIdxMap=31300000 SataPortMap=1144

boot15

  • 尝试在数据盘中全部使用00的DiskIdMap
  • SataPortMap中对启动盘和16G盘限制到极限值1
  • 全部数据盘被读取到,顺序完全正确
  • 启动盘和16G盘被隐藏
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码