FreeDOS is a great way to bring all of those old, much-loved and hard to replace programs from the DOS world back to life under a modern operating system. Using FreeDOS, graphical programs that won't run under Microsoft Windows, Wine or DOSBox might just run flawlessly under QEMU.

FreeDOS running on QEMU under Linux

Download one of the bootable CD images from the FreeDOS distribution. The FreeDOS 1.2 "standard" CDROM image should work on most computers and PC emulators. FreeDOS 1.2 was released 25 December, 2016.

Creating an imageEdit

To make it possible to exchange files with FreeDOS by copying files to and from the image, don't create the image as qcow. Instead, just create raw images. This will allow the FreeDOS image to be mounted under Linux and other Unix-like hosts just like a regular hard drive. Create a 100 MiB hard disk image named freedos.img:

qemu-img create -f raw freedos.img 100M

Now boot up FreeDOS from the CD image (FD12CD.iso) and follow the menus to partition, format and install onto the hard drive.

qemu -localtime freedos.img -cdrom FD12CD.iso -boot d

Once the install is complete, you can boot FreeDOS from the image file without the CD.

qemu -localtime freedos.img

To transfer files between FreeDOS and the host, stop QEMU and mount the FreeDOS image under the filesystem.

mkdir -p /mnt/freedos
mount -t msdos -o loop,offset=32256 freedos.img /mnt/freedos
cp oldgames /mnt/freedos
umount /mnt/freedos

Reminder: never mount the image while QEMU is using it and remember to unmount it before starting QEMU again!