I needed to flash the BIOS of one of my old server motherboards and to my dismay found the only way to do so was via DOS boot image. It was not straightforward so I thought I’d write it down. Thanks to pingtool & tummy.com for the information I needed to pull it off.
First, obtain a copy of FreeDOS ISO and extract it to a directory
- mount -o loop <freedosISO.iso> <mount directory>
- rsync -aP <mount directory> <directory you want files to copy to>
Next, copy the necessary flash utilities and firmware files to that same directory as above.
Lastly, use genisoimage to create a new ISO image based on the above folder. Modify -o output to wherever you want the ISO to go.
sudo apt install genisoimage
cd <folder you copied your files to>
mkisofs -o /tmp/freedos_biosupdate.iso -q -l -N \
-boot-info-table -iso-level 4 -no-emul-boot \
-b isolinux/isolinux.bin \
-publisher "FreeDOS - www.freedos.org" \
-A "FreeDOS beta9 Distribution" -V FDOS_BETA9 -v .
From here you can take the ISO and mount / burn it as needed. It will boot into FreeDOS. Tell it to go to a shell and away you go.