it-swarm-ja.com

特定のメモリアドレスを使用しないようにubuntuに指示するにはどうすればよいですか?

これが不適切な言葉で書かれていてすみませんが、コンピュータの1つでメモリテストを実行しました。特定のメモリアドレスにエラーがあります。初めて検索しました。さらに情報が必要な場合は、ご提供いたします。

1
j3d1H

/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構成ファイルには、カーネルの不良RAM除外を構成するための行があります。したがって、それがエラーを示しているメモリのセクションをマッピングする好ましい方法であると想定します。私が設定した行は

GRUB_BADRAM="0x7DDF0000,0xffffc000" 

私が見つけたすべてのWebサイトで推奨されている方法は、これを設定してmemtest86を実行し、BadRAM設定を表示することでした。 memtest86は、私が入力しなければならなかったであろうもののページを私に与えました。すべてのアドレスが1つの16Kブロック内にあることがわかりました。そのため、その16Kブロックを動作しないようにマッピングしたいと思いました。これが正しいエントリを生成する方法です。

最初のパラメーターは簡単です。これが不良メモリのベースアドレスです。私の場合、すべての不良アドレスが0x7DDF0000より大きく、0x7DDF4000より小さいことがわかりました。そこで、16Kブロックの先頭を開始アドレスとして使用しました。

2番目のパラメーターはマスクです。必要なアドレス範囲が同じ値を共有する場所に1を置き、変化する場所に0を置きます。つまり、下位ビットのみが変化するようにアドレス範囲を選択する必要があります。私の住所を見ると、マスクの最初の部分は簡単です。あなたは0xffffから始めたいと思います。次のニブルについては、ビットマップで説明します。 0000から0011の範囲にしたいので、badramのマスクは1100またはヘックスcになります。範囲全体をマッピングしたいので、最後の3ニブルはマスクですべて0にする必要があります。したがって、合計結果は0xffffc000になります。

/ etc/default/grubにこの行を設定した後、Sudo update-grubを実行して再起動すると、不良メモリが使用されなくなりました。この方法を使用して不良メモリをマップするためにカーネルパッチは必要ありません。


もちろん、最善のアクションプランは、欠陥のあるRAMを交換することです。

3
heynnema

私にとって最も簡単で最も堅牢な方法は、カーネルパラメータmemtest=4をGrub構成に追加することです。これにより、ブートアップに数秒が追加され、カーネルがramをチェックし、それらを不良とマークします\ o /(このCovid19ロックダウンでRAMを交換できないので、神に感謝します)

  1. Sudo nano/etc/default/grub
  2. この行を更新します。
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash memtest=4"
  3. Sudo update-grub
  4. リブート
  5. 必要に応じて、dmesgを実行して機能していることを確認し、次のようなログを確認します。
    • [ 5.043917] aaaaaaaaaaaaaaaa bad mem addr 0x0000000581a90000 - 0x0000000581a90010 reserved

https://ubuntuforums.org/showthread.php?t=2278744

0
AmanicA