Skip to content

Both.org

News, Opinion, Tutorials, and Community for Linux Users and SysAdmins

Primary Menu
  • About Us
  • Computers 101
    • Hardware 101
    • Operating Systems 101
  • End of 10 Events
    • Wake Forest, NC, — 2025-09-20
  • Linux
    • Why I use Linux
    • The real reason we use Linux
  • My Linux Books
    • systemd for Linux SysAdmins
    • Using and Administering Linux – Zero to SysAdmin: 2nd Edition
    • The Linux Philosophy for SysAdmins
    • Linux for Small Business Owners
    • Errata
      • Errata for The Linux Philosophy for SysAdmins
      • Errata for Using and Administering Linux — 1st Edition
      • Errata for Using and Administering Linux — 2nd Edition
  • Open Source Resources
    • What is Open Source?
    • What is Linux?
    • What is Open Source Software?
    • The Open Source Way
  • Write for us
    • Submission and Style guide
    • Advertising statement
  • Downloads
  • Home
  • How I boot FreeDOS using QEMU
  • FreeDOS
  • Linux
  • VirtualBox

How I boot FreeDOS using QEMU

QEMU is a fast and flexible virtual machine that you configure using command line options.
Jim Hall April 8, 2024 5 minutes read
IBM-PC-XT
1

My longtime hobby is retrocomputing. I helped start the FreeDOS Project in 1994 because I wanted to keep using DOS in a world that was moving to Windows, and I continue to use FreeDOS because I enjoy the challenge of writing programs that run in a restricted environment.

But I don’t have the spare room in my home office for actual classic hardware. Instead, I boot FreeDOS in a virtual machine environment on my Linux computer. Using a virtual machine means FreeDOS runs independently in a “guest” environment, running in a “window” on my Linux desktop.

QEMU is a fast and flexible virtual machine that you configure using command line options. QEMU emulates many things by default, such as a classic PS/2 mouse, but other configurations must be specified using the command line. Here is how I run QEMU to boot FreeDOS on my Linux machine:

Download FreeDOS

Let’s demonstrate QEMU using the FreeDOS 1.3 LiveCD image. The “live” CD means you can boot the CD image on your computer and run a minimal version of FreeDOS. If you want the full FreeDOS experience, you’ll need to run the installer. But for this demonstration, we’ll just boot the LiveCD.

Visit the FreeDOS Project website and click the big blue button that says “Download FreeDOS 1.3”

Scroll down, and find the box titled “FreeDOS for everyone.” Click the blue button to download the LiveCD:

This downloads the file FD13-LiveCD.zip to your computer. The zip file contains the LiveCD image as FD13LIVE.iso and a boot floppy image called FD13BOOT.img. In most file managers, you can double-click the zip file to extract everything in it, but you’ll only need the LiveCD image to boot FreeDOS on QEMU.

Booting with QEMU

To boot FreeDOS using QEMU, you effectively need to build the virtual machine using command line options. This is my full command line:

$ qemu-system-i386 -enable-kvm -m 32 -device sb16 -device adlib -cdrom FD13LIVE.iso -boot order=d

QEMU supports different classes of hardware using different programs. The qemu-system-i386 version of QEMU will emulate a classic 32-bit system. To emulate a 64-bit system, such as to run Linux or FreeBSD, use the qemu-system-x86_64 command instead.

By default, QEMU will emulate the CPU instructions for the guest virtual machine machine. But this software emulation can be slow. You can get much better performance by using -enable-kvm to leverage the Kernel-based Virtual Machine (KVM) built into the Linux kernel. The KVM only works if you emulate the same kind of CPU in the “guest” machine that you are running on the “host” machine. For example, you cannot use -enable-kvm to boot FreeDOS on a Raspberry Pi running Linux, because the Raspberry Pi has an ARM CPU and FreeDOS only runs on an Intel CPU.

Set the memory with the -m option. FreeDOS doesn’t need a lot of memory, so -m 32 configures the guest machine using 32 Megabytes of memory. By today’s standards, 32MB is not a lot of memory, but that was plenty in the DOS era of the 1980s and 1990s.

