F6K'S DOS JOURNAL, INSTALLING FREEDOS ON A FLASH DRIVE WITH QEMU September 2, 2026 Few years ago, I was playing with FreeDOS thanks to QEMU. I wanted to play some old games and write in a calm environment. There are traces of this in the archives of this phlog. However, since I want to gather what I know and what I learn about DOS in one place, I am going to revisit what I wrote back then. And because I've just put my son down for a nap, and I imagine (I hope!) that getting this file into shape will not take me long, I'm jumping on the opportunity of one hour and change for myself to do it now. [Note upon review an hour later-ish: in the end, he didn't want to sleep and kept calling me every 15 minutes or so for one thing or another. I even got a panicked "Papa, I pooped in my panties!" scheme. But I, being naive, dropping everything, jumped from my chair and hurried toward his room, looking rather grim - as one can expect. But it actually turned out to be completely untrue; he's four years old and enjoy playing pranks (but he still managed to keep a straight face the whole time I was in the room; after all, the little rascal had got what he wanted: Papa had come without a fuss). So, all that tot say that writing this file turned out to be more of a challenge than expected... And now you know why if there are things absolutely unclear in the explanations in this file, typos or mistakes. Sorry for that =)] As a reminder, FreeDOS is an open source software developped by Jim Hall and a large community of volonteers since 1994. In that year, Microsoft announced that Chicago will replace completely DOS. Seeing the future death of his system of choice Jim Hall decided to start a public domain version of DOS, named PD-DOS at the time. The project rapidly gathered interest and changed its name for Free-DOS, then FreeDOS. According to its wiki, it is "a complete, free, DOS-compatible operating system". The current version is 1.4, and was released in April 2025. In this text file I will attempt to describe how to simply install FreeDOS with the help of the QEMU emulator. For that two things will be needed. First QEMU has to be installed with support for the i386 architecture. Please follow the documentation of your system to do so. Note that, even if it is possible to run the emulation directly in your terminal thanks to curses library, you might need to have a GUI installed. On Debian, the system I use presently, the GUI is handled by GTK, but QEMU's GUI can be run with SDL too. The next thing we need is the ISO of the distribution. It is available at http://www.freedos.org/download/ where you will be able to download the FD14-LiveCD.zip file and, for later, the FD14-BonusCD.zip file. After unziping the archives, you'll have a FD14LIVE.iso and a FD14BNS.iso file. I'll say again that my goal is to have a working version of FreeDOS on an USB drive so that a machine can boot from it. While installing FreeDOS directly onto the USB drive is certainly an option, I prefer to add an extra step: I will install it on a virtual disk first and then copy that image to the USB drive, as I want a stable and editable virtual image that I can duplicate across different flash drive. It also ensures I have a backup in case of issues with the USB drives (so I don't have to start over from scratch). However, if for some reason the virtual image is not necessary, here is how to proceed to launch the installation directly to the USB drive. With the key plugged in and available under /dev/sdc (check first where is the key with fdisk(1) and the option "-l" (lowercase L)): $ qemu-system-i386 -drive file=/dev/sdc -cdrom FD14LIVE.iso \ -m 32 -boot order=d -display gtk -enable-kvm Now since I'm going with a virtual image, I'll need to create first an image for FreeDOS, then launch QEMU with FD14LIVE.iso in a virtual CD-ROM as above to start the installation: $ qemu-img create freedos.img 2G $ qemu-system-i386 -hda freedos.img -cdrom FD14LIVE.iso \ -m 32 -boot order=d -display gtk -enable-kvm FreeDOS needs at least 20MB of free disk space for the plain DOS system. But a full installation including applications and games from the Live CD will need not less than 275MB. In my case, I've created a 2GB image. In fact, during my initial testing, I created a 500MB virtual image, installed FreeDOS on it, then tried to resize it to make full use of the USB drive space. I used GParted for this, but while the resizing worked fine, for some reason, DOS refused to boot afterwards. So, until I sort that out, I am creating a large image, which will be mostly empty. And because the free space has 0 written in it, after zipping it, it won't be that big. On an other note, and about the commands above, I put an highlight on the fact that I clearly specified the boot order (where d is D:, the virtual drive with our ISO file). When I'll want to run the virtual machine after the installation, I'll need to put "order=c" (where c is C:). By the way, KVM is also enabled to enjoy better performance (it can be safely removed to have a system closer to the "reality", but it is really slower). After running the commands (the one for the direct installation on the flash drive or the others two for an installation on the virtual drive), I found myself in the FreeDOS installation program. With QEMU run in a GTK window, I could have pressed the combo Control-Alt-F to go fullscreen if pleasant. From there, everything is straightforward but to get some help with the install process, Jim Hall made an explanatory video on YouTube: https://www.youtube.com/watch?v=Se69XJWxwAc. During the installation, it is however recommanded to make just a plain DOS install. It is faster and, at any rate, it will be possible afterwards to install only the programs and games needed from the ISO files. By the way, I use QEMU here but it alwo works very well with VirtualBox (see the explanatory video by Jim Hall here: https://www.youtube.com/watch?v=xXkmOwLPpcg). Once the installation was done, I could "shutdown" FreeDOS at the command prompt. If the installation was directly made on the flash drive, then nothing more is needed. But since I've used the way of using a virtual image, I still need to copy its content to the flash drive. Assuming that it is in /dev/sdc, I simple used dd(1): $ sudo dd if=freedos.img of=/dev/sdc status=progress Note that if the installation was performed directly onto the flash drive, it is still possible to create a backup copy in the same way (and I will probably do that since I realize I'm messing around with files and programs directly on my USB key): $ sudo dd if=/dev/sdc of=/home/f6k/bak/udosbak.img [Note after review: and, of course, now my son is deeply asleep. But it's already getting late, and I'll have to wake him up if I want him to sleep tonight (there's school tomorrow!). It's past 4PM, so I'll give him 10 more minutes. He didn't want to go to sleep, but now that he is, he's going be grumpy as hell when I'll do - oh, you'll see...]