troubleshooting

Intel 存储控制器驱动版本引发的 Windows 蓝屏故障 0xC0000098

        最近在评估一款 PC 设备,由于通过 WDS 部署评估映像,并使用了 DDP(Dynamic Driver Provisioning)注入驱动,发现在部署操作系统后第一次启动时会发生 0xC0000098 故障,提示由 iaStorAC.sys 文件引起。

        iaStorAC.sys 文件很常见,是 Intel 存储控制器的驱动模块,经查隶属于 iaAHCIC.inf,随即排查 WDS 驱动库,发现包含两个版本的 iaAHCIC,分别是16.8.0.1000 和 15.2.0.1020。

DriverGroup1_iaAHCIC

其中 16.0.8.1000 包含的驱动模块为:iaStorAC.sys

DriverGroup1_iaAHCIC_W10

而 15.2.0.1020 包含的驱动模块为:iaStorA.sys 和 iaStorF.sys

DriverGroup1_iaAHCIC_W7

        猜测 DDP 注入了当前匹配硬件的驱动后,发现还有该硬件的新版本驱动,并包含旧版以外的文件,所以也一同安装了这个新版驱动。在实际排错过程中 gOxiA 也发现系统同时加载了 iaStorA、iaStorF 和 iaStorAC,可预料 iaStorAC 与当前系统不兼容,所以引发 0xC0000098 故障,之后尝试禁用 iaStorAC 发现会导致系统蓝屏,看来要彻底解决只能卸载该驱动。

        在脱机状态下,使用 DISM 维护映像,通过 get-drivers 参数获取该驱动分别对应 OEM2.inf 和 OEM16.inf,此时除了对比两个驱动的版本外,也可使用 get-driverinfo 来获取驱动程序的详细信息。当确认影响系统的驱动是 OEM16.inf 后,可通过 remove-driver 将该驱动从脱机系统中移除。

        现在重新启动,系统会先执行短暂的初始化,之后便能正常引导系统完成后续的安装。

        现在很多品牌机的驱动交付质量都已经大大不如从前,也可能驱动程序更加复杂,导致经常以标准化方式注入驱动后,发现系统出现故障,或驱动未能正常安装的情况,这对于桌面标准化交付来说确实是一个挑战,因为每一批设备可能都需要进行完整的评估和测试。

HOWTO: 使用 SetupDiag Tool 诊断 Windows 10 升级故障

        之前我们已经了解如何使用 Windows 10 安装程序 Setup.exe 执行升级验证,并学习了如何分析 Windows 10 安装日志,如果你无法专注于那些错误信息,那么不要气馁!微软为我们带来了 SetupDiag 工具,它是一个独立的诊断工具,可获取有关 Windows 10 升级失败原因的详细信息。(PS:微软真是太贴心了,记住这款诊断工具是免费的!)

        SetupDiag 支持 Windows 7 SP1 to Windows 10;Windows 8.1 同 Windows 10;以及 Windows 10 to Windows 10。

        SetupDiag 会检查 Windows 安装程序的相关日志,并识别出导致 Windows 10 安装或升级失败的关键日志信息。此外,SetupDiag 还支持离线模式,对于那些已经遭遇安装或升级失败的设备,我们也可以使用 SetupDiag 找出失败的根因。

        SetupDiag 需要 .NET Framework 4.6,如果你在为满足需求的环境下执行,则会遇到错误提示,所以请先确保您的系统环境已经安装了 dotNET4,对于 Windows 7 是需要额外安装该组件的。

Req_dotNet4

        从微软官方下载:SetupDiag,可直接双击运行,但 gOxiA 建议你以管理员模式在 CMD 下手工执行,如下图所示:

setupdiag

        SetupDiag 会从相关的目录下查找日志以进行自动化的诊断,如果找到匹配的信息,则会给出诊断结果,在本例中 SetupDiag 找到了“Processing rule: CompatScanOnly”,并给出了相关的建议和参考信息,最后还会生成名为 SetupDiagResults.log 的日志文件,以供我们事后参考。此外,还会生成一个 Logs.zip 的压缩包,其中包含了相关的日志文件。

SetupDiagResults

        如果要执行脱机诊断,需要收集相关的日志到一个文件下,并为 SetupDiag 附加命令参数,参考如下:

SetupDiag.exe /LogsPath:c:\setuplog

        在 SetupLog 文件夹下应该包含相关的日志文件,你可以从以下位置复制。

\$Windows.~bt\sources\panther

\$Windows.~bt\sources\rollback

\Windows\panther

\Windows\Panther\NewOS

HOWTO: 分析 Windows 10 安装日志

[ 2019/07/11 13:56 | by gOxiA ]

HOWTO: 分析 Windows 10 升级安装日志

        如果你在关注 gOxiA 前几天分享的日志“HOWTO: 使用 Windows 10 安装程序 Setup.exe 执行升级验证”,那么应该已经收集到了相关的日志,我们会重点分析“MoSetup”下的“BlueBox”日志,以及“Panther”下的“setuperr”和“setupact”日志。

setuplog

        如下面截图中 BlueBox 日志记录了 0xC190010A,它表示“MOSETUP_E_UNKNOWN_CMD_LINE”,即命令行未知,排查后发现是 gOxiA 执行的 Setup.exe 命令行参数存在错误。

BlusBox_log

        当然以上的错误并不常见,只是为了本文说明,但是在遇到具体的升级故障时我们还需要分析 setuperr.log,该日志中包含了很多错误信息,但并不是所有的错误都会导致升级失败,如下图所示:

setuperr_log

        虽然包含了很多错误日志,但并不会真正影响 Windows 10 升级安装,所以我们需要查找那些会导致“Shell 应用程序请求终止”,或“由于对象的错误而放弃应用”的错误,此外 IT 人员还需要根据实际情况对 setupact.log 进行分析。这些日志通常包含四个等级的日志:Info, Warning, Error, Fatal Error;组件主要包含:CONX (Compatibility Information), MOUPG (Modern Upgrade), PANTHR, SP (Setup Platform), IBSLIB, MIG (Migration Engine), DISM, CSI, CBS。

分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]