此博文的原作者是 Dell 操作系统工程师 David Waggoner。
更换 Windows 2008 R2 服务器用于网络启动中的重要启动部件,经常会造成所谓的蓝屏死机(BSoD,Microsoft 的官方称谓是 bugcheck)。KB 2344941 改变了 Windows 2008 R2 指定“新增”即插即用资源的方式,在所更换部件非常相似且位于同一主板插槽的情况下,使系统更有可能避免问题。
KB 文章中提到的“Stop 7B”错误实质上意味着 Windows Server 2008 R2 无法从其预设的启动设备上启动(对于聪明的用户,消息 “INACCESSIBLE_BOOT_DEVICE ”已经说明了这一点)。此错误消息当然并不限于网络启动设备,但本文着重讨论这一点。
在安装 Windows 2008 R2 的最新 Dell 服务器中,更换插入式 NIC 或主板通常会使这些设备在 Windows 即插即用中重新识别为新的设备,即使这样的卡/主板具有相同的固件、卡位置等。所有的配置均会丢失,并将创建新的名称(本地局域网连接 X),从而使带有 4 个网络端口的服务器指定的编号都会达到 5 以上,而在更换硬件之前,端口的编号并不多。
KB 2344941 改变了 MS 分配新资源的方式,在所更换部件非常相似且位于同一主板插槽的情况下,使系统更有可能避免问题。建议在所有“网络启动”的系统中安装此 QFE(安装后务必重启),这样让我们可以更顺利地处理非预期的维护事件。
为什么会造成这个问题?
更换 NIC 或主板会为受影响的 PCIe 设备产生不同的序列号(注意 KB 中的 PCI 快速序列号功能参考),导致操作系统将其视为“新”设备,并且相应地配置资源(PnP 设备 ID)。
我们来简略了解一下 MS iSCSI 软件启动器启动流程:
在 iSCSI 软件启动器(Software Initiator)启动时,NIC 固件连接至 LUN,创建 iBFT(自动将 iSCSI LUN 信息传输至操作系统)以及 iSCSI Initiator服务,NIC 设备驱动程序(作为启动关键设备启动)继续启动流程。由于该服务必须及早开始,几乎没有机会进行设备或软件的配置,直至操作系统后面起来。
在我们的示例中,NIC/主板已更换为相同的部件,序列号不同。系统也加载了关键启动设备的正确的驱动程序,并开始 iSCSI 启动流程。当操作系统的启动流程进行到相当的阶段时,它才开始意识到所有的 NIC 为“新增”,并开始自动对每个接口应用 WFP 轻量过滤器。此过滤器应用到 iSCSI 启动的NIC 后,系统停止,显示 Stop 7B。KB 文章提供了一种解决方法,但过程比较繁琐。请注意,除 iSCSI 启动以外的网络启动类型均会受到影响,如 Citrix KB 所示。
更多精彩文章请关注: