컴퓨터에 두 개의 메모리 칩이 있는 경우 우분투에 메모리 칩을 하나만 사용하도록 지시할 수 있습니까?

컴퓨터에 두 개의 메모리 칩이 있는 경우 우분투에 메모리 칩을 하나만 사용하도록 지시할 수 있습니까?

제목대로.

새 RAM 칩을 구입한 이후로 내 컴퓨터에 이상한 문제가 생겼고 이로 인해 RAM 칩이 문제인지 궁금해졌습니다.

이를 테스트하기 위해 하나의 칩만 사용하고 다른 칩도 사용하도록 우분투를 구성하고 싶습니다. 복잡한 절차(모든 프로세스가 다른 칩에 상주하도록 사용하지 않는 칩의 모든 메모리를 수동으로 할당하는 것 등)를 수행하는 것은 괜찮지만 위험한 절차는 시도해도 괜찮습니다.

가장 간단한 해결책은 컴퓨터를 열고 칩을 물리적으로 제거하는 것일 수 있지만 가능하면 그렇게 하지 않는 것이 좋습니다(기계를 열고 닫는 데 손상/어려움이 발생할 수 있으므로).

우분투에서 특정 메모리 주소를 사용하지 않도록 어떻게 지시합니까?부분적인 솔루션을 제공합니다. 피해야 할 주소가 있으면 끌 수 있습니다. 하지만 여전히 어떤 칩에 어떤 주소가 있는지 알아야 합니다.

답변1

멤테스트

먼저 다음으로 이동하세요.https://www.memtest86.com/무료로 다운로드/실행하여 memtest메모리를 테스트해보세요. 좋은 기억력을 확인하려면 모든 4/4 테스트를 최소 한 번 이상 완료하세요. 이 작업을 완료하는 데 몇 시간이 걸릴 수 있습니다.

나는 그것이 memtest실패할 것이라고 생각한다. 새 SODIMM/DIMM을 제거하고 다시 실행하세요 memtest. 통과하는 경우 전달된 SODIMM/DIMM을 제거하고 다른 SODIMM/DIMM만 다시 삽입한 후 다시 실행하세요 memtest.

바드람

보다손상된 셀이 있는 납땜 RAM 모듈이 있는 노트북에 Ubuntu를 설치하는 방법

를 살펴보면 잘못된 메모리 위치가 무엇인지 식별할 수 있는 매개변수를 /etc/default/grub찾을 수 있습니다 .GRUB_BADRAM=

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

원천:https://help.ubuntu.com/community/BadRAM#BADRAM_setting_in_Grub2

Grub2의 BADRAM 설정

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:

낮은 메모리에 메모리 오류가 표시되지 않으면 "mem=##MB" 커널 옵션을 추가하여 해당 지점 이상의 메모리를 일시적으로 비활성화할 수 있습니다. 예: 에 따르면 memtest86내 메모리 스틱에 315MB에서 325MB 사이의 오류가 있습니다. "mem=314MB"를 추가함으로써 커널에 314MB만 있는 것처럼 가정하도록 지시합니다. 내 시스템은 패치를 빌드할 수 있을 만큼 충분히 안정적일 것이며, 이 시점에서 315MB에서 325MB 사이의 섹션만 건너뛰도록 매개변수를 전달할 수 있습니다(이것은 나에게 502MB의 사용 가능한 메모리를 제공합니다).

: Ubuntu Live를 부팅하고 GRUB 메뉴에서 e편집 모드로 들어가고 화살표 키를 사용하여 "quiet Splash"를 찾은 다음 "quiet Splash mem=2048MB"로 변경하거나 CTRL+ x또는 F10부팅을 계속합니다.

관련 정보