Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

memtest86+ — staging, entry points, netboot (ADR 0014)

keyboot ships no memtest binaries (memtest86+ is GPLv2 but a build artifact, not vendored). You stage them once; every entry point below then lights up. Absent binaries, the entries are simply not emitted / fail gracefully — nothing breaks.

Getting the binaries

Download the latest memtest86+ 6.x release from https://memtest.org/ (or build from https://github.com/memtest86plus/memtest86plus). Two artifacts matter:

filefrom the releaseused by
memtest.efi“Binary Files (.efi)” 64-bitGRUB/firmware chainload (UEFI)
memtest.bin“Binary Files (.bin)”BIOS GRUB linux16, keyboot kexec, iPXE BIOS

Put both in one directory, named exactly memtest.efi / memtest.bin:

mkdir -p ~/memtest && cd ~/memtest
# from the release zips: mt86plus_<ver>.{efi,bin}.zip
unzip mt86plus_*.efi.zip && mv memtest64.efi memtest.efi
unzip mt86plus_*.bin.zip && mv memtest64.bin memtest.bin

Staging (KEYBOOT_MEMTEST_DIR)

Set KEYBOOT_MEMTEST_DIR=<that dir> and the build/install paths stage the images at /EFI/keyboot/memtest.{efi,bin} on the ESP and emit a memtest86+ GRUB menuentry (EFI chainload; BIOS linux16):

# USB rescue stick (ci/build-usb.sh)
sudo KEYBOOT_MEMTEST_DIR=~/memtest ci/build-usb.sh

# Fresh install (the install-os orchestrator grub step)
KEYBOOT_MEMTEST_DIR=~/memtest keyboot-install install-os alpine ... --confirm

On an existing host, copy the files onto the keyboot ESP yourself and drop the chainload snippet with keyboot-install install --memtest --confirm (writes /etc/grub.d/11_keyboot_memtest).

Entry points

  1. GRUB menuentry — the reliable path; chainloads memtest.efi before keyboot even starts (BIOS: linux16 memtest.bin).
  2. keyboot.mode=memtest — keyboot kexecs the ESP-staged memtest.bin right after stage-1. SSH/IPMI-scriptable on a headless box; best-effort until verified on real hardware (GL#38).
  3. stage-8 menu m — same kexec, for an operator already in keyboot.
  4. Netboot (GL#39) — no local footprint at all: the published netboot.ipxe menu (ci/gen-netboot.sh) boots ${BASE_URL}/memtest.{efi,bin} straight over the network — for burning in a box before it has any install. Publish the two binaries next to keyboot-vmlinuz/keyboot-initramfs.img at the release URL:
BASE_URL=http://packages.osterman.co/keyboot/v0.1.0 ci/gen-netboot.sh > netboot.ipxe

Serial output (console=ttyS0,115200) is baked into every memtest append so progress reaches IPMI serial-over-LAN.