MemTest86 +가 아닌 Ubuntu의 메모리 오류


8

btrfs와 ext4 오류가 발생했습니다. 내 RAM을 테스트하기로 결정한 후 다음과 같은 반복 오류가 발생했습니다 memtester. 나는 약간의 실행 후 항상 비슷한 오류가 발생합니다 memtester. 보통 1 시간이 걸리지 만 한 번에 4-5 시간이 걸렸습니다.

내 컴퓨터의 RAM이 납땜되었습니다. 빈 슬롯이 추가되었습니다. 온보드 RAM을 비활성화하기위한 BIOS 설정이 없습니다.

나는 달렸다.

  • 8 회 패스 (~ 8 시간) 동안 Memtest86 +
  • 18 패스 (~ 9 시간) 동안 MemTest86
  • memtester그리고 stressapptest페도라 27 기본에, USB 스틱에 설치 (10 ~ 시간)
  • memtester그리고 stressapptest우분투 17.10 라이브 기본에 (~ 2 시간)
  • memtester그리고 stressapptestUSB 스틱에 우분투 17.10에 (~ 8시간)
  • # debsums --changed 유일하게 변경된 파일은 테마의 이미지였습니다.

그들은 오류를 인쇄하지 않았습니다.

기본 커널과 함께 우분투 17.10 (17.04에서 업그레이드 됨)을 사용하고 있습니다. 커널이 오염되지 않았습니다. Intel Haswell i3가 장착 된 ASUS 노트북입니다.

  • 또한 Linux 4.14.13 및 4.15.0-rc3, rc4, 메인 라인에서 테스트되었습니다.
  • 또한 퍼지 된 인텔-마이크로 코드 패키지로 테스트되었습니다.

Nouveau가 비활성화되어 있거나 삭제되어 nvidia 바이너리 드라이버가로드되지 않았습니다.

다음 모듈을 블랙리스트에 올렸습니다 mtd intel_spi_platform intel_spi. 기본 Fedora 27 설치시로드되지 않고 일부 Lenova 랩톱 을 사용하지 않는 것 같습니다 . 오류가 중지되지 않았습니다.

uname -a의 출력

Linux hostname 4.13.0-19-generic #22-Ubuntu SMP Mon Dec 4 11:58:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

# lsmod의 출력

https://paste.ubuntu.com/26222245/

Fedora 27의 # lsmod출력

https://paste.ubuntu.com/26226473/

현재 상황

나는 잘 알려진 것으로 알려진 랩탑 (백업 랩탑)에 HDD를 넣고 테스트를 수행했습니다. 오류가 발생했습니다. 이제 이것이 소프트웨어 문제라고 확신합니다. 나는 신선한 우분투 나 페도라로 여러 시간 동안 랩톱에서 오류를 유발할 수 없었습니다.

어떻게해야합니까?

오류 샘플 :

Loop 6:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : ok         
  Bit Flip            : testing 262
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94000.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94008.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94010.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94018.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94020.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94028.
FAILURE: 0x00000000 != 0xfffffffeffffffff at offset 0x0ef94030.
FAILURE: 0x00000000 != 0x100000000 at offset 0x0ef94038.
  Walking Ones        : ok         
  Walking Zeroes      : ok         
  8-bit Writes        : ok
  16-bit Writes       : ok

두 RAM 슬롯의 비슷한 오류가 가득 찼습니다.

Loop 1:
  Stuck Address       : ok         
  Random Value        : ok
  Compare XOR         : ok
  Compare SUB         : ok
  Compare MUL         : ok
  Compare DIV         : ok
  Compare OR          : ok
  Compare AND         : ok
  Sequential Increment: ok
  Solid Bits          : ok         
  Block Sequential    : ok         
  Checkerboard        : ok         
  Bit Spread          : testing   4
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80000.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80008.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80010.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80018.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80020.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80028.
FAILURE: 0x00000000 != 0x00000050 at offset 0x7da80030.
FAILURE: 0x00000000 != 0xffffffffffffffaf at offset 0x7da80038.
  Bit Flip            : setting 141

