USBメモリでmemtest86とmemtest86+を実行する
USBメモリでmemtest86かmemtest86+を実行しようしたけど、以前と同様に4GBのUSBメモリでは普通の方法ではうまく行かなかった。
memtest86はUSBメモリのディスクイメージを提供している。memtest86-4.0a.usbをCygwinのddでUSBメモリに書きこみ、起動しようとしたが起動しなかった。memtest86+はインストーラを提供していて、これでUSBメモリに書きこんでみたがやはり起動しない。どちらも4GBのメモリの先頭に小さなFATのパーティションが作られる。これがブートローダから見えていないようだ。
解決方法は以前と同じでSyslinuxを使う。まずCreating FreeDOS USB boot stick for BIOS flashingからbootstick.zipをもらってくる。今回使うのはsyslinux.exeだけ。USBメモリをFAT32でフォーマットして、管理者として実行したコマンドプロンプトで、syslinux -ma X:を実行する。XはUSBメモリのドライブレター。
次に以下の一行だけのsyslinx.cfgをUSBメモリに作成する。
default memtest
memtest86を実行したいときには、Floppy disk packageを取ってきて、memtest.binをUSBメモリにmemtestとしてコピーする。memtest86+の場合には、Pre-Compiled Bootable Binaryを取ってきて、memtest.binをUSBメモリにmemtestとしてコピーする。これでUSBメモリからブートすればメモリテストを実行できる。
どちらのmemtest.binもブートローダがLinuxカーネルとして読み込む。memtest.binをmemtestにリネームしないと、これがうまくいかない。拡張子がbinだとsyslinuxがブートストラッププログラムと誤解して、Linuxカーネルとして起動してくれない。手順そのものは簡単だけど、いろいろはまってうまくいくまでに結構苦戦した。