Por que o Windows não salva um minidump de verificação de bugs?

3

Como eu corrijo o Windows descrito abaixo para salvar um minidump em %SystemRoot%\Minidump quando ocorrer uma verificação de erro ?, como deveria fazer normalmente. Eu preciso do minidump para saber o que o driver falhou e precisa ser removido ou alterado

recoveros

As configurações de recoveros estão corretas

wmic recoveros list /format:list && wmic recoveros get debuginfotype,minidumpdirectory /format:list
AutoReboot=TRUE
WriteDebugInfo=TRUE
WriteToSystemLog=TRUE
DebugInfoType=3
MiniDumpDirectory=%SystemRoot%\Minidump

Não importa se a reinicialização automática está desativada

wmic recoveros set autoreboot=false

Número do Bugcheck

Não há indicação de que o número da verificação de bugs é importante (que um minidump é salvo para alguns números de verificação de bugs) porque

  • nenhum minidump foi salvo para 307 (2012-12-03 - 2013-10-06) dias

  • o número de verificações de bugs durante esse período é de cerca de 37, de acordo com Control Panel\System and Security\Action Center\Reliability Monitor

Um exemplo de nome de verificação de bug não salvo é

PROCESS_HAS_LOCKED_PAGES
no bugcheck name (the "BugCheck name" row in the topic "Bugcheck display" isn't written)

exibição do Bugcheck

A verificação de erro mostra a mesma mensagem de quando um evento de minidump (1001) é salvo (não indica que não é salvo um minidump)

A problem has been detected and Windows has been shutdown to prevent damage to your computer.

BugCheck name (this row is sometimes not displayed)

General information

Technical information:

*** STOP: BugCheck code (arguments)

*** driver where BugCheck was called

Collecting data for crash dump ...
Initializing disk for crash dump ...
Physical memory dump complete.
Contact your system administrator or technical support group for further assistance.

wevtutil

Quando ocorre uma verificação de bug

O Windows não salva um evento de minidump (1001)

wevtutil qe system /q:*[System[EventID=1001]] /rd:true /f:text /c:1

O Windows salva os outros eventos de verificação de erros

wevtutil qe system /q:*[System[EventID=41]] /rd:true /f:text /c:1
  Date: 2013-01-29T19:15:42.198
The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.

wevtutil qe system /q:*[System[EventID=6008]] /rd:true /f:text /c:1
  Date: 2013-01-29T19:15:47.000
The previous system shutdown at 7:14:47 PM on ‎1/‎29/‎2013 was unexpected.

wevtutil qe system /q:*[System[EventID=1076]] /rd:true /f:text /c:1
  Date: 2013-01-29T19:16:49.000
The reason supplied by user PC\User for the last unexpected shutdown of this computer is: System Failure: Stop error
 Reason Code: 0x805000f
 Problem ID:
 Bugcheck String:
 Comment:

werfault

O Windows não exibe essa caixa de diálogo werfault ao iniciar após um BugCheck

Windows has recovered from an unexpected shutdown

Windows can check online for a solution to the problem.

Monitor de Confiabilidade

O histórico do Monitor de Confiabilidade exibe esta mensagem quando uma verificação de erro não salva um minidump

Critical events

Windodws was not properly shut down

The previous system shutdown at 2:11:08 AM on ‎8/‎21/‎2013 was unexpected.

em vez desta mensagem, quando uma verificação de erros salva um minidump

Critical events

Windows stopped working

The computer has rebooted from a bugcheck. The bugcheck was: 0x0000003b (0x00000000c0000005, 0xfffff96000352e77, 0xfffff8802385fea0, 0x0000000000000000). A dump was saved in: C:\Windows\Minidump0613-14570-01.dmp. Report Id: 100613-14570-01.

minidumpscount

minidumpscount é maior que 0 (e, se for importante, maior que o número de minidespeções)

reg query hklm\system\currentcontrolset\control\crashcontrol /v minidumpscount
    minidumpscount    REG_DWORD    0x3e7

dir %systemroot%\minidump | tail -2
              35 File(s)      9▒917▒969 bytes

pagefileset

O tamanho adequado de pagefileset para salvar um minidump não é conhecido. Pode ser esse tamanho

wmic pagefileset list /format:list
InitialSize=1000
MaximumSize=1000

Esses tamanhos foram testados sem resolver o problema

wmic pagefileset where name="c:\pagefile.sys" set initialsize=2000,maximumsize=2000
wmic pagefileset where name="c:\pagefile.sys" set initialsize=3000,maximumsize=3000
wmic pagefileset where name="c:\pagefile.sys" set initialsize=4000,maximumsize=4000
wmic computersystem where name="%computername%" set automaticmanagedpagefile=true

attrib

A pasta de minidespejo não é somente leitura (i.o.w. permite que um BugCheck salve um minidump)

attrib %SystemRoot%\Minidump
        I    C:\Windows\Minidump

icacls

A segurança da pasta de minidespejo está correta (i.o.w. permite que um BugCheck salve um minidump)

icacls %SystemRoot%\Minidump
C:\Windows\Minidump BUILTIN\Administrators:(OI)(CI)(F)
                    NT AUTHORITY\SYSTEM:(OI)(CI)(F)

Successfully processed 1 files; Failed processing 0 files

rmdir

A pasta de minidespejo é eliminada porque

  • que reduzem a probabilidade de a segurança da pasta estar errada, porque isso normalmente faz com que o próximo BugCheck crie uma pasta com a segurança correta
rmdir /s /q %SystemRoot%\Minidump

No entanto, um BugCheck não cria uma pasta com o nome% SystemRoot% \ Minidump. Mas criar a pasta de minidespejo manualmente com o comando mkdir abaixo não causa um BugCheck para salvar um minidump

mkdir %SystemRoot%\Minidump

último minidump

O último 41 evento para o qual há um minidump é

wevtutil qe system /q:*[System[EventID=41]] /rd:true /f:text /c:6
Event[5]:
  Date: 2012-12-03T06:21:37.590

dir %systemroot%\minidump /o:-d | head -8 | tail -1
2012-12-03  06:21           322▒616 120312-37830-01.dmp

Sistema

meu sistema é

Operating System
    Windows 7 Ultimate 64-bit SP1
CPU
    Intel Core i7 3770K @ 3.50GHz   49 °C
    Ivy Bridge 22nm Technology
RAM
    32,0GB Dual-Channel DDR3 @ 668MHz (9-9-9-24)
Motherboard
    ASUSTeK COMPUTER INC. P8Z77-M PRO (LGA1155) 36 °C
Graphics
    DELL U2312HM (1920x1080@60Hz)
    BenQG2222HDL (1920x1080@60Hz)
    Intel HD Graphics 4000 (ASUStek Computer Inc)
    1024MB ATI AMD Radeon HD 6800 Series (XFX Pine Group)   79 °C
Hard Drives
    112GB OCZ-VERTEX2 ATA Device (SSD)  30 °C
Optical Drives
    QBCNK MRSHA3S5 SCSI CdRom Device
Audio
    Corsair Vengeance 2000 Headset

O espaço c disponível em disco é

fsutil volume diskfree c:
Total # of free bytes        : 19957088256
Total # of bytes             : 119926681600
Total # of avail free bytes  : 19957088256
    
por John Peterson 04.04.2015 / 18:07

1 resposta

4

Resposta

Altere o tamanho de pagefile.sys para ≥ tamanho de RAM

A solução é alterar o tamanho do pagefile.sys para ≥ tamanho da RAM

wmic computersystem where name="%computername%" set automaticmanagedpagefile=true

wmic pagefile list /format:list
AllocatedBaseSize=32635
CurrentUsage=0
PeakUsage=0

dir /ah c:\pagefile.sys
2013-10-06  14:29    34 220 941 312 pagefile.sys

Depois disso, um minidump é salvo mesmo depois de alterar o arquivo de paginação para um tamanho menor que o maior tamanho de arquivo de paginação (4000) usado na pergunta

wmic pagefileset where name="c:\pagefile.sys" set initialsize=10000,maximumsize=10000
wmic pagefileset where name="c:\pagefile.sys" set initialsize=5000,maximumsize=5000
wmic pagefileset where name="c:\pagefile.sys" set initialsize=4000,maximumsize=4000
wmic pagefileset where name="c:\pagefile.sys" set initialsize=3000,maximumsize=3000
wmic pagefileset where name="c:\pagefile.sys" set initialsize=2000,maximumsize=2000

Aumenta c: espaço em disco para ≥ tamanho RAM

E / ou a solução é alterar o espaço c: disk livre para o tamanho ≥ RAM (e definir o tamanho do arquivo de paginação para pelo menos 2000) porque

  • não é possível determinar qual alteração resolveu o problema (descrita em "Problema resolvido após alterar o tamanho do disco ou o tamanho do arquivo de paginação")

Problema resolvido após alterar o tamanho do disco ou o tamanho do arquivo de paginação

O problema foi resolvido depois

  • alterando o tamanho do arquivo de paginação para > Tamanho da RAM

  • e / ou alterando o espaço livre em disco c: para ≥ tamanho RAM

Depois disso, notou-se que reduzir o tamanho do arquivo de paginação de 32 G (automaticmanagedpagefile = true) para 2 G (maximumsize = 2000) não retornou o problema

Não é possível determinar qual alteração resolveu o problema porque

  • o problema foi resolvido depois de alterar o espaço livre em disco e o tamanho do arquivo de paginação para > Tamanho da RAM (32 G)

  • um BugCheck deveria ter salvado um minidump quando o tamanho do arquivo de paginação era 4G (maximumsize = 4000) na questão, porque depois que um BugCheck começava a salvar minidumps novamente ele continuava salvando-os depois que o tamanho do arquivo de paginação era reduzido abaixo de 4G ( maximumsize = 2000)

Sistema

A diferença do sistema (saída Speccy) em relação ao tópico "Sistema" na pergunta é

Hard Drives
    233GB Samsung SSD 840 EVO 250GB ATA Device (SSD)    34 °C

Espaço em disco

O espaço c disponível em disco é

fsutil volume diskfree c:
Total # of free bytes        : 82576859136
Total # of bytes             : 249844199424
Total # of avail free bytes  : 82576859136

Tamanho do arquivo de paginação e minidespejo

O tamanho do arquivo de paginação para o qual um BugCheck cria um minidespejo, conforme descrito nesta saída

wmic computersystem where name="%computername%" set automaticmanagedpagefile=true

dir %systemroot%\minidump /o:-d | head -9 | tail -2
2013-10-06  14:29           324▒949 100613-14570-01.dmp
2012-12-03  07:21           322▒616 120312-37830-01.dmp

wmic pagefileset where name="c:\pagefile.sys" set initialsize=10000,maximumsize=10000

dir %systemroot%\minidump /o:-d | head -9 | tail -2
2013-10-11  18:46           324▒045 101113-13587-01.dmp
2013-10-06  14:29           324▒949 100613-14570-01.dmp

wmic pagefileset where name="c:\pagefile.sys" set initialsize=5000,maximumsize=5000

dir %systemroot%\minidump /o:-d | head -9 | tail -2
2014-01-05  04:50           325▒061 010514-12417-01.dmp
2013-10-11  17:46           324▒045 101113-13587-01.dmp

wmic pagefileset where name="c:\pagefile.sys" set initialsize=4000,maximumsize=4000

dir %systemroot%\minidump /o:-d | head -9 | tail -2
2014-01-23  03:45           323▒205 012314-11481-01.dmp
2014-01-05  04:50           325▒061 010514-12417-01.dmp

wmic pagefileset where name="c:\pagefile.sys" set initialsize=3000,maximumsize=3000

dir %systemroot%\minidump /o:-d | head -9 | tail -2
2014-02-15  02:12           323▒013 021514-10873-01.dmp
2014-01-23  03:45           323▒205 012314-11481-01.dmp

Problema não resolvido

Esses problemas permanecem sem solução mesmo depois de aplicar a solução descrita no tópico "Resposta"

O mínimo de pagefile.sys para o minidump não é descrito

A Microsoft não descreveu claramente o tamanho mínimo de pagefile.sys para o qual o Windows salva um minidump quando a RAM é de 32 GB

Mensagem da tela do BugCheck enganosa

Microsoft enganar o usuário, escrevendo "Dump memória física completa". na tela do BugCheck também quando um minidump não é salvo

A recomendação da Samsung Magician não indica que isso pode fazer com que o Windows não salve um minidump

A Samsung não indica que a recomendação de tamanho de pagefile.sys em "GERENCIAMENTO DE SISTEMA> Otimização de SO" no Samsung Magician 4.2.1 pode fazer com que um BugCheck não salve um minidump

A recomendação do Samsung Magician 4.2.1 "GERENCIAMENTO DE SISTEMA & Otimização do SO" é

Maximum Capacity and Maximum Reliability

Virtual Memory

Virtual memory will be set to an initial size of 200 MB and a maximum of 1 GB.


Advanced

Manually set virtual memory in Windows Performance Options. If your PC has more than 4 GB of RAM, Samsung recommends you initially set virtual memory to 200 MB with a maximum of 2 GB. Use the shortcut to the right to adjsut settings.

i.o.w. a recomendação "Avançada" é

wmic pagefileset where name="c:\pagefile.sys" set initialsize=200,maximumsize=2000

Recomendação

Descreva o tamanho mínimo de pagefile.sys

A Microsoft deve descrever o tamanho mínimo de c: \ pagefile.sys para o qual o BugCheck salva um minidump porque

  • quando o tamanho da RAM é de 32 GB de RAM, a saída "PeakUsage" de "lista / formato de arquivo de páginas wmic: list" é, às vezes, 0. I.o.w. o utilitário de pagefile.sys é 0

  • O SSD de 32 GB tem um custo superior a 0 (cerca de € 15)

Altere o Windows para que um BugCheck salve um minidump quando o pagefile.sys é pequeno

A Microsoft deve alterar o Windows para que ele salve um minidump quando c: \ pagefile.sys for pequeno (por exemplo, 0,2 GB) porque

  • o motivo na recomendação anterior
  • um minidump tem um utilitário (identificando um driver que causa um BugCheck). I.o.w. O BugCheck deve sempre criá-lo
por 19.02.2014 / 20:24