Rufus allows for the creation of a bootable MS-DOS flash drive. It does this out of the box as an option without needing to specify an image or ISO.

Rufus main interface

However, documentation on the tool is virtually non-existent as it is, and I can't find anything that specifies what version of DOS the program uses for this purpose. Does anyone know?

  • 1
    Out of curiosity, why do you need to know that? – Ooker Jul 9 '17 at 17:49
  • 4
    @Ooker - A mixture of curiosity and the reasons given in my comment on the accepted answer. I mainly needed to be sure that it wasn't already DOS 6.22 and that I wasn't therefore wasting my time finding out how to create a bootable USB from 6.22. – Hashim Jul 9 '17 at 17:50
  • 2
    Nearly every body else who does not get in license conflicts uses FreeDOS for those kind of boot disks. – eckes Jul 9 '17 at 19:07
up vote 198 down vote accepted

Rufus developer here.

As correctly pointed by @magicandre1981 the version of MS-DOS provided by Rufus is the MS-DOS from Windows Millenium Edition, "uncrippled" to enable boot (I didn't invent this patch, but picked it up from the HP USB and other tools).

Also, and this is the important part, Rufus does NOT embed the MS-DOS files within the application, but picks them up from the Windows system it is running from, because, since the MS-DOS binaries are proprietary and copyrighted by Microsoft, it is illegal for anybody else but Microsoft to distribute MS-DOS binaries, be it in a zip file or an application (as a matter of fact, it appears that HP got into legal problems with Microsoft when they tried to produce a version of their HPUSBFW utility that embedded the Windows 98 MS-DOS files, and Microsoft quickly got them to stop doing that).

So, up to Windows 10, we relied on the fact that the MS-DOS files (from Windows ME) were included in the DLL (diskcopy.dll) that Windows uses to create DOS bootable floppy disks (which actually contains a complete bootable floppy FAT image), and picked the files from there, which we can legally do.

However, with the introduction of Windows 10, Microsoft dropped the ability to create bootable floppies (since nobody using Windows 10 is expected to boot from floppy) and removed diskcopy.dll. This means that we don't have a legal way to create MS-DOS bootable USB flash drives any more, and the end result is that:

  • If you use Rufus on Windows XP to Windows 8.1: you have the ability to create bootable USBs with either FreeDOS or MS-DOS (WinME edition).
  • If you use Rufus on Windows 10 or later: you have the ability to create bootable USBs with FreeDOS only.

In practice, I have yet to encounter a tangible report from someone indicating that FreeDOS does not work where MS-DOS does, which is why I don't consider the loss of MS-DOS support in Windows 10 a big loss. Plus, as opposed to using MS-DOS, which is closed source and which Microsoft has stopped supporting a long time ago, FreeDOS is Open Source and actively supported, so you're usually much better off using FreeDOS.

  • 4
    Hey mate. I appreciate you weighing in, and thanks for a great tool. Would you mind shedding some light over here: superuser.com/questions/1228065/…. I can't seem to get Rufus to install MS-DOS 6.22 from an ISO, and from what you're saying, this doesn't seem to be a legal issue. I need DOS 6.22 because I can't risk using an alternative given that the utility I'll be running is incredibly niche and has the potential to break expensive things if not 100% right, so I'd really appreciate your help over there. – Hashim Jul 9 '17 at 17:40
  • 2
    I was unable to use FreeDOS to flash my BIOS on my laptop, but was able to use a Windows 98 boot disk. That said, all I had to do was go out and find a boot disk image online. It's not as if sends out DMCA notices over it. – trlkly Jul 9 '17 at 21:01
  • 7
    It would be good to explicitly mention that this version of DOS from Windows ME is stamped as MS-DOS 8.0. Those from Windows 95a and 95OSR/98/98SE were respectively MS-DOS 7.0 and 7.1. A few people will refer to an MS-DOS 7.11, but I'm not sure what if anything it added to 7.1 – underscore_d Jul 10 '17 at 14:19
  • 3
    MS-DOS 7.10 adds FAT32 support, @underscore_d. That's the big difference between 7.10 and 7.00. Note, also, that there's no such thing as "DOS 7.1". MS's version numbers are always X.YY. The copies of DOS 7.1 circulating out on the web are something that some individual put together, taking a copy of the DOS version supplied with 95OSR2/98/98SE and hacking the COMMAND.COM with a text editor to make it report version 7.1. And, of course, just for completeness, DOS 8.00 is the one shipped with WinME that removed real-mode support so DOS boots into protected mode, with HIMEM integrated. – Cody Gray Jul 12 '17 at 15:24
  • 2
    Correct. No FAT32 boot partition prior to MS-DOS 7.10. Or any FAT32 partition, for that matter! You also won't be able to access large hard disks, as these older versions of DOS don't know anything about LBA (logical block addressing) and they use old ROM BIOS interrupt calls for disk I/O, instead of the newer "INT 13h Extensions". Other trivia: you need MS-DOS 4.00 (officially, 3.3 unofficially with certain limitations) to support FAT16 (previously, only FAT12 was supported). @Hashim – Cody Gray Jul 12 '17 at 18:41

He extracts the version from the Windows file diskcopy.dll

/* Extract the MS-DOS files contained in the FAT12 1.4MB floppy
   image included as resource "BINFILE" in diskcopy.dll */
static BOOL ExtractMSDOS(const char* path)

looking at other comments in dos.c that are the DOS files from WinME (DOS 8.0), he does the same patching as shown here:

* COMMAND.COM and IO.SYS from diskcopy.dll are from the WinME crippled version  
* that removed real mode DOS => they must be patched:  
* IO.SYS            000003AA          75 -> EB 
* COMMAND.COM       00006510          75 -> EB 
  • Haha, beaten to it by 20 seconds. +1 on the detective work, looking into the source code didn't even occur to me. I've had a look at the Wikipedia page on real mode, but I'm still a little unclear. In practical terms, what does real mode do, and does this patch restore all of its functionality? – Hashim Jul 9 '17 at 6:09
  • Just for some interesting background, I've also come across an issue where the/a developer talks about this: github.com/pbatard/rufus/issues/545 – Hashim Jul 9 '17 at 6:15
  • 10
    real mode is a mode in x86 cpus with unlimited direct software access to all addressable memory, I/O addresses and peripheral hardware. Real mode provides no support for memory protection, multitasking, or code privilege levels. But this is required for real DOS usage, but caused stability issues in Win95 and Win98. With this removal WinME was more stable – magicandre1981 Jul 9 '17 at 6:15
  • ok, I still use windows 8 on my main laptop and here the file is still included. So this option is only offered on older versions. – magicandre1981 Jul 9 '17 at 6:16
  • 2
    Of course, real mode is also limited to the 8086's/8088's 20-bit address bus, so you can only address 1 MiB of memory. The 80286 lifted that restriction by expanding to a 24-bit address bus and adding protected mode, allowing the CPU to address 16 MiB of memory (which was a huge amount of RAM in 1982, more than most PCs had fixed storage). Protected mode 286 code wasn't all that common in practice (I'm looking at you, OS/2 and Xenix), and while the 80386 introduced 32-bit protected mode in 1985, it took another decade before protected mode 32-bit software became reasonably common on PCs. – Michael Kjörling Jul 13 '17 at 9:31

I decided to test it myself. I created a bootable USB running MS-DOS using Rufus and then booted into it on my laptop. Once in MS-DOS, I ran the ver command to determine its version, which returned Windows Millennium, aka Windows ME.

I'm guessing that this means the version of MS-DOS used by Rufus is pulled from Windows ME, rather than being one of the earlier, standalone versions. How this ME-integrated version differs from the earlier versions I'm not entirely sure.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.