SysAdmin Blog

creating an iPXE boot floppy

Alexander Bochmann Sunday 01 of July, 2018
The iPXE open source boot firmware project provides an CD image that boots the iPXE binary using isolinux.

Over on the Fediverse, the topic of bootstraping a system from a floppy disk came up, and with the iPXE binary being a mere 330KB, there's really no reason why it shouldn't be possible to boot that from a floppy disk. And it actually does work, with a few simple steps (on a Debian-ish Linux):

  • format floppy disk and create FAT filesystem
    fdformat /dev/fd0
    mkfs -t fat /dev/fd0
  • get syslinux and install to floppy
    apt install syslinux syslinux-utils
    syslinux --install /dev/fd0
  • get iPXE ISO
    curl -O http://boot.ipxe.org/ipxe.iso
  • mount both iPXE ISO and floppy, copy over required files, rename isolinux.cfg to syslinux.cfg
    mkdir fd iso
    mount /dev/fd0 fd
    mount -o ro ipxe.iso iso
    cp iso/ipxe.krn fd/
    cp iso/boot.cat fd/
    cp iso/isolinux.cfg fd/syslinux.cfg
    umount fd
    umount iso
    rmdir fd iso

That's all! Take your floppy and boot a system

Once iPXE has been started, hit Ctrl-B to call the shell. If you have a DHCP server on your network and a web server with a bootable ISO image, it's just two iPXE commands:

sanboot http://<webserver>/<filename>.iso