UEFIで動作するmemtest86+の代わりに無料のオープンソースがありますか?

UEFIで動作するmemtest86+の代わりに無料のオープンソースがありますか?

一方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:

  1. まず、grub2はmemtest86またはmemtest86+を表示しないことに注意してください。 GRUBブートメニュー 私のスタートアップフォルダにmemtest86+があるという事実にもかかわらず。下記をご覧ください。 /boot ディレクトリ一覧

  2. ダウンロードmemtest86-usb.zipノートパソコンで

  3. zipファイルをリモートコンピュータに送信し、特定の場所(たとえば/home/<username>/memtest86-usb/)に解凍します。

  4. fdisk -lu memtest86-usb.imgインストールオフセットを確認するには、memtest86-usb.img分析を使用する必要があります。fdisk -lu memtest86-usb.img 上記の出力にリストされている2番目のデバイスをインストールしようとしていますmemtest86-usb.img2。上の図は、各セクタがmemtest86-usb.img2514048セクタから始まり、512バイトであることを示しています。したがって、514048 * 512バイト= 263192576バイトから始めてください。

  5. フォルダ(たとえば/home/<username/memtest-tmp)を作成してマウントします。

    mkdir /home/<username>/memtest-tmp
    sudo mount -o loop,offset=263192576 /home/<username>/memtest86-usb/memtest86-usb.img
    
  6. lsblkを使用して、EFIパーティションとマウントされた.imgファイルの詳細を確認してください。 lsblk 出力 上の画像では、次のことがわかります。

    1. EFIパーティションがマウントされる場所はここです/boot/efi
      • legacy私のサーバーでは、BIOS設定から起動モードを選択できます。フォルダが存在しないようにUEFI以前に設定しました。起動モードを変更すると、フォルダを表示してEFIパーティションがここにマウントされていることを確認できます。legacy/boot/efiUEFI/boot/efi
    2. デバイスID。デバイス名はsdです。1;これは手紙です。これは後で重要になります。
    3. パーティション番号。デバイス名はsdaです。1;したがってパーティションです。1。これは未来にとって重要だろう
    4. 完全な状態を確認するために、次の点も参照してください。memtest86-usb.img2にインストールされました/home/<username>/memtest-tmp
  7. 次に、マウントポイントにフォルダが含まれていることを確認し、EFI/BOOTその内容を表示します。 ここに画像の説明を入力してください。

  8. 次に、両方ともコピーして名前を変更します/home/<username>/memtest-tmp/EFI/BOOT/boot/efi/EFI/memtest86ターゲットフォルダを想定/boot/efit/EFI/memtest86)。 ここに画像の説明を入力してください。

  9. 次に、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,gtp1EFIパーティションにデバイス名=ラベルが付いているため、これを行いました。sda1。 grub2ルールによると...

    1. これ存在する標準偏差に該当0存在するHD0
    2. これ1存在するsda1に該当1存在するGTP1
    3. 私達は利用できます総スコア*パーティションのフォーマット1装備sda私たちがそうしたのでinsmod part_gpt。ディスクラベルの種類は次のように識別できます。総タンパク質fdisk -lコマンドを使用するか、/boot/grub/grub.cfgファイルを確認してください。

    また、EFI パーティショニングを使用しました。普遍的に一意の識別子これは、blkidコンピュータ上のすべてのパーティションのUUIDを表示するコマンドから取得できます。

  10. grub2をupdate-grub2

  11. 再起動すると表示できます。記憶力テスト86grub2から memtest86を使用したGRUBブートメニュー

答え3

Memtest 6はuefiで使用する必要があります。ベータ版はmemtest.orgで入手できます。

コードは以下にあります。https://github.com/memtest86plus/memtest86plus

Memtest86+ v6.00 Beta 2リリース:2022-06-03 v6はまだ製造準備ができていません!実際のコードを実験用と見なして、競合や停止が発生する可能性があると予想してください。最初のビベータ版は今夏発売される予定だ。

ベータイムにもかかわらず、試してみてisoをダウンロードし、USBスティックに追加してuefiから起動することができ、以前と同じようにmemtestが実行されました。

関連情報