I have an old motherboard that requires creating a DOS boot floppy in order to upgrade its BIOS. Fortunately, it's not too hard to do this with FreeDOS and a USB stick.
The instructions below are based on an old FDos wiki article. You maye have more luck with the latest instructions from the official wiki
Downloading the dependencies
The first step is to download the required files from your motherboard manufacturer:
- the latest BIOS image
- the BIOS flashing program
and then install the tools you'll need:
apt-get install makebootfat syslinux
Preparing the "floppy" image
Start by collecting all of the files you need to install FreeDOS on the USB stick:
cd /tmp
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/pkgs/commandx.zip
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/pkgs/kernels.zip
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/pkgs/substx.zip
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/pkgs/unstablx.zip
for ZIP in *.zip; do unzip $ZIP; done
cp ./source/ukernel/boot/fat16.bin .
cp ./source/ukernel/boot/fat12.bin .
cp ./source/ukernel/boot/fat32lba.bin .
cp /usr/lib/syslinux/mbr.bin .
and then create a directory for the files that will end up in the root directory of the "floppy":
mkdir /tmp/fs-root
cp ./bin/command.com /tmp/fs-root/
cp ./bin/kernel.sys /tmp/fs-root/
and copy the BIOS image and update program into that same directory (/tmp/fs-root/
).
Creating a bootable USB stick
Plug in a FAT-formatted USB stick and look for the device it uses (/dev/sdb
in the example below).
Finally, run makebootfat
:
/usr/bin/makebootfat -o /dev/sdb -E 255 -1 fat12.bin -2 fat16.bin -3 fat32lba.bin -m mbr.bin /tmp/fs-root
I was looking into this so bad. My Bios update images are big enough to not fit into the default floppy or usb installer of freedos specially that I want to boot it over pxe. This definitely helped me. Thank you.