What is DOS? I don’t know; I’ve never used it before… until today!

Recently I’ve been working on getting SUSE Linux Enterprise Desktop working on a really really old piece of hardware. As one of the troubleshooting steps I had to update the BIOS to the latest version. In order to do this the vendor told me that I had to boot into DOS and run an executable that would update the BIOS.

As I said, I’ve never used DOS before, so I had to reach out to Peter Bowen for help. Here are the steps he walked me through to create a Virtual FreeDOS Floppy disk image on your hard drive that you can boot from.

Make sure the following are installed: dosbootdisk, syslinux. Dosbootdisk is a program that lets you create a FreeDOS boot disk. Syslinux is a boot loader for Linux which operates off an MS-DOS or Windows FAT file system.

Follow these steps to boot into a DOS partition:

  • zcat /usr/share/dosbootdisk/floppy.gz /boot/floppy.img
  • mount -o loop /boot/floppy.img /mnt
  • Copy the appropriate files needed for updating the BIOS into /mnt(remember this is DOS so make sure that the file names are no larger than 8 characters and the file extension is no more than 3 characters
  • I had to remove the the following line from my config.sys file in order for the system to boot DOS=UMB,HIGH
  • umount /mnt (remember that you can’t unmount if have have if it is your current working directory ie. if you have cd’ed into it)
  • cp /usr/share/syslinux/memdisk /boot
  • Next we need to setup Grub so that you can boot into your virtual floppy disk.
  • Edit /boot/grub/menu.lst so that it looks something like this:
  • ###DOS Floppy###
    title DOS
    root (hd0,0) #you may need to change this depending on what partition /boot is installed on. Because this system is so old it requires that /boot have it's own partition that is the first partition.

    kernel /memdisk
    initrd /floppy.img

    At this point you should be able to reboot your machine, choose the DOS option and flash your BIOS.