[unix] MemTest86 + 오류 표시에 따라 올바른 불량 RAM 섹터를 블랙리스트에 올리는 방법?

MemTest86 + (Ubuntu 13.04에 포함 된 버전)에 따르면

Failing address: 002f796c48 -    759.5 MB

memmap이 영역을 우회하기 위해 커널 매개 변수 에서 무엇을 지정해야 합니까?

나는 달리기를 시도했지만 memtester 770MB모든 것이 정상이라고 말하면서 MemTest의 표시가 처음부터 759.5MB의 오류를 의미하는 것으로 보이지 않습니다.

이 MemTest 표시를 해석하여 구성하는 방법은 memmap무엇입니까?

새 RAM을 구입할 돈이 없으며 오류가 단일 한 것처럼 보이므로 무시할 수 있기를 바랍니다.



답변

mm

이 튜토리얼이 있습니다 : Bad Memory HowTo . 커널에 대한 memmap인수를 사용하여 커널을 통한 메모리 비활성화에 대해 설명 합니다. 하우투에 따르면 두 가지 옵션이 있습니다 memmap.

  • 나쁜 기억 후에 모든 것을 끄십시오- (mem=###M option)
  • 불량 메모리 주변의 메모리 만 끄십시오. (memmap=#M$###M option)

첫 번째 옵션으로 memtest가 600M에 불량 메모리가 있다고보고하면 다음과 같이 RAM 끝까지 RAM을 비활성화 할 수 있습니다.

 mem=595M

802M 및 807M에 불량 RAM이있는 경우 다음과 같이 800M에서 시작하여 10M RAM 섹션을 비활성화 할 수 있습니다.

memmap=10M$800M

참고 : 800M 기본 주소 다음에 10M이 블랙리스트에 추가됩니다. memtest86+이 인수가 올바른지 확인한 후에 실행해야 합니다.

BadRAM

우분투에는 BadRam이라는 패치가 있습니다. 우분투 커뮤니티 사이트의 BadRAM 이라는 제목의이 게시물에서 잘 다루고 있습니다.

해당 페이지의 세부 정보를 사용하여 커널에 패치를 적용한 후 Grub2 설정을 수정합니다.

해당 사이트에서 Grub2에 대한 발췌

Natty의 GRUB2 설정 파일에는 커널 불량 램 제외를 구성하는 줄이 있습니다. 따라서 오류를 표시하는 메모리 섹션을 매핑하는 기본 방법이라고 가정하겠습니다. 내가 설정 한 선은

GRUB_BADRAM = “0x7DDF0000,0xffffc000”

내가 찾은 모든 웹 사이트에서 제안 된 방법은 memtest86을 실행하고 BadRAM 설정을 표시하도록 설정하는 것이 었습니다. memtest86은 내가 입력해야 할 페이지를 주었다. 모든 주소가 하나의 16K 블록에 있다는 것을 알 수 있었기 때문에 16K 블록을 동작에서 제외하고 싶었습니다. 올바른 항목을 생성 한 방법은 다음과 같습니다.

첫 번째 매개 변수는 쉽습니다. 이것이 불량 메모리의 기본 주소입니다. 필자의 경우 모든 잘못된 주소가 0x7DDF0000보다 크고 0x7DDF4000보다 작은 것을 알 수 있습니다. 그래서 16K 블록의 시작 부분을 시작 주소로 사용했습니다.

두 번째 매개 변수는 마스크입니다. 원하는 주소 범위에 1을 넣고 같은 값을 공유하고 0에 값을 변경합니다. 즉, 하위 비트 만 변경되도록 주소 범위를 선택해야합니다. 내 주소를 보면 마스크의 첫 부분이 쉽습니다. 0xffff로 시작하고 싶습니다. 다음 니블을 위해 비트 맵으로 설명하겠습니다. 0000에서 0011 사이의 범위를 원합니다. 따라서 badram의 마스크는 1100 또는 16 진수 c입니다. 전체 범위가 매핑되기를 원하므로 마스크에서 마지막 3 개의 니블은 모두 0이어야합니다. 따라서 총 결과는 0xffffc000입니다.

/ etc / default / grub에서이 줄을 설정 한 후 sudo update-grub을 실행하고 재부팅하여 불량 메모리를 더 이상 사용하지 않았습니다. 이 방법을 사용하여 불량 메모리를 매핑하는 데 커널 패치가 필요하지 않습니다.

후속 조치 # 1

memtest86 +에 대한 wikipedia 페이지를 살펴보면 다음과 같이 표시됩니다.

Memtest86 위키 백과 페이지 에서 발췌

Memtest86 2.3 및 Memtest86 + 1.60부터 프로그램은 Linux 커널 용 BadRAM 패치가 예상하는 형식으로 불량 RAM 영역 목록을 출력 할 수 있습니다. 이 정보를 사용하면 Linux 시스템은 불량 비트가 몇 개 있더라도 RAM 모듈을 안정적으로 사용할 수 있습니다. Grub2는 패치가없는 커널에 동일한 정보를 제공 할 수 있으므로 BadRAM 패치가 필요 없습니다.

또한 16 진수 주소를 사용 하여이 젠투 페이지보았memmap=... 으므로 다음과 같이 지정할 수 있습니다.

memmap=5M$0x2f796c48

5M은 추측에 불과합니다. 분명히 그 지역 주변에서 얼마나 많은 RAM을 생략하고 싶은지에 따라 더 낮게 또는 더 크게 조정할 수 있습니다.

마지막으로 크기를 16 진수로 지정할 수도 있습니다.

memmap=0x10000$0x2f796c48

주소 0x2f796c48에서 64KB가 시작되는 것을 무시합니다.

참고 문헌


답변

Memtest86 + (4.20을 사용함)는 badram 형식을 직접 출력 할 수 있습니다.

  1. ‘c’를 눌러 구성 대화 상자로 이동하십시오.
    memtest 구성 대화

  2. “오류보고 모드”에 대해 ‘4’

    memtest 오류 보고서 모드 대화

  3. “BadRAM 패턴”에 대해 ‘3’

출력은 개별 테스트 실패 목록에서 각각 하나 이상의 새로운 불량 섹터를 포함하는 일련의 badram = 행으로 변경됩니다. 라인이 인접한 세그먼트를 추가하고 병합하기 때문에 테스트를 밤새 헤드리스로 실행하고 최종 인쇄 라인을 사용할 수 있습니다 (실제로 어둡기 때문에 “이 지점 주변의 5 메가”형식은 상당히 짧을 수 있습니다) ).

최종 결과:

Badram 출력을 보여주는 Memtest86 +


답변