ข้อผิดพลาดของหน่วยความจำกับ Ubuntu แต่ไม่ใช่กับ MemTest86 +


8

ฉันได้รับข้อผิดพลาด btrfs และ ext4 หลังจากตัดสินใจที่จะทดสอบ RAM memtesterของฉันฉันมีข้อผิดพลาดต่อไปนี้ซ้ำกับ memtesterฉันมักจะได้รับข้อผิดพลาดเดียวกันหลังจากบิตของการทำงาน โดยปกติแล้วในหนึ่งชั่วโมง แต่ใช้เวลา 4-5 ชั่วโมงในครั้งเดียว

RAM ในคอมพิวเตอร์ของฉันถูกบัดกรี ฉันได้ช่องว่างเพิ่มเติม ไม่มีการตั้งค่าใน BIOS เพื่อปิดการใช้งาน RAM ในตัว

ฉันเคยวิ่ง:

  • Memtest86 + สำหรับ 8 รอบ (~ 8 ชั่วโมง)
  • MemTest86 นาน 18 รอบ (ประมาณ 9 ชั่วโมง)
  • memtesterและstressapptestตามค่าเริ่มต้นของ Fedora 27 ติดตั้งบนแท่ง USB (~ 10 ชั่วโมง)
  • memtesterและstressapptestใน Ubuntu 17.10 ค่าเริ่มต้นสด (ประมาณ 2 ชั่วโมง)
  • memtesterและstressapptestใน Ubuntu 17.10 สำหรับอุปกรณ์ USB (ประมาณ 8 ชั่วโมง)
  • # debsums --changed ไฟล์ที่เปลี่ยนแปลงอย่างเดียวคือรูปภาพของธีม

พวกเขาไม่ได้พิมพ์ข้อผิดพลาดใด ๆ

ฉันใช้ Ubuntu 17.10 (อัพเกรดจาก 17.04) ด้วยเคอร์เนลเริ่มต้น เคอร์เนลไม่เสีย เป็นแล็ปท็อป ASUS ที่มี Intel Haswell i3

  • ทดสอบด้วย Linux 4.14.13 และ 4.15.0-rc3, rc4, mainline
  • ทดสอบด้วยแพ็คเกจ Intel-microcode

ข้อผิดพลาดสามารถทำซ้ำได้ทั้ง 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/

# lsmodผลผลิตของ Fedora 27

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

สถานการณ์ปัจจุบัน

ฉันใส่ HDD ลงในแล็ปท็อป (แล็ปท็อปสำรอง) ที่ฉันรู้จักดีและทำการทดสอบที่นั่น ฉันได้รับข้อผิดพลาด ตอนนี้ฉันค่อนข้างมั่นใจว่านี่เป็นปัญหาซอฟต์แวร์ ฉันไม่เคยเรียกใช้ข้อผิดพลาดบนแล็ปท็อปของฉันด้วย Ubuntu ใหม่หรือ Fedora ที่พยายามหลายชั่วโมง

ฉันควรทำอย่างไรดี?

ตัวอย่างข้อผิดพลาด:

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

ข้อผิดพลาดที่คล้ายกันกับสล็อตแรมทั้งสองเต็ม:

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 รวมกับฮาร์ดแวร์แล็ปท็อปของฉันคือการตำหนิเกี่ยวกับข้อผิดพลาดเหล่านี้ เกือบทุกครั้งในชุดที่แปด

ข้อมูลที่ไม่เกี่ยวข้องที่สำคัญไม่สำคัญด้านล่าง

เกี่ยวกับข้อผิดพลาด btrfs; ฉันใช้ 17.04 ฉันถามไปรอบ ๆ ใน btrfs 'irc ฉันได้รับแจ้งว่าอาจเป็นข้อผิดพลาดของฮาร์ดแวร์หรือข้อผิดพลาดการจัดการหน่วยความจำอย่างใด ส่วนหนึ่งของหน้าข้อมูลเมตาของ btrfs เต็มไปด้วยศูนย์เช่นเดียวกับที่ฉันได้รับในขณะนี้ ฉันวิ่ง memtester เพียงไม่กี่รอบเปลี่ยนเป็น ext4 และใส่โทษในไดรเวอร์ไบนารี nvidia

คำสั่งและพารามิเตอร์ที่ฉันใช้:

# stressapptest -M 10000 -s 1800

