如何在Solaris 10中更改控制器编号/枚举?

将Solaris 10服务器移动到新机器后,rpool磁盘现在为c1t0d0。 我们有一些第三方应用程序硬编码为c0t0d0。 我怎样才能改变这台机器上的控制器枚举? 不再有c0。

我已经尝试重build/ etc / path_to_inst,但实例号似乎与控制器号码不匹配。 另外,还不清楚i86pc平台是否使用这个文件。

我已经尝试devfsadm -C清除悬挂链接,但我不知道如何导致devfsadm再次从0开始编号(或强制树中的某些设备到特定的控制器编号)。

接下来,我将尝试在/ dev / dsk和rdsk中手动创build符号链接,以指向正确的/ devices。

我觉得我要走的路在这里。 有什么build议么?

谢谢


更新:

这是在具有附加直通式HBA的虚拟ESXi硬件上。 机器上没有控制器0,这是肯定的。 devfsadm -C清除所有的c0设备符号链接,但保留已经链接的控制器在他们当前的id。

似乎有一个应用程序关心磁盘设备名称的奇怪,但放在一边,听起来好像可能还有另一个控制器被发现在rpool磁盘所在之前。 可能的嫌疑人将是板载IDE或SATA端口,也许是CDROM设备。 CDROM和其他非磁盘设备不以“格式”显示。

i86pc平台确实使用path_to_inst,但它是附加到特定驱动程序实例的硬件列表,而“controller”是一个潜在覆盖多个驱动程序的通用标识符。 我会看'iostat -En'的输出,看看它是否列出了c0中的任何内容。 这可能会给你一个提示。 如果有什么东西,你可能需要禁用该端口,否则将继续显示并占用该控制器号码。 控制器是按照定义的顺序枚举的,尽pipe各种PC BIOS之间必然存在差异,但是我的经验是板载控制器是在PCI / PCI-X / PCIe插槽中的附加控制器之前发现的。

您也可以尝试重新configuration引导:'touch / reconfigure'并重启。

将硬盘物理移动到控制器0,Solaris将会更新它(可能需要重新configuration)。

如果您要创build符号链接,请注意将来可能会更改,devfsadm将不会在意它。