一方memtest86+はUEFIでは動作しません、オープンソースの代替案はありますか?それとも、grubを使用してメモリをテストできますか?
答え1
はい、あります、そして今です。メモリテスト86+ v6それ自体。これはMemtest86+の新しいバージョンです。PCMテストこれは、UEFIから起動できるMemtest86 +を再構築したものです。作成者はまだ本番用に使用する準備ができていないとマークしますが、さまざまな構成で機能します。
Memtest86+ v6用のバイナリを使用できます。memtest.orgから。
あるいは、Linuxカーネル自体にメモリテストツールが含まれています。このmemtest
オプションは現在最大17のメモリチェックモードを実行します。カーネルブートパラメータに追加されると、ブートmemtest
時にすべてのテストを実行し、失敗したアドレスは使用されないようにします。より少ないテスト数が必要な場合は、パターン数を指定できます(memtest=8
例:)。
これはMemtest86+ほど広範なテストではありませんが、まだかなり良い結果を提供します。
一部の展開カーネルにはこの機能が含まれていません。検索して利用可能かどうかを確認できます。CONFIG_MEMTEST
カーネル構成で(試してみてください/boot/config-$(uname -r)
)。カーネルはこれを指定しても文句を言いませんが、カーネルがmemtest
実行されたときにそれをサポートしない場合は、次のような出力が表示されます。
[ 0.000000] early_memtest: # of tests: 17
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern 4c494e5558726c7a
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern 4c494e5558726c7a
[ 0.000000] 0x000000000500d000 - 0x0000000007fe0000 pattern 4c494e5558726c7a
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x000000000500d000 - 0x0000000007fe0000 pattern eeeeeeeeeeeeeeee
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern dddddddddddddddd
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern dddddddddddddddd
[ 0.000000] 0x000000000500d000 - 0x0000000007fe0000 pattern dddddddddddddddd
[ 0.000000] 0x0000000000010000 - 0x0000000000099000 pattern bbbbbbbbbbbbbbbb
[ 0.000000] 0x0000000000100000 - 0x0000000003800000 pattern bbbbbbbbbbbbbbbb
...
カーネルが起動したとき(または後で起動ログから)。
QEMUを使用して感じを得ることができます。
qemu-system-x86_64 -kernel /boot/vmlinuz-$(uname -r) -append "memtest console=ttyS0" -nographic
(またはqemu-system-...
あなたのアーキテクチャに適したものの1つ)「early_memtest」を見つけます。カーネルパニック後にQEMUを終了するには、、Ctrlaを押します。cqEnter
答え2
最新のフリーウェア(無料ビール)バージョンを追加できます記憶力テスト86UbuntuでUEFI Grub2と入力します。
に基づいて地図時間、リモートUbuntu 16.04サーバーで次の手順を実行して追加しました。記憶力テスト86UEFI Grub2:
まず、grub2はmemtest86またはmemtest86+を表示しないことに注意してください。 私のスタートアップフォルダにmemtest86+があるという事実にもかかわらず。下記をご覧ください。
ダウンロードmemtest86-usb.zipノートパソコンで
zipファイルをリモートコンピュータに送信し、特定の場所(たとえば
/home/<username>/memtest86-usb/
)に解凍します。fdisk -lu memtest86-usb.img
インストールオフセットを確認するには、memtest86-usb.img分析を使用する必要があります。 上記の出力にリストされている2番目のデバイスをインストールしようとしていますmemtest86-usb.img2
。上の図は、各セクタがmemtest86-usb.img2
514048セクタから始まり、512バイトであることを示しています。したがって、514048 * 512バイト= 263192576バイトから始めてください。フォルダ(たとえば
/home/<username/memtest-tmp
)を作成してマウントします。mkdir /home/<username>/memtest-tmp sudo mount -o loop,offset=263192576 /home/<username>/memtest86-usb/memtest86-usb.img
lsblkを使用して、EFIパーティションとマウントされた.imgファイルの詳細を確認してください。 上の画像では、次のことがわかります。
- EFIパーティションがマウントされる場所はここです
/boot/efi
。legacy
私のサーバーでは、BIOS設定から起動モードを選択できます。フォルダが存在しないようにUEFI
以前に設定しました。起動モードを変更すると、フォルダを表示してEFIパーティションがここにマウントされていることを確認できます。legacy
/boot/efi
UEFI
/boot/efi
- デバイスID。デバイス名はsdです。ㅏ1;これは手紙ですㅏ。これは後で重要になります。
- パーティション番号。デバイス名はsdaです。1;したがってパーティションです。1。これは未来にとって重要だろう
- 完全な状態を確認するために、次の点も参照してください。memtest86-usb.img2にインストールされました
/home/<username>/memtest-tmp
。
- EFIパーティションがマウントされる場所はここです
次に、両方ともコピーして名前を変更します
/home/<username>/memtest-tmp/EFI/BOOT
(/boot/efi/EFI/memtest86
ターゲットフォルダを想定/boot/efit/EFI/memtest86
)。次に、GRUBチェーンローダーエントリを作成します。次のような内容で /etc/grub.d/42_memtest ファイルを生成します。
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. menuentry 'memtest86' { insmod part_gpt insmod fat set root='hd0,gpt1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 4418-37D3 else search --no-floppy --fs-uuid --set=root 4418-37D3 fi chainloader /EFI/memtest86/BOOTX64.efi}
上記の画像では、
set root='hd0,gtp1
EFIパーティションにデバイス名=ラベルが付いているため、これを行いました。sda1。 grub2ルールによると...- これㅏ存在する標準偏差ㅏに該当0存在するHD0
- これ1存在するsda1に該当1存在するGTP1。
- 私達は利用できます総スコア*パーティションのフォーマット1装備sda私たちがそうしたので
insmod part_gpt
。ディスクラベルの種類は次のように識別できます。総タンパク質fdisk -l
コマンドを使用するか、/boot/grub/grub.cfg
ファイルを確認してください。
また、EFI パーティショニングを使用しました。普遍的に一意の識別子これは、
blkid
コンピュータ上のすべてのパーティションのUUIDを表示するコマンドから取得できます。grub2を
update-grub2
。
答え3
Memtest 6はuefiで使用する必要があります。ベータ版はmemtest.orgで入手できます。
コードは以下にあります。https://github.com/memtest86plus/memtest86plus
Memtest86+ v6.00 Beta 2リリース:2022-06-03 v6はまだ製造準備ができていません!実際のコードを実験用と見なして、競合や停止が発生する可能性があると予想してください。最初のビベータ版は今夏発売される予定だ。
ベータイムにもかかわらず、試してみてisoをダウンロードし、USBスティックに追加してuefiから起動することができ、以前と同じようにmemtestが実行されました。