오류 stressapptest:

Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e000(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e008(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e010(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e018(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e020(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e028(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e030(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a
Report Error: miscompare : DIMM Unknown : 1 : 157s
Hardware Error: miscompare on CPU 2(0x2) at 0x7fcc0726e038(0xb0d18:DIMM Unknown): read:0x0000000000000000, reread:0x0000000000000000 expected:0x4a4a4a4a4a4a4a4a

내 노트북의 하드웨어와 결합 된 Ubuntu의 구성이 이러한 오류에 대한 책임이 있다고 생각합니다. 거의 항상 8 팩.

중요하지 않고 느슨하게 관련된 정보

btrfs 오류 정보 17.04를 사용하고있었습니다. 나는 btrfs의 irc에서 물었다. 하드웨어 오류이거나 메모리 관리 오류 일 수 있다고 들었습니다. 내가 경험했던 것처럼 btrfs의 메타 데이터 페이지의 일부가 0으로 채워졌습니다. 나는 단지 몇 번의 패스로 memtester를 실행하고 ext4로 전환하여 nvidia 바이너리 드라이버를 비난했습니다.

내가 사용하는 명령과 매개 변수 :

# stressapptest -M 10000 -s 1800

10000은 테스트 할 수있는 사용 가능한 메모리입니다. 를 통해 나는 그것을 얻을 free -m-s`는 초입니다.

# memtester 4096

랩톱의 CPU에는 2 개의 코어가 있으므로 보통 두 개의 인스턴스를 시작합니다. 4096은 현재 사용 가능한 메모리의 절반입니다.free -m


1
불량 RAM을 교체하지만 납땜 RAM 칩으로 가능한지 알 수 없습니다. 보증 기간 내에 컴퓨터를 교체 할 수있을 정도로 새 컴퓨터입니까?
sudodus

@sudodus 예, 보증 기간이 아직 만료되지 않았습니다. 솔루션을 찾을 수 없으면 RMA를 사용하겠습니다. 공식적인 방법은 없지만 테스트 포인트를 뛰어 넘어 일부 랩톱에서 납땜 램을 비활성화하는 방법을 찾았습니다.
Artyom

더 확실하게 memtest86+Ubuntu 설치 LiveCD에서 시도하십시오 .
N0rbert

@ N0rbert 나는 부정적 인 결과를 가진 memtest86으로 시험을했습니다. 그러나 그들은 -4 reps- 짧았다, 나는 오늘 밤 하룻밤 시험을 할 것이다.
Artyom

2
@ sudodus, memtest86 +는 자체 메모리를 테스트 할 수 있다고 생각하지만 그렇게 큰 문제는 아닙니다. 예 메모리 관련 오류로 인해 아마 ext4 파티션을 몇 차례 수리했습니다. 불행히도 디스크에 기록되기 전에 어떻게 든 메타 데이터가 손상되어 내 btrfs 파티션이 btrfs scrub으로 확산되어 일부가 손상되어 btrfs 파티션을 복구 할 수 없었습니다.
Artyom

답변:


1

삭제 된 답변이 가깝습니다

이 Q & A에 대한 답변이 삭제되었습니다.

OS 레벨 메모리 관리 실패로 들리기 때문에 이미 우분투를 다시 설치하려고 했습니까?

저의 대답은 매우 낮은 수준의 메모리 관리와 관련이 있습니다. 커널 수준의 KASLR

KASLR의 기능

KASLR는 의미 K ernel ddress S 페이스 L ayout R의 andomization. 나는 그것이 큰 소리로 들리는 것을 들어 본 적이 없지만 내 마음에 "Casler"라고 발음합니다. 기계에서 친절한 유령을 생각하십시오. KASLR은 커널 모듈이 상주하는 메모리 위치를 무작위 화하기위한 보안 조치입니다. 이론은 커널이 항상 동일한 메모리 스팟에있는 동일한 비트에 의존 할 수 없을 때 해킹하기가 더 어렵다는 것입니다.

KASLR 작동은 변경이 없을 것으로 예상되는 동일한 메모리 위치에서 반복적으로 읽고 쓰는 메모리 테스터와 반대되는 것으로 간주 될 수 있습니다. KASLR 및 메모리 오류에 대한 Google 검색을 수행하는 것은 반대입니다. 특히 관련이없는 것으로 보이는 사람은 이 Q & A에 연결하는 github에 대한 메시지를받을 자격이 있습니다 . 그들이 메모리 주소를 변경함으로써 영향을받는 유일한 이유라고 생각하는 이유는 (스레드를 올바르게 읽는 경우). 처음 3 개의 조회수는 RedHat 에서 링크 한 것을 싫어합니다. 그들의 웹 사이트는 Google 검색 로봇에 액세스 할 수있는 부분 게시물이기 때문입니다.

KASLR이 커널 "재료"를 메모리 맵의 중간에로드하지 않을 때 알려진 문제가 있습니다. 불행히도 나는 지난주에 오늘 밤의 답변에 포함시킬 링크를 기억할 수 없습니다. 이 링크에는 KASLR이 특정 메모리 위치를 사용하지 않도록 지시하는 패치 / 해결 방법이있었습니다.

KASLR 및 메모리 위치에 대한 알려진 문제를 확인한 후 KASLR을 비활성화하고 메모리 테스트를 다시 실행하라는 질문에 댓글을 달았습니다. 답글에 성공했다고 표시되어이 답변을 게시하고 있습니다.

KASLR을 비활성화하는 방법

몇 년 동안 grub 커널 명령 행 옵션 "kaslr"을 사용해 왔지만, 최소 버전 4.12 이후로 커널 기본값이되었습니다 . KASLR이로드되지 않도록하려면 /etc/default/grub다음 줄을 편집 하고 변경하십시오.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

"quiet"및 "splash"이외의 다른 옵션이있을 수 있습니다. 중요한 단계는 "nokaslr"을 추가하고 다른 옵션은 그대로 두는 것입니다.

그런 다음 파일을 저장하고 다음을 실행하십시오.

sudo update-grub

물론 KASLR을 비활성화하는 또 다른 방법은 KASLR이 자동으로 포함되지 않은 우분투 16.04.1에서 4.4.0과 같은 오래된 커널을 사용하는 것입니다.


0

이 문제는 RAM의 무작위 비트 손상처럼 들립니다. 내 경험상 MemTest86은 하드웨어에 대한 "너무 쉬운"테스트입니다. 정말 나쁜 기억을 찾을 수 있지만 약간의 문제는 종종 눈에 띄지 않을 것입니다.

메모리가 양호한 지 알고 싶다면 가능한 많은 RAM을 사용하도록 구성된 자체 테스트 / 고문 모드에서 Prime95 를 실행 하십시오.

또 다른 좋은 테스트는 몇 시간 동안 양면 rowhammer 테스트를 실행하는 것입니다.

Prime95와 양면 Rowhammer가 메모리 관련 문제를 찾을 수 없으면 올바르게 작동한다는 것을 믿습니다. 그러나 단순히 MemTest86을 실행하고, 프로그램을 컴파일하고, OS를 설치하고, 게임을하는 것은 메모리가 약간 나쁜 경우에도 작동하는 것처럼 보일 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.