If you want to play classic DOS games, you may need digital sound support. DOS does not provide a Hardware Abstraction Layer. Instead, DOS games of that time accessed the sound hardware directly. The most common sound card in the early 1990s was the SoundBlaster16, and the most popular digital music add-on was the AdLib card. The two command line options -device sb16 and -device adlib add support for SoundBlaster16 and AdLib.

Specify the CD-ROM image using the -cdrom option. To boot FreeDOS, use -cdrom FD13LIVE.iso to configure the virtual machine to use the FreeDOS 1.3 LiveCD image, and -boot order=d to set the virtual machine to boot only from the CD-ROM drive. The d option means “CD-ROM” image. To boot from a virtual floppy, use a; to boot from a hard drive image, use c.

Together, these command line options “build” a QEMU virtual machine that boots the FreeDOS 1.3 LiveCD in a window:

screenshot of FreeDOS 1.3 booting in QEMU

We’ve provided a sample of open source apps and games on the LiveCD. For example, if you type CD GAMES and CD SENET then run SENET, you can play the classic Senet board game:

To exit FreeDOS, type shutdown at the command prompt. But because FreeDOS is just DOS, and was created in an era when you could just turn off the computer when you were done with it, you can safely skip the “shutdown” step and just “power off” the virtual machine using the Machine > Quit menu action in the QEMU window. But the “shutdown” command line process ensures that any data you might have written to another device will finish writing before the computer shuts down.

Virtual machines make it easy

FreeDOS has minimal hardware requirements, so you can find many virtual machines that will run FreeDOS. VirtualBox is also quite popular, but I like QEMU as my virtual machine. Every major Linux distribution should include QEMU by default.

Tags: FreeDOS Linux virtual-machine

Post navigation

Previous: The real differences between less, more, and most
Next: An introduction to the Linux boot and startup processes with GPT and GRUB2

Related Stories

connections_wires_sysadmin_cable
  • Linux
  • Networking
  • Router

How to Make your Linux Box Into a Router

David Both April 29, 2026
f44-01-day-cropped
  • Fedora
  • Linux
  • Upgrades

Fedora 44 Released

David Both April 28, 2026
command_line_prompt
  • Command Line
  • Linux
  • Programming

Writing a replacement seq command

Jim Hall April 27, 2026

System upgrades this Sunday, May 3

Tools illustrationFedora 44 was released this week and I’ve upgraded all my systems except for the two that directly affect Both.org. I’ll be upgrading the hosts for my server and firewall to Fedora 44 this Sunday afternoon, May 3.

Both.org will be down for most of the afternoon for these upgrades.

Thanks for your patience.

Random Quote

Premature optimization is the root of all evil.

— Donald Knuth

Why I’ve Never Used Windows

On February 12 I gave a presentation at the Triangle Linux Users Group (TriLUG) about why I use Linux and why I’ve never used Windows.

Here’s the link to the video: https://www.youtube.com/live/uCK_haOXPFM 

Why there’s no such thing as AI

Last October at All Things Open (ATO) I was interviewed by Jason Hibbits of We Love Open Source. It’s posted in the article “Why today’s AI isn’t intelligent (yet)“.

Technically We Write — Our Partner Site

Our partner site, Technically We Write, has published a number of articles from several contributors to Both.org. Check them out.

Technically We Write is a community of technical writers, technical editors, copyeditors, web content writers, and all other roles in technical communication.

Subscribe to Both.org

To comment on articles, you must have an account.

Send your desired user ID, first and last name, and an email address for login (this must be the same email address used to register) to subscribe@both.org with “Subscribe” as the subject line.

You’ll receive a confirmation of your subscription with your initial password as soon as we are able to process it.

Administration

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

License and AI Statements

Both.org aims to publish everything under a Creative Commons Attribution ShareAlike license. Some items may be published under a different license. You are responsible to verify permissions before reusing content from this website.

The opinions expressed are those of the individual authors, not Both.org.

You may not use this content to train AI.

 

Advertising Statement

Both.org does not sell advertising on this website.


Advertising may keep most websites running—but at Both.org, we’re committed to keeping our corner of the web ad-free. Both.org does not sell advertising on the website. Nor do we offer sponsored articles at this time. We’ll update this page if our position on sponsorships changes.

We want to be open about how the website is funded. Both.org is supported entirely by David Both and a few other dedicated individuals.

 

 

Copyright © All rights reserved. | MoreNews by AF themes.