在非正常关机后启动时,Windows 7 上装有 SSD 的 BSOD

在非正常关机后启动时,Windows 7 上装有 SSD 的 BSOD

我在装有 SSD 的 Windows 7 上因不当关机(Windows 动画徽标正在移动)启动时出现 BSOD。计算机在 BSOD 后立即重新启动,Windows 建议启动启动修复(如果我这样做,需要 +-5 分钟并解决问题:计算机正常启动)。但是,在任何新的不当关机后,我都会遇到同样的问题。备注:

  • 如果我拔下 SSD,然后在系统关闭时重新插入,我还会遇到同样的问题。
  • 如果我用旧硬盘重现这种情况,则没有问题
  • 之前,我遇到了一个不同的问题:睡眠后唤醒时出现 BSOD,通过安装驱动程序(以太网、USB、显卡)解决了这个问题
  • 我已经进行了 RAM 检查和 SSD 检查,没有发现任何问题
  • 在非正常关机后以安全模式启动会导致在加载 classpnp.sys 时出现 BSOD

配置:

  • 系统:HP compaq 8510p
  • 固态硬盘:OCZ Vertex-2 2.5
  • 启动选项:SATA 本机模式 -> 启用,HDD 转换模式 -> LBA 辅助

编辑:BSOD 显示:已检测到问题,并且已关闭 Windows 以防止损坏......运行 CHKDSK /F(我运行了,没有发现错误)...技术信息:*** STOP:0x0000007B(0XFFFFF880009A9928;0xFFFFFFFFC0000034, 0x0000000000000000, 0x0000000000000000)

修复后,我收到:“找到根本原因:系统配置的未指定更改可能导致该问题”

使用 windbg,通过打开 minidump 和 MEMORY.DMP,我得到以下信息:“可能是由 wininit.exe 引起的,后续:MachineOwner”

答案1

根据您最近的评论,这听起来确实像是 AHCI 驱动程序有问题。您应该尝试更新任何芯片组驱动程序,并确保 SSD 上的固件是最新的;这可能足以自行解决问题。

答案2

寻找问题描述。

我遇到了 BSOD...

读完四个字后,我开始自问“什么是 BSOD?”或者更确切地说“实际问题是什么?”。
那里有有用的信息,如果你只是告诉我们你的电脑出现蓝屏,那么我们就帮不了你了。

尝试读取错误代码或名称,看看是否可以从磁盘获取转储文件...
感兴趣的文件是C:\Windows\MEMORY.DMP以及其中的任何内容C:\Windows\MiniDump

鉴于崩溃发生在 Windows 徽标期间,很可能可以访问磁盘,因此转储将保存在那里,并且鉴于 BSOD 仅短暂显示,它很可能是一个 MiniDump,您能上传最新的以便我们分析它们吗?

...在任何新的不正确关机之后,我遇到了同样的问题......

如果是完全相同的问题,那么完全相同的解决方案就会有效。

...并提供了一些我尝试过的更多细节和步骤。

所有其他细节均不相关,并且由于您不知道问题所在,因此无需进行故障排除。


通过使用以下方法分析小型转储,获取更多详细信息调试

Windows 7 内核版本 7601 (Service Pack 1) MP (2 个进程) 免费 x64
构建者:7601.17514.amd64fre.win7sp1_rtm.101119-1850

因此,我们已将 Windows 7 x64 更新至 RTM 版 SP1。很高兴它是最新的...

调试会话时间:2011 年 3 月 2 日星期三 03:45:55.660(UTC + 1:00)

崩溃发生在 3 月 2 日,您确定没有发生过更近的崩溃吗?
或者那是您最后一次启动系统?

无论如何,让我们分析一下;如果你不需要 WinDBG,请检查这个在线替代方案

1: kd> !analyze -v

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 0000000000000003, Process
Arg2: fffffa80051fa4c0, Terminating object
Arg3: fffffa80051fa7a0, Process image file name
Arg4: fffff80002d8fdb0, Explanatory message (ascii)

