黑群晖DSM 引导项 grub.cfg 修改硬盘物理序列号
前言
在搭建 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)
测试的参数有些是瞎写试的,有的是刻意写的
启动盘 参数
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 盘被隐藏
————————————————
版权声明:本文为CSDN博主「weixin_39665992」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39665992/article/details/111583362