Ubuntuではメモリエラーが発生するが、MemTest86以降では発生しない


8

btrfsとext4エラーが発生しました。RAMのテストを決定した後、で次のエラーが繰り返し発生しましたmemtester。を少し実行した後、私は常に同様のエラーを受け取りmemtesterます。通常は1時間ですが、一度に4〜5時間かかりました。

コンピュータのRAMがはんだ付けされています。追加の空のスロットを取得しました。BIOSには、オンボードRAMを無効にする設定はありません。

私は走った:

  • Memtest86 + 8パス(〜8時間)
  • 18パス(〜9時間)のMemTest86
  • memtesterそして、stressapptestはFedora 27のデフォルトに、USBスティックにインストールされている(〜10時間)
  • memtesterそしてstressapptestUbuntu 17.10 Liveのデフォルト(〜2時間)
  • memtesterそしてstressapptestUbuntu 17.10ではUSBスティック(約8時間)
  • # debsums --changed 変更された唯一のファイルはテーマの画像でした。

エラーは出力されませんでした。

デフォルトのカーネルでUbuntu 17.10(17.04からアップグレード)を使用しています。カーネルは汚染されていません。Intel Haswell i3を搭載したASUSラップトップです。

  • Linux 4.14.13および4.15.0-rc3、rc4、mainlineでもテストされています。
  • パージされたインテルマイクロコードパッケージでもテストされています。

エラーは、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のメタデータページの一部がゼロでいっぱいになりました。memtesterをほんの数パス実行し、ext4に切り替えて、nvidiaバイナリドライバーのせいにしました。

私が使用するコマンドとそのパラメーター:

# stressapptest -M 10000 -s 1800

10000は私がテストできる利用可能なメモリです。経て、私はそれを得るfree -m-s`は秒です。

# memtester 4096

ラップトップのCPUには2つのコアがあるため、通常は2つのインスタンスを起動します。4096は、現在使用可能なメモリの半分です。free -m


1
不良RAMを交換しますが、はんだ付けされたRAMチップでそれが可能かどうかはわかりません。コンピューターは保証期間内に交換するのに十分新しいですか?
sudodus 2017

@sudodusはい、その保証はまだ有効期限が切れていません。解決策が見つからない場合はRMAします。公式な方法はありませんが、一部のラップトップでは、テストポイントをジャンプしてはんだ付けされたRAMを無効にする方法が見つかっていることがわかりました。
Artyom

より確実にするにmemtest86+は、UbuntuインストールLiveCDから試してください。
N0rbert

@ N0rbert私はmemtest86を使っていくつかのテストを行いました。しかし、彼らは短い-4担当者でした-私は今夜一晩テストをします。
Artyom

2
@ sudodus、memtest86 +は独自のメモリをテストできると思いますが、それほど問題にはなりません。はい、おそらくメモリ関連のエラーが原因で壊れたext4パーティションを数回修復しました。残念ながら、ディスクに書き込まれる前にメタデータがなんらかの理由で破損し、btrfsパーティションがbtrfsスクラブで広がり、一部を破損したため、btrfsパーティションを修復できませんでした。
Artyom

回答:


1

削除した回答は間近でした

このQ&Aで回答が削除されました:

OSレベルのメモリ管理の失敗のように聞こえるため、ubuntuの再インストールをすでに試みましたか?

非常に低レベルのメモリ管理が含まれるため、私の答えは似ています。カーネルレベルのKASLR

KASLRの機能

KASLRの略K ernel A ddress SペースL ayout Rの andomization。私はそれが大声で話すのを聞いたことがありませんが、私の心の中でそれを「キャスラー」と発音します。マシンでフレンドリーなゴーストを考えてください。KASLRは、カーネルモジュールが存在するメモリロケーションをランダム化するセキュリティ対策です。理論は、常に同じメモリスポットにある同じコードのビットに依存することができない場合、カーネルはハッキングするのがより難しいということです。

KASLRの動作は、変更がないことを期待して同じメモリ位置に対して繰り返し読み取りと書き込みを行うメモリテスターの反対と考えることができます。これらは正反対であり、KASLRとメモリエラーでグーグル検索を実行することに私を惹きつけました(イディオムに気付きました)。特に一見無関係のように見える人は、このQ&Aにリンクしているgithubにメッセージを送る価値があります。その理由は、メモリアドレスをシフトすることで影響を受けるのはそれらだけだと彼らが考えているためです(私がスレッドを正しく読み取っている場合)。最初の3つのヒットは、リンク先が嫌いなRedHatからのものです。彼らのWebサイトは、Google検索ロボットにアクセスするための部分的な投稿であり、有料で読ませてくれるからです。

KASLRがカーネル「スタッフ」をメモリマップの中央にロードするときに、想定されていない既知の問題があります。残念ながら、先週見つけたリンクを思い出して今夜の回答に含めることはできません。リンクには、特定のメモリロケーションを使用しないようにKASLRに指示するパッチ/回避策がありました。

KASLRとメモリの場所に関する既知の問題を確認した後、質問の下で、KASLRを無効にしてメモリテストを再実行するようコメントしました。返信は成功したように見えるので、この回答を投稿します。

KASLRを無効にする方法

私はここ数年、grubカーネルコマンドラインオプション「kaslr」を使用していますが、少なくともバージョン4.12からカーネルのデフォルトになりました。KASLRがロードされないようにするには/etc/default/grub、次の行を編集して変更します。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nokaslr"

「静か」と「スプラッシュ」以外のオプションがあるかもしれません。重要なステップは、「nokaslr」を追加し、他のオプションはそのままにしておくことです。

次に、ファイルを保存して実行します。

sudo update-grub

もちろん、KASLRが自動的に含まれていない場合、KASLRを無効にする別の方法は、Ubuntu 16.04.1で4.4.0のような古いカーネルを使用することです。


0

この問題は、RAMのランダムなビット破損のように聞こえます。私の経験では、MemTest86はハードウェアの「簡単すぎる」テストです。それは本当に悪いメモリを見つけますが、わずかな問題はしばしば気付かれないでしょう。

メモリが良好かどうかを知りたい場合は、できるだけ多くのRAMを使用するように構成されたセルフテスト/拷問モードでPrime95を実行してみてください。

もう1つの優れたテストは、両面ロウハンマーテストを数時間実行することです。

Prime95と両面ロウハンマーがメモリの問題を見つけられない場合、おそらく正しく動作すると私は信じています。ただし、メモリがわずかに悪い場合でも、MemTest86の実行、プログラムのコンパイル、OSのインストール、ゲームのプレイは機能するように見えることがあります(そこにいると、それが実行され、長期的にはデータが破損します)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.