PFA(예측 오류 분석) 메모리 목록을 관리하는 방법
PFA(예측 오류 분석)에서 현재 PFA 레지스트리 설정에 따라 ECC(오류 수정 코드) 메모리 페이지가 실패할 가능성이 있다고 예측할 때마다 PFA는 메모리 페이지의 PFN(페이지 프레임 번호)을저장합니다(또는
Windows 버전 19042부터 잘못된 메모리 페이지가 HKLM\SYSTEM\CurrentControlSet\Control\WHEA\BadPages
레지스트리에 저장됩니다.
이전 버전의 Windows에서는 이 정보가 BCD(부팅 구성 데이터) 시스템 저장소에 저장됩니다.
이 목록에는 PFA가 실패할 가능성이 있다고 예측한 모든 메모리 페이지에 대한 PFN이 포함되어 있습니다. Windows가 시작되면 시스템 사용에서 이러한 메모리 페이지를 제외합니다.
메모
실제 메모리 PFN을 특정 실제 메모리 모듈에 매핑하기 위한 업계 표준은 없습니다. 따라서 WHEA는 실패하는 메모리 모듈에 대한 정보를 제공할 수 없습니다.
실패한 시스템 메모리를 교체할 때 시스템 관리자는 레지스트리를 업데이트하거나 BCDEdit 명령줄 도구를 사용하여 이 목록을 수동으로 지워야 합니다. 목록이 지워지지 않으면 실패한 메모리 모듈이 교체된 경우에도 Windows는 목록에서 메모리 페이지를 계속 제외합니다.
이 페이지에서는 잘못된 메모리 목록에서 페이지 프레임 번호를 보고 지우는 방법을 설명합니다. 다음 단계를 수행하려면 관리자 권한 명령 프롬프트가 필요합니다.
- 시작을 선택하고, 모든 프로그램을 가리킨 다음, 보조 프로그램을 선택합니다.
명령 프롬프트 마우스 오른쪽 단추로 선택하고 관리자 권한으로 실행선택합니다. - 사용자 계정 컨트롤 대화 상자가 표시되면 대화 상자에서 예 선택합니다.
레지스트리에서 PFN(페이지 프레임 번호) 보기
시스템 레지스트리에서 현재 PFN 목록을 보려면 관리자 권한 명령 프롬프트에서 다음 명령을 실행합니다.
reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
ECC 메모리 페이지가 실패할 것으로 예측되지 않으면 다음 예제와 같이 reg 명령의 출력이 표시됩니다.
C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
ERROR: The system was unable to find the specified registry key or value.
ECC 메모리 페이지가 실패할 것으로 예측되면, BadPages 레지스트리 키에는 다음 예와 같이 페이지를 캡슐화하는 이진 블롭이 포함됩니다.
C:\Windows\system32>reg query "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WHEA
BadPages REG_BINARY 000000000000000058140280000000005C1B0280000000007C30038000000000E2BBFC8000000000AF52188000F00F00
PowerShell을 사용하여 레지스트리 데이터를 구문 분석하고 다음 스크립트를 사용하여 목록을 출력할 수 있습니다.
$whea = Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\WHEA"
$pages = $whea.BadPages
$idx = 0
while($idx -le $pages.Count) {
$slice = $pages[$idx..($idx+7)]
[array]::Reverse($slice)
$page = (($slice | foreach { $_.ToString("X2") }) -join "")
Write-Output $page
$idx = $idx + 8
}
레지스트리에서 PFN을 삭제하기
BCD 시스템 저장소에서 PFN 목록을 지우려면 다음 명령을 사용합니다.
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\WHEA" /v BadPages
레지스트리를 잘못 변경하면 Windows가 시작되지 않을 수 있습니다. 따라서 Windows를 다시 시작하기 전에 명령 및 결과를 신중하게 검토해야 합니다.
BCD 시스템 저장소에서 현재 PFN 목록 보기
BCDEdit 명령줄 도구를 사용하여 BCD 시스템 저장소에 저장된 메모리 페이지 목록을 보고 삭제할 수 있습니다. 사용할 수 있는 옵션 목록은 BCDEdit Command-Line 옵션 참조하세요.
BCDEdit 도구를 사용하려면 컴퓨터의 Administrators 그룹의 구성원이어야 합니다.
관리자 권한 명령 프롬프트에서 다음 명령을 입력하십시오.
C:\Windows\system32>bcdedit /enum {badmemory}
ECC 메모리 페이지가 실패할 것으로 예측되지 않으면 BCDEdit 도구의 출력이 다음 예제와 같이 표시됩니다.
C:\Windows\system32>bcdedit /enum {badmemory}
RAM Defects
-----------
identifier {badmemory}
ECC 메모리 페이지가 손상될 것으로 예상되면 {badmemory} 객체에 badmemorylist 값이 포함됩니다. 이 값은 다음 예제와 같이 PFA가 실패할 것으로 예상하는 메모리 페이지의 PFN 목록을 포함합니다.
C:\Windows\system32>bcdedit /enum {badmemory}
RAM Defects
-----------
identifier {badmemory}
badmemorylist 0xffe38
0x100f
BCD 시스템 저장소에서 현재 PFN 목록 지우기
BCD 시스템 저장소에서 PFN 목록을 지우려면 다음 명령을 실행합니다.
C:\Windows\system32>bcdedit /deletevalue {badmemory} badmemorylist
메모
BCD 시스템 저장소를 잘못 변경하면 Windows가 시작되지 않습니다. 따라서 Windows를 다시 시작하기 전에 명령 및 결과를 신중하게 검토해야 합니다.