ทดสอบความจำ
ก่อนอื่นไปที่ https://www.memtest86.com/ และดาวน์โหลด/รันฟรี ทดสอบความจำ
เพื่อทดสอบความจำของคุณ ผ่านการทดสอบ 4/4 ทั้งหมดอย่างน้อยหนึ่งครั้งเพื่อยืนยันความจำที่ดี การดำเนินการนี้อาจใช้เวลาสองสามชั่วโมงจึงจะเสร็จสมบูรณ์
ฉันสงสัยว่า ทดสอบความจำ
จะล้มเหลว ถอด SODIMM/DIMM ใหม่ออกแล้วรันใหม่ ทดสอบความจำ
. หากผ่าน ให้ถอด SODIMM/DIMM ที่ผ่าน แล้วใส่ SODIMM/DIMM อื่นเข้าไปใหม่ด้วยตัวเอง แล้วรันใหม่ ทดสอบความจำ
.
แบดรัม
ดู วิธีติดตั้ง Ubuntu บนแล็ปท็อปที่มีโมดูล RAM บัดกรีที่มีเซลล์เสียหาย
ถ้ามองเข้าไป /etc/default/grub
คุณจะพบก GRUB_BADRAM=
พารามิเตอร์ที่คุณสามารถระบุได้ว่ามีตำแหน่งหน่วยความจำที่ไม่ดีใดบ้าง
# ยกเลิกการแสดงความคิดเห็นเพื่อเปิดใช้งานการกรอง BadRAM แก้ไขให้เหมาะกับความต้องการของคุณ
# ใช้งานได้กับ Linux (ไม่ต้องใช้โปรแกรมแก้ไข) และกับเคอร์เนลใด ๆ ที่ได้รับ
# ข้อมูลแผนที่หน่วยความจำจาก GRUB (GNU Mach, เคอร์เนลของ FreeBSD ... )
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefe"
แหล่งที่มา: https://help.ubuntu.com/community/BadRAM#BADRAM_setting_in_Grub2
การตั้งค่า BADRAM ใน Grub2
ไฟล์ปรับแต่ง GRUB2 ใน นัตตี้ มีบรรทัดสำหรับกำหนดค่าการยกเว้น ram ที่ไม่ดีของเคอร์เนล ดังนั้นฉันจะถือว่านั่นเป็นวิธีที่ต้องการในการแมปส่วนของหน่วยความจำที่แสดงข้อผิดพลาด แนวที่ผมตั้งไว้คือ
GRUB_BADRAM="0x7DDF0000,0xffffc000"
วิธีที่แนะนำในทุกเว็บไซต์ที่ฉันพบคือตั้งค่าให้ทำงาน memtest86
และให้แสดงการตั้งค่า BadRAM memtest86
ให้หน้าของสิ่งที่ฉันจะต้องป้อน ฉันเห็นว่าที่อยู่ทั้งหมดอยู่ในบล็อก 16K เดียว ดังนั้นฉันแค่ต้องการแมปบล็อก 16K นั้นไม่ได้ผล นี่คือวิธีที่ฉันสร้างรายการที่ถูกต้อง
พารามิเตอร์แรกนั้นง่าย นั่นคือที่อยู่พื้นฐานของหน่วยความจำที่ไม่ดี ในกรณีของฉัน ฉันเห็นว่าที่อยู่ที่ไม่ดีทั้งหมดมีค่ามากกว่า 0x7DDF0000 และน้อยกว่า 0x7DDF4000ดังนั้นฉันจึงใช้จุดเริ่มต้นของบล็อก 16K เป็นที่อยู่เริ่มต้นของฉัน
พารามิเตอร์ที่สองคือหน้ากาก คุณใส่ 1 เมื่อช่วงที่อยู่ที่คุณต้องการใช้ค่าเดียวกันและ 0 จะแตกต่างกันไป ซึ่งหมายความว่าคุณต้องเลือกช่วงที่อยู่เพื่อให้บิตคำสั่งต่ำแตกต่างกันไป ดูที่อยู่ของฉันส่วนแรกของหน้ากากนั้นง่าย คุณต้องการเริ่มต้นด้วย 0xffff สำหรับการแทะครั้งต่อไปผมจะอธิบายด้วยบิตแมป ฉันต้องการช่วงตั้งแต่ 0000 ถึง 0011 ดังนั้นหน้ากากสำหรับ badram จะเป็น 1100 หรือ hex c การกัดแทะ 3 ครั้งสุดท้ายต้องเป็น 0 ทั้งหมดในหน้ากาก เนื่องจากเราต้องการแมปช่วงทั้งหมด ดังนั้นเราจึงได้ผลลัพธ์รวมเป็น 0xffffc000
หลังจากตั้งค่าบรรทัดนี้แล้ว /etc/default/grub
ฉันวิ่ง sudo ปรับปรุงด้วง
และรีบูตและหน่วยความจำที่ไม่ดีของฉันก็ไม่ถูกใช้อีกต่อไป ไม่จำเป็นต้องใช้แพตช์เคอร์เนลเพื่อแมปหน่วยความจำเสียโดยใช้วิธีนี้
อัปเดต #1:
หากข้อผิดพลาดของหน่วยความจำไม่ปรากฏขึ้นในหน่วยความจำที่ต่ำกว่า คุณสามารถเพิ่มตัวเลือกเคอร์เนล "mem=##MB" เพื่อปิดใช้งานหน่วยความจำเหนือจุดนั้นชั่วคราว เช่น ตาม memtest86
หน่วยความจำของฉันมีข้อผิดพลาดระหว่าง 315MB และ 325MB โดยการเพิ่ม "mem=314MB" ฉันบอกให้เคอร์เนลแสร้งทำเป็นว่าฉันมีเพียง 314MB ระบบของฉันจะเสถียรพอที่จะสร้างแพตช์ ซึ่ง ณ จุดนั้นฉันสามารถส่งพารามิเตอร์เพื่อข้ามส่วนระหว่าง 315MB ถึง 325MB เท่านั้น (ซึ่งให้หน่วยความจำที่ใช้งานได้ 502MB แก่ฉัน)
เช่น: บูต Ubuntu Live ที่เมนู GRUB กด อี เพื่อเข้าสู่โหมดแก้ไข ใช้ปุ่มลูกศรเพื่อค้นหา "quiet splash" เปลี่ยนเป็น "quiet splash mem=2048MB" CTRL+x หรือ F10 เพื่อทำการบูทต่อไป