Debugging Details:
------------------
PROCESS_OBJECT: fffffa80051fa4c0
IMAGE_NAME:  wininit.exe
DEBUG_FLR_IMAGE_TIMESTAMP:  0
MODULE_NAME: wininit
FAULTING_MODULE: 0000000000000000
PROCESS_NAME:  wininit.exe
EXCEPTION_CODE: (NTSTATUS) 0xc0000006 - The instruction at 0x%p referenced memory at 0x%p. The required data was not placed into memory because of an I/O error status of 0x%x.
BUGCHECK_STR:  0xF4_IOERR
DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT
CURRENT_IRQL:  0
STACK_TEXT:  
fffff880`067700e8 fffff800`02e14982 : 00000000`000000f4 00000000`00000003 fffffa80`051fa4c0 fffffa80`051fa7a0 : nt!KeBugCheckEx
fffff880`067700f0 fffff800`02dc20ab : ffffffff`ffffffff fffffa80`05481b60 fffffa80`051fa4c0 fffffa80`051fa4c0 : nt!PspCatchCriticalBreak+0x92
fffff880`06770130 fffff800`02d45698 : ffffffff`ffffffff 00000000`00000001 fffffa80`051fa4c0 00000000`00000008 : nt! ?? ::NNGAKEGL::`string'+0x17ad6
fffff880`06770180 fffff800`02a8b8d3 : fffffa80`051fa4c0 fffff800`c0000006 fffffa80`05481b60 00000000`02190d10 : nt!NtTerminateProcess+0xf4
fffff880`06770200 fffff800`02a87e70 : fffff800`02ad811f fffff880`06770b78 fffff880`067708d0 fffff880`06770c20 : nt!KiSystemServiceCopyEnd+0x13
fffff880`06770398 fffff800`02ad811f : fffff880`06770b78 fffff880`067708d0 fffff880`06770c20 00000000`ffc4b938 : nt!KiServiceLinkage
fffff880`067703a0 fffff800`02a8bcc2 : fffff880`06770b78 00000000`02210000 fffff880`06770c20 00000000`ffc4f894 : nt! ?? ::FNODOBFM::`string'+0x49974
fffff880`06770a40 fffff800`02a8a83a : 00000000`00000000 00000000`ffc3ec6c 00000000`00000001 00000000`02210000 : nt!KiExceptionDispatch+0xc2
fffff880`06770c20 00000000`76fa8f55 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiPageFault+0x23a
00000000`021912d0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x76fa8f55

STACK_COMMAND:  kb
FOLLOWUP_NAME:  MachineOwner
FAILURE_BUCKET_ID:  X64_0xF4_IOERR_IMAGE_wininit.exe
BUCKET_ID:  X64_0xF4_IOERR_IMAGE_wininit.exe
Followup: MachineOwner
---------

阅读分析

  1. 错误检查 0xF4:CRITICAL_OBJECT_TERMINATION当系统进程或线程由于某种原因终止时,系统将无法再运行。

  2. 错误检查的第 1 个参数是 0x3,表示进程已终止。

  3. 参数2指向终止的进程,调试细节显示这是wininet.exe
  4. 参数 3 指向终止进程结构中的名称,如步骤 3 所示。
  5. 论点4指出了该进程终止的原因是:

    (NTSTATUS) 0xc0000006 - The instruction at 0x%p referenced memory at 0x%p.
    The required data was not placed into memory because of an I/O error status of 0x%x.
    
  6. 其余详细信息不会显示任何特定的驱动程序模块,而只是显示内核中的位置,因为它们以 开头nt!。不过,它确实显示了驱动程序故障,但这很可能是允许数据从硬件传输到软件的驱动程序。此 Microsoft 驱动程序保证稳定,因此这不是驱动程序问题,而更可能是硬件问题。

结论

在步骤 5 中,我们发现正在内存中的特定位置读取数据(因为我们使用小型转储,所以该位置不可用)但该数据已被分页到磁盘,因此它执行 I/O 操作以从磁盘获取该数据。

在第 6 步中,我们发现这更可能是硬件问题,因为断电后,很可能是 SSD 损坏或 SSD 缓存中的数据已损坏。我认为唯一的解决方案是重新安装系统、禁用磁盘缓存并定期备份。

如果不重新安装,你几乎无法修复损坏,如果它确实由于制造错误而损坏或发生故障,你将不得不寻求保修,或者在最坏的情况下,购买新产品。

相关内容