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 형식을 직접 출력 할 수 있습니다.
-
‘c’를 눌러 구성 대화 상자로 이동하십시오.
-
“오류보고 모드”에 대해 ‘4’
-
“BadRAM 패턴”에 대해 ‘3’
출력은 개별 테스트 실패 목록에서 각각 하나 이상의 새로운 불량 섹터를 포함하는 일련의 badram = 행으로 변경됩니다. 라인이 인접한 세그먼트를 추가하고 병합하기 때문에 테스트를 밤새 헤드리스로 실행하고 최종 인쇄 라인을 사용할 수 있습니다 (실제로 어둡기 때문에 “이 지점 주변의 5 메가”형식은 상당히 짧을 수 있습니다) ).
최종 결과: