如果電腦有兩個記憶體晶片,是否可以告訴 ubuntu 僅使用一個記憶體晶片?

如果電腦有兩個記憶體晶片,是否可以告訴 ubuntu 僅使用一個記憶體晶片?

如標題所示。

自從我購買了新的 RAM 晶片後,我的電腦就出現了一些奇怪的問題,這讓我想知道是否是 RAM 晶片造成的。

為了測試它,我想將 ubuntu 配置為僅使用一個晶片,然後再使用另一個晶片。我不介意執行複雜的程序(也許手動分配未使用的晶片上的所有內存,以便所有進程都駐留在另一個晶片上?),但會介意嘗試危險的程序

最簡單的解決方案可能是打開電腦並實際移除晶片,但我想盡可能避免這種情況(因為擔心打開和關閉機器造成損壞/困難)

如何告訴 ubuntu 不要使用某些記憶體位址?提供了部分解決方案:給定要避免的地址,我們可以將其關閉。但還是需要知道什麼位址在什麼晶片上

答案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。遮罩中的最後 3 個半位元組需要全為 0,因為我們希望映射出整個範圍。所以,我們得到的總結果是 0xffffc000。

設定此行後/etc/default/grub,我運行sudo update-grub並重新啟動,我的壞記憶體不再被使用。使用此方法不需要內核補丁來映射壞記憶體。

更新#1:

如果記憶體錯誤沒有出現在較低的記憶體中,您可以新增「mem=##MB」核心選項來暫時停用高於該點的記憶體。例如:根據memtest86,我的記憶體有 315MB 到 325MB 之間的錯誤。透過添加“mem=314MB”,我告訴核心假裝我只有 314MB。我的系統將足夠穩定來構建補丁,此時我可以傳遞一個參數以僅跳過 315MB 和 325MB 之間的部分(這為我提供了 502MB 的可用內存)。

IE:啟動Ubuntu Live,在GRUB選單下,點選e進入編輯模式,使用方向鍵找到“quietsplash”,改為“quietsplashmem=2048MB”,CTRL+xF10繼續啟動。

相關內容