Create a Bootable USB Drive with Ubuntu and FreeDOS

May 8, 2009 by Linerd
Filed under: HowTo, Ubuntu, linux 

Sometimes you just need a DOS boot disk. Many motherboard manufacturers and computer companies only provide DOS based BIOS update utilities. A further challenge is that many computers no longer have floppy disk drives. The solution is to create a bootable USB drive that boots to FreeDOS. The beauty of this method is that you can create a DOS boot drive using only free software.

(Note: If you're looking for a way to make a bootable DOS flash drive in Windows, see: Create a Bootable FreeDOS USB Drive on Windows.)

I figured this out by reading the Gentoo Wiki and adjusted the instructions to work with Ubuntu 9.04.

First off insert the USB drive into one of your USB ports. The following steps will wipe out all of your files, so backup anything you want to keep.

Open GParted through System->Administration->Partition Editor.

Select the USB drive in the upper right corner. Make note of the device name. You'll need this later. In my case it's /dev/sdc.

Gparted USB Drive

Gparted USB Drive

Select the device in the lower portion of the window. Right click and select Unmount.

Select the device again and format it to FAT16 with Partition->Format to->fat 16. Click Apply to do the formatting.

Select the partition and go to Partition->Manage Flags and make sure that the device is marked as bootable.

Make Device Bootable

Make Device Bootable

Your screen should look something like this now.

USB Formatted to FAT16

USB Formatted to FAT16

Close Gparted.

Open Nautilus and select your flash drive to mount it.

USB Drive in Nautilus

USB Drive in Nautilus

Download the FreeDOS image from http://odin.fdos.org/odin2005/odin1440.img and save it to the flash drive.

Create a folder called grub on your usb disk and then copy all of the files from /usr/lib/grub/i386-pc to your new grub folder. The i386-pc part is architecture specific, so this may be different for your computer.

USB grub Folder

USB grub Folder

Also copy /usr/lib/syslinux/memdisk to the root of your USB drive.

Paste the following text into a text editor and save it as /media/disk/grub/menu.lst.

default=0
timeout=10
root=(hd0,0)
title FreeDOS
kernel /memdisk
initrd /odin1440.img

Now we need to install grub to the USB drive. Open a terminal and enter the following:

Note: make sure to substitute your device name from the Partition Editor for /dev/sdc.

cd /media/disk
sudo grub

grub> device (hd5) /dev/sdc
grub> root (hd5,0)
grub> setup (hd5)
grub> quit

As the Gentoo page mentioned, you may get a few non-fatal errors that you can ignore.

That's it. You can now copy your BIOS flash files to the USB drive and reboot your computer. Don't forget to set your computer's BIOS to boot to USB.

NOTE: As mentioned in the comments, it's easier to create a bootable FreeDOS USB drive with UNetbootin.

Comments

9 Responses to “Create a Bootable USB Drive with Ubuntu and FreeDOS”

  1. MX says:

    Thank you for this! This is just what I needed.
    However, I don't really know how to use this. Where do I have to put, say, a bios file and a bios installer (dos) utility?

    I've tried to put in straight on my usb key (root of it) but couldn't tell how to find them once I booted with the key. I'm stock in A:\ with the basic .exe dos program?

    Hehe... thank you!

    • Linerd says:

      Sorry, I should have mentioned in the post that your USB stick will show up as the C: drive when you boot to it. Just enter c:\ at the prompt and you'll be at the root of your flash drive.

      Overall it works great. I just flashed the BIOS on my MSI Wind with this.

  2. spcwingo says:

    Why not just use unetbootin to get FreeDOS on a USB stick? It's much easier with the same end result.

  3. Ray says:

    It looks like UNetbootin requires a larger USB stick.

  4. Ray says:

    This did not work for me. For a detailed walkthrough, see my post at http://raywoodcockslatest.blogspot.com/2009/08/trying-to-use-freedos-usb-drive-to.html

    • Linerd says:

      @Ray - I looked through your post. I should have perhaps stated things more clearly. In your grub commands you should have used
      grub> device (hd5) /dev/sdd1
      based on the device you had in GParted.

      I'll edit my post to make it more clear.

  5. srinath says:

    Will this work on Ubuntu 9.10?

  6. sergey says:

    Thank you, spcwingo

  7. VJ says:

    Worked from Fedora 12 (x86_64) although I had to create

    /media/disk/grub/grub.conf

    with the contents of mentioned

    /media/disk/grub/menu.lst

    for it to actually boot FreeDOS.

Leave a Reply