Bootable DOS USB stick

Many firmware loading programs on PCs require a DOS environment to function. Moreover, most computers no longer have floppy drives, and many do not even have CD drives. This page Article description::describes how to prepare a bootable USB stick which loads DOS using tools available in Gentoo.

Wiping
It is advisable to wipe the USB stick before loading it with a new environment. If the USB stick is at, this can be done with:

where  is replaced with the size of the USB stick in MiB (can be found in  when plugging in the stick).

Partitioning
The stick must now be partitioned. Most any partitioning tool can be used, such as. In this article, it is assumed that the first partition is to be used for this application. This partition should be marked  and its type set to.

Boot sector
Using from the package, prepare the boot sector on the USB stick with:

This writes a public domain boot sector compatible with DOSEMU which is used below.

Formatting
Finally, using from the package, format this partition as FAT16 with:

Loading a DOS environment
Now, use DOSEMU to create a DOS environment in the USB stick. If DOSEMU is not already on the system, install.

Configuring DOSEMU

 * Add the USB partition previously prepared to the list of "hdimages" in the DOSEMU configuration file :


 * Make sure the USB stick is not already mounted, e.g. through any desktop environment file manager, as DOSEMU requires block-level access. This means that DOSEMU must be invoked as root, unless the permissions of the device file have been modified.

Setting up DOS with DOSEMU

 * After starting DOSEMU, the disk should appear as . Start DOSEMU:


 * Change to drive  as some files are being copied from there.


 * Make the USB partition a DOS boot disk with:

This should provide a working command-line environment for running your firmware software.


 * To have a more user-friendly and powerful DOS environment, it is helpful to copy over tools from DOSEMU into the disk:

In order to prevent problems with booting and conflicts between drivers and firmware software, it is recommended editing and  to be minimal. For example:

To edit these files within DOSEMU, use the tool. and go to drive.

If editing from Linux, take care to make sure that the files retain their DOS-style  newlines.


 * Exit DOSEMU:

Checking with QEMU
Check that the USB stick is bootable without actually rebooting the computer by using QEMU:

Keep in mind that this is no guarantee that the BIOS will boot the computer off the USB stick successfully, only a check that the preparations are correct.

Loading firmware
If the kernel supports the FAT filesystem, just mount the USB stick normally, and copy over the necessary software. Otherwise, this can be done within DOSEMU, where  is the user home directory. Place the firmware software in the home directory, then

Here, FIRMWARE is the directory of the firmware software.

Possible improvements
To have a bootable DOS partition as well as a bootable Linux partition (e.g. SystemRescueCD) on the same disk, a bootloader setup more sophisticated than is required. This can be done with GRUB, as described in another HOWTO (broken link).