10000 เป็นหน่วยความจำที่ฉันสามารถทดสอบได้ ฉันได้รับผ่านfree -m-s` คือไม่กี่วินาที

# memtester 4096

ซีพียูของแล็ปท็อปมี 2 คอร์ดังนั้นฉันมักจะเริ่มต้นสองครั้ง 4096 เป็นครึ่งหนึ่งของหน่วยความจำที่มีอยู่ในปัจจุบันผ่านfree -m


1
ฉันจะแทนที่แรมที่ไม่ดี แต่ฉันไม่รู้ว่ามันจะเป็นไปได้ด้วยชิป RAM บัดกรีหรือไม่ คอมพิวเตอร์ใหม่เพียงพอที่จะถูกแทนที่ภายในการรับประกันหรือไม่?
sudodus

@sudodus ใช่การรับประกันยังไม่หมดอายุ ฉันจะ RMA ถ้าฉันไม่สามารถหาทางออก ฉันพบว่าแม้ว่าจะไม่มีวิธีที่เป็นทางการ แต่คนก็พบวิธีที่จะปิดการใช้งานแรมเดสก์ท็อปในแล็ปท็อปบางเครื่องโดยการกระโดดจุดทดสอบ
Artyom

เพื่อให้แน่ใจยิ่งขึ้นลองmemtest86+จากการติดตั้ง Ubuntu LiveCD
N0rbert

@ N0rbert ฉันได้ทำการทดสอบบางอย่างกับ memtest86 - การทดสอบครั้งแรก - ด้วยผลลัพธ์เชิงลบ แต่พวกเขาสั้น -4 reps- ฉันจะทำการทดสอบข้ามคืน
Artyom

2
@sudodus ฉันเชื่อว่า memtest86 + สามารถทดสอบหน่วยความจำของตัวเองได้ แต่ก็ไม่ควรมีปัญหาอะไรมากมาย ใช่ฉันซ่อมแซมพาร์ติชัน ext4 ของฉันสองสามครั้งเพราะมันอาจเกิดจากข้อผิดพลาดที่เกี่ยวข้องกับหน่วยความจำ น่าเสียดายที่ฉันไม่สามารถซ่อมแซมพาร์ติชัน btrfs ของฉันได้เนื่องจากเมทาดาทาเสียหายก่อนที่จะถูกเขียนลงดิสก์และพาร์ทิชัน btrfs ของฉันอาจแพร่กระจายด้วยสครับ btrfs และทำให้บางส่วนเสียหาย
Artyom

คำตอบ:


1

คำตอบที่ลบถูกปิดแล้ว

คำตอบถูกลบในคำถาม & คำตอบนี้:

คุณลองติดตั้ง Ubuntu อีกครั้งเพราะดูเหมือนว่าการจัดการหน่วยความจำระดับ OS ล้มเหลว

คำตอบของฉันคล้ายกับมันเกี่ยวข้องกับการจัดการหน่วยความจำระดับต่ำมาก KASLRที่ระดับเคอร์เนล

KASLR ทำอะไร

KASLR ย่อมาจากK ernel A ddress S pace L ayout R andomization ฉันไม่เคยได้ยินมันพูดออกมาดัง ๆ แต่ในใจของฉันฉันออกเสียงว่า "Casler" คิดว่าเป็นผีที่เป็นมิตรในเครื่อง KASLR เป็นมาตรการรักษาความปลอดภัยในการสุ่มที่ตั้งหน่วยความจำโมดูลเคอร์เนลอยู่ ทฤษฎีคือเคอร์เนลยากที่จะแฮ็กเมื่อคุณไม่สามารถพึ่งพาโค้ดบิตเดียวกันได้เสมอในหน่วยความจำเดียวกัน

การดำเนินการ KASLR อาจถือเป็นสิ่งที่ตรงกันข้ามกับผู้ทดสอบหน่วยความจำซึ่งอ่านและเขียนไปยังตำแหน่งหน่วยความจำเดียวกันซ้ำ ๆ โดยไม่ต้องเปลี่ยน สิ่งเหล่านี้เป็นสิ่งที่ตรงกันข้ามมันดึงดูดฉัน (สำนวนที่สังเกตเห็น) เพื่อทำการค้นหา google ใน KASLR และข้อผิดพลาดของหน่วยความจำ โดยเฉพาะอย่างยิ่งหนึ่งที่ดูเหมือนไม่เกี่ยวข้องอาจสมควรได้รับข้อความเกี่ยวกับGitHubเชื่อมโยงไปยังคำถาม & คำตอบนี้ เหตุผลที่พวกเขาคิดว่าพวกเขาเป็นคนเดียวที่ได้รับผลกระทบจากการเปลี่ยนที่อยู่หน่วยความจำ (ถ้าฉันอ่านเธรดของพวกเขาอย่างถูกต้อง) สามเพลงแรกนั้นมาจากRedHatที่ฉันไม่ชอบที่จะเชื่อมโยงเพราะเว็บไซต์ของพวกเขาเป็นโพสต์บางส่วนที่จะได้รับหุ่นยนต์ค้นหาของ Google แล้วพวกเขาทำให้คุณจ่ายเงินเพื่ออ่าน

มีปัญหาที่ทราบกันดีเมื่อ KASLR โหลดเคอร์เนล "ข้อมูล" ลงในแผนที่หน่วยความจำที่ไม่ควรทำ น่าเสียดายที่ฉันจำลิงค์ที่พบเมื่อสัปดาห์ที่แล้วไม่ได้เพื่อรวมไว้ในคำตอบของคืนนี้ ลิงค์มีแพทช์ / วิธีแก้ไขปัญหาสำหรับสั่งให้ KASLR ไม่ใช้ตำแหน่งหน่วยความจำเฉพาะ

หลังจากยืนยันปัญหาที่ทราบเกี่ยวกับ KASLR และตำแหน่งหน่วยความจำฉันแสดงความคิดเห็นภายใต้คำถามเพื่อปิดใช้งาน KASLR และทดสอบหน่วยความจำที่เรียกใช้ซ้ำ คำตอบระบุว่าดูเหมือนว่าจะประสบความสำเร็จดังนั้นฉันโพสต์คำตอบนี้

วิธีปิดใช้งาน KASLR

ถึงแม้ว่าผมจะได้ใช้ด้วงเคอร์เนลบรรทัดคำสั่งตัวเลือก "kaslr" สำหรับคู่ของปีที่ผ่านมาตอนนี้มันกลายเป็นค่าเริ่มต้นเคอร์เนลอย่างน้อยตั้งแต่รุ่น4.12 หากต้องการกำจัด KASLR จากการโหลดให้ใช้การแก้ไข/etc/default/grubและเปลี่ยนบรรทัดนี้:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

คุณอาจมีตัวเลือกอื่นนอกเหนือจาก "เงียบ" และ "สาด" ขั้นตอนสำคัญคือการเพิ่ม "nokaslr" และปล่อยให้ตัวเลือกอื่น ๆ เข้าที่

จากนั้นบันทึกไฟล์และเรียกใช้:

sudo update-grub

แน่นอนว่าวิธีการปิดใช้งาน KASLR ก็คือใช้เคอร์เนลรุ่นเก่าเช่น 4.4.0 ภายใต้ Ubuntu 16.04.1 เมื่อ KASLR ไม่รวมอยู่โดยอัตโนมัติ


0

ปัญหาฟังดูเหมือนความเสียหายเล็กน้อยของแรมแบบสุ่ม จากประสบการณ์ของผม MemTest86 คือการทดสอบ "ง่ายเกินไป" สำหรับฮาร์ดแวร์ จะพบว่าหน่วยความจำไม่ดีจริง ๆ แต่ปัญหาเล็กน้อยมักจะไม่มีใครสังเกต

หากคุณต้องการทราบว่าหน่วยความจำของคุณดีหรือไม่ลองใช้Prime95ในโหมดทดสอบ / ทรมานตนเองที่กำหนดค่าให้ใช้ RAM ให้ได้มากที่สุด

การทดสอบที่ดีอีกวิธีหนึ่งคือการเรียกใช้การทดสอบ rowhammer สองด้านสองสามชั่วโมง

ฉันเชื่อว่าถ้า Prime95 และ rowhammer สองด้านไม่พบปัญหาใด ๆ กับหน่วยความจำของคุณก็อาจทำงานได้อย่างถูกต้อง อย่างไรก็ตามเพียงเรียกใช้ MemTest86 โปรแกรมที่คอมไพล์ติดตั้งระบบปฏิบัติการเล่นเกมอาจทำงานได้แม้ว่าหน่วยความจำของคุณจะแย่เล็กน้อย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.