Search code examples
syslinux

booting memtest86 from USB stick


I want to boot memtest86 from my USB stick with syslinux.

I have installed the packages memtest86 and memtest86+ and copied the .bin files to my USB stick.

I have added the entry to syslinux.cfg:

LABEL memtest
    MENU LABEL Memtest86
    KERNEL memtest86.bin

LABEL memtest+
    MENU LABEL Memtest86+
    KERNEL memtest86+.bin

but this does not work. When I boot, I get endless printout on my screen:

0104
0104
0104
...

How can I boot memtest86 from USB stick ?


Solution

  • TL;DR:

    • please replace the KERNEL command with LINUX, or
    • rename your memtest86.bin to memtest86 or anything else.

    From the syslinux wiki:

    KERNEL file

    Select the file SYSLINUX will boot. The "kernel" doesn't have to be a Linux kernel, it can be a boot sector or a COMBOOT file.

    Because neither Linux kernel boot sector images, nor COMBOOT files have reliable magic numbers, Syslinux will look at the file extension. The following extensions are recognized (case insensitive):

    none or other - Linux kernel image

    .bin - CD boot sector

    ...

    Using one of these keywords instead of KERNEL forces the filetype, regardless of the filename:

    LINUX image

    You can use this, instead of using KERNEL file to boot a linux kernel image.

    ...

    Hence your memtest86 kernel was wrongly recognized as a boot sector image.

    There are also similar reports from this blog post:

    When trying to boot Memtest86 I see "0104" repeating forever. What's wrong?

    You probably called the kernel "memtest86.bin". If the file extension is ".bin", PXELinux will try to load the file as a MBR instead of a kernel file. Rename the file and change the configuration, everything will work fine then.