适用于:受支持的 Windows Server 和 Windows 客户端版本
当 Windows 遇到危及系统安全运行的情况时,系统将停止。 示例包括可能危及安全性或导致操作系统(OS)和/或用户数据损坏的故障。 当计算机停止以防止操作系统在这些条件下继续运行时,它称为 Bug 检查(或 Bugcheck)。 它通常也称为系统崩溃、内核错误、蓝屏、蓝屏死机 (BSOD) 或停止错误。 在 Windows 预览版上,屏幕颜色可以是绿色,从而导致绿屏死机 (GSOD)。
对于停止错误的原因没有简单的解释。 可以涉及许多不同的因素。 我们对崩溃根本原因的分析表明:
- 70% 是由第三方驱动程序代码引起的。
- 10% 是由硬件问题引起的。
- 5% 是由 Microsoft 代码引起的。
- 15% 的原因未知,因为内存损坏太多,无法分析。
要对停止错误消息进行疑难解答,请按照以下常规步骤进行操作:
- 查看在事件日志中找到的停止错误代码。 联机搜索特定的停止错误代码,查看是否存在针对此问题的任何已知问题、解决方法或绕过方法。
- 请确保安装最新的 Windows 更新、累积更新和汇总更新。 要验证更新状态,请参阅系统的相应更新历史记录。 例如:
- Windows 10 版本 21H2
- Windows 10 Version 21H1
- Windows 10 Version 20H2
- 请确保 BIOS 和固件是最新版本。
- 运行任何相关的硬件和内存测试。
- 运行 Microsoft 安全扫描程序,或者运行检查 MBR 是否感染的任何其他病毒检测程序。
- 确保硬盘上有足够的可用空间。 确切的要求各不相同,但我们建议 10-15% 的可用磁盘空间。
- 在以下情况下,请与相应的硬件或软件供应商联系来更新驱动程序和应用程序:
- 错误消息指示特定驱动程序导致了该问题。
- 你看到的是,崩溃发生前有指示显示正启动或停止的某项服务。 在这种情况下,请确定服务行为在所有崩溃实例中是否一致。
- 你进行了任何软件或硬件更改。
要为内存转储文件配置系统,请执行以下步骤:
- 选择“任务栏”搜索框,键入“高级系统设置”,然后按 Enter。
- 在“系统属性”框的“高级”选项卡上,选择“启动和恢复”部分中显示的“设置”按钮。
- 在新窗口中,选择选项“写入调试信息”下方的下拉列表。
- 选择“自动内存转储”。
- 选择“确定”。
- 重启计算机,设置才能生效。
- 如果服务器已虚拟化,请在创建内存转储文件后禁用自动重新启动。 通过此禁用,你可以拍摄服务器处于当前状态以及问题再次出现时的快照。
内存转储文件保存在以下位置:
可以使用 Microsoft Crash Dump File Checker (DumpChk) 工具来验证内存转储文件是否已损坏或无效。 有关详细信息,请观看以下视频:
有关如何使用 Dumpchk.exe 检查转储文件的详细信息,请参阅以下文章:
- 使用 DumpChk
- 下载 DumpChk
有关 pagefile 设置的更多信息,请参阅以下文章:
- 页面文件简介
- 如何确定 64 位版本 Windows 的合适页面文件大小
- 生成内核或完整的故障转储
查找崩溃的根本原因可能并不容易。 硬件问题尤其难以诊断,因为它们可能会导致不稳定和不可预知的行为,这些行为可能表现为各种症状。
发生停止错误时,应首先隔离有问题的组件,然后尝试引导它们再次触发停止错误。 如果可以重现问题,通常可以确定原因。
可以使用 Windows 软件开发工具包 (SDK) 和符号等工具来诊断转储日志。 下一部分讨论如何使用此工具。
- 高级 Windows 调试,第一版书籍
- Windows 调试工具(WinDbg、KD、CDB、NTSD)
- 验证计算机是否已设置为在发生崩溃时生成完整的内存转储文件。 有关详细信息,请参阅方法 1:内存转储。
- 在崩溃计算机的 Windows 目录中找到 memory.dmp 文件,然后将该文件复制到另一台计算机。
- 在另一台计算机上,下载 Windows 10 SDK。
- 开始安装并选择“调试 Windows 工具”。 已安装 WinDbg 工具。
- 转到“文件”菜单,选择“符号文件路径”以打开 WinDbg 工具并设置符号路径。
- 如果计算机已连接到 Internet,请输入 Microsoft 公共符号服务器:,然后选择“确定”。 建议使用此方法。
- 如果计算机未连接到 Internet,请指定本地符号路径。
- 选择“打开故障转储”,然后打开复制的 memory.dmp 文件。
- 在“Bug 检查分析”下,选择“”。 在页面底部的提示符中输入 命令。
- 将显示详细的 Bug 检查分析。
- 向下滚动到“STACK_TEXT”部分。 此时将出现一行数字,每行后跟一个冒号和一些文本。 该文本应解答 DLL 导致崩溃的原因。 如果适用,它还会显示是哪个服务导致 DLL 崩溃。
- 有关如何解释 STACK_TEXT 输出的详细信息,请参阅使用 !analyze 扩展。
存在许多可能导致 Bug 检查的原因,每个情况都是唯一的。 在上面提供的示例中,可从 STACK_TEXT 识别的重要行为 20、21 和 22:
此问题是由 Windows 防火墙的组件 mpssvc 服务造成的。 通过暂时禁用防火墙,然后重置防火墙策略,解决了该问题。
有关更多示例,请参阅调试示例。
以下视频演示用于分析转储文件的各种疑难解答方法。
- 分析转储文件
- 安装适用于 Windows(x64 和 x86)的调试工具
- 调试内核模式故障内存转储
- 特殊池
我们估计,大约 75% 的所有停止错误是由有故障的驱动程序引起的。 驱动程序验证程序工具提供多种方法来帮助进行疑难解答。 其中包括在隔离内存池中运行驱动程序(不与其他组件共享内存)、生成极端内存压力和验证参数。 如果工具在执行驱动程序代码时遇到错误,它会主动创建异常。 然后,它可以进一步检查该部分代码。
使用驱动程序验证程序时,请使用以下准则:
- 测试任何“可疑”驱动程序。 例如,最近更新的驱动程序或已知有问题的驱动程序。
- 如果继续遇到不可分析的崩溃,请尝试对所有第三方和未签名的驱动程序启用验证。
- 对 10-20 个驱动程序组启用并发验证。
- 此外,如果计算机由于驱动程序验证程序而无法启动到桌面,可以通过在安全模式下启动来禁用该工具。 此解决方案是因为该工具无法在安全模式下运行。
有关详细信息,请参阅驱动程序验证程序。
本部分不包含所有错误代码的列表,但由于许多错误代码都有相同的潜在解决方法,因此最好按照以下步骤对错误进行疑难解答。 有关停止错误代码的完整列表,请参阅 Bug 检查代码参考。
以下部分列出了对常见停止错误代码的常规疑难解答过程。
停止错误代码 0x00000141 或 0x00000117
请联系列出的显示驱动程序的供应商,获取该驱动程序的相应更新。
停止错误代码 0x0000000D1
通过 Microsoft 更新目录网站为系统应用最新累积更新,进而对驱动程序应用最新更新。 更新过时的网络驱动程序。 虚拟化 VMware 系统通常运行“Intel(R) PRO/1000 MT 网络连接”(e1g6032e.sys)。 可以从 Intel 下载驱动程序和软件网站下载此驱动程序。 请联系硬件供应商更新网络驱动程序以获取解决方案。 对于 VMware 系统,请使用 VMware 集成网络驱动程序,而不是 Intel 的e1g6032e.sys。 例如,使用 VMware 类型 VMXNET、VMXNET2 或 VMXNET3。
停止错误代码 0x000000050
如果在停止错误消息中标识了驱动程序,请与制造商联系以获取更新。 如果没有可用更新,请禁用驱动程序,并监视系统是否稳定。 运行 以检测和修复磁盘错误。 在系统分区上开始磁盘扫描之前重启系统。 请联系制造商,获取他们可能为硬盘子系统提供的任何诊断工具。 尝试重新安装最近安装或更新的任何应用程序或服务。 系统在启动应用程序并读取注册表以获取首选项设置时,可能会触发崩溃。 重新安装应用程序可以修复损坏的注册表项。 如果问题仍然存在,并且已运行最近的系统状态备份,请尝试从备份还原注册表配置单元。
停止错误代码 c000021a {致命系统错误} Windows SubSystem 系统进程意外终止,状态为 0xc0000005。 系统已关闭。
使用系统文件检查器工具修复丢失或损坏的系统文件。 系统文件检查器允许用户扫描 Windows 系统文件中的损坏情况并还原损坏的文件。 有关详细信息,请参阅使用系统文件检查器工具。
停止错误代码 0x000000024
硬盘上的 NTFS 文件系统损坏或坏块(扇区)通常会引发此停止错误。 损坏的硬盘驱动程序(SATA 或 IDE)也会对系统读取和写入磁盘的能力产生不利影响。 运行存储子系统制造商提供的任何硬件诊断。 使用扫描磁盘工具确认没有文件系统错误。 要执行此步骤,请右键单击要扫描的驱动器,选择“属性”,选择“工具”,然后选择“立即检查”按钮。 更新 NTFS 文件系统驱动程序 (Ntfs.sys)。 为遇到问题的当前操作系统应用最新的累积更新。
停止错误代码 0x0000001E
如果在停止错误消息中标识了驱动程序,请禁用或删除该驱动程序。 禁用或删除最近添加的所有驱动程序或服务。
如果在启动序列过程中出现错误,并且使用 NTFS 文件系统格式化系统分区,那么你可能能够使用安全模式在设备管理器中禁用该驱动程序。 要禁用驱动程序,请按照下列步骤操作:
- 转到“设置”>“更新与安全”>“恢复”。
- 在“高级启动”下,选择“立即重启”。
- 在电脑重启显示“选择选项”屏幕后,选择“故障排除”>“高级选项”>“启动设置”>“重启”。
- 计算机重启后,将显示选项列表。 按 4 或 F4 在安全模式下启动计算机。 如果你想要在安全模式下使用 Internet,请按 5 或 F5 选择“网络安全模式”选项。
停止错误代码 0x00000133
在某些情况下,此停止代码是由故障驱动程序导致的,该驱动程序未在分配的时间范围内完成其工作。 为了帮助缓解此错误,请从系统收集内存转储文件,然后使用 Windows 调试器查找故障驱动程序。 如果在停止错误消息中标识了某个驱动程序,请禁用该驱动程序以隔离问题。 请与制造商联系以获取驱动程序更新。 在事件查看器中检查系统日志以获取其他错误消息,这可能有助于识别导致出现错误代码 0x133 的设备或驱动程序。 验证安装的任何新硬件是否与安装的 Windows 版本兼容。 例如,可以在 Windows 10 规范中获取所需硬件的相关信息。 如果安装了 Windows 调试器,并且你有权访问公共符号,则可以将 c:windowsmemory.dmp 文件加载到调试器中。 然后,请参阅“确定 Windows Server 2012 上错误检查 0x133 (DPC_WATCHDOG_VIOLATION) 错误的来源”,从内存转储中查找出现问题的驱动程序。
停止错误代码 0x0000009E
此停止错误表明用户模式运行状况检查失败,从而阻止了正常关闭。 Windows 通过重启或支持应用程序故障转移到其他服务器来恢复关键服务。 群集服务包含检测机制,可在用户模式组件中检测无响应情况。
此停止错误通常发生在群集环境中,指示故障驱动程序是 RHS.exe。 检查事件日志中是否存在任何存储故障,以找出失败的进程。 尝试更新事件日志中指示的组件或进程。 你应该会看到记录的以下事件:
- 事件 ID:4870
- 源:Microsoft-Windows-FailoverClustering
- 描述:用户模式运行状况监视检测到系统没有响应。 故障转移群集虚拟适配器与进程 ID 为“%1”的群集服务器进程失去联系,持续“%2”秒。 将执行恢复操作。 查看群集日志以识别进程并调查哪些项可能导致进程挂起。
有关详细信息,请参阅“基于 Windows Server 的多节点故障转移群集环境中群集节点上的“0x0000009E”停止错误”。另请参阅以下 Microsoft 视频“如果发生 9E 怎么办”。
此错误检查是由驱动程序在升级期间挂起引起的,导致 NDIS.sys 中出现错误检查 D1,这是一个 Microsoft 驱动程序。 IMAGE_NAME 会告诉你存在故障的驱动程序,但由于此驱动程序是 Microsoft 驱动程序,因此无法替换或删除。 解决方法是在设备管理器中禁用网络设备,然后再次尝试升级。
在此示例中,非 Microsoft 驱动程序导致页面错误,因此我们没有此驱动程序的符号。 但是,查看 IMAGE_NAME 或 MODULE_NAME 表明是 WwanUsbMP.sys 导致了此问题。 断开设备连接并重试升级是一种可能的解决方案。
错误检查代码参考
到此这篇安装虚拟机蓝屏重启又好了(安装虚拟机蓝屏重启又好了什么原因)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/16379.html