While Greg and I were hanging out to bring in the new year, a little nostalgia hit us and we began talking about MS-DOS and Windows 3.1. As a result of that discussion, I began playing with the idea of having a VM of both DOS and Windows 3.11 (completely separate, just for the sake of having two environments). This series will explore and layout the steps for creating an MS-DOS 6.22 VM using VirtualBox. The concept of a VM is outside the scope of this series and we will assume that you know what a VM is and the basics of how VM’s work.
NOTE: This is a bit verbose, by design. After doing some reading, I find that some users who want a MS-DOS VM dont exactly understand the pieces/parts involved. This post works toward filling in some of the gaps some users may have.
What you will need:
- VirtualBox – http://www.virtualbox.org – I used version 4.1.8. If you have an older version, some of the documentation related to VirtualBox may be a little different.
- MS-DOS 6.22 – If you wish to use your copy of MS-DOS 6.22 and still have the original floppies, you will need to create floppy image files (IMG), since VirtualBox does not allow you to map your physical floppy drive to a VM. For convenience, I have included links to the 3 IMG files you will need to complete this process. Save these images somewhere on your hard drive where you can find them. For the purposes of this example, I will be storing them in ‘E:\MS-DOS 6.22 Disk Images’
- Enough disk space to run VM’s. The VM we are creating will not use up a lot of disk space, but you should at least be aware that VM’s can take up a lot of disk space .
Creating the VM:
- Open VirtualBox and click on the New button. You can also begin the creation of a new VM by selecting Machine, New from the menu at the top of the screen.
- When the wizard opens, click Next.
- Give your VM a name that is relevant to the VM you are creating. In this example, Im using ‘MS-DOS 6.22′. Notice while you key in the name, if VirtualBox recognizes an operating system type and/or version in the name of the VM, it will auto select it for you. In the attached screenshot, I did nothing more than key in the name of the VM as listed above and VirtualBox prefilled the Operating System Type and Version with ‘Other’ and ‘DOS’, respectively. Click Next.
- The default value for the amount of memory to configure for a DOS based VM is 32 MB. This value is just fine for running DOS (and is actually overkill) but we’ll leave it as is. If you wish, you can reduce it by half (16 MB). Click Next.
- Next, we will create a hard disk to associate to the VM. The defaults here are to create a new disk. VirtualBox recommends a size of 500 MB. This is just fine. Click Next.
- When the Create New Virtual Disk screen appears, click Next to accept the default value, which should be VDI (VirtualBox Disk Image).
- Click Next to accept the default storage details, which is set to dynamically allocate.
- We dont want to take up any more disk space than we actually have to. When virtual disks are created, we are given the option to create a dynamically allocated disk, which will only take up the amount of disk space on the host system that is actually being used by the guest. We can also create a fixed disk, which will create a file on your system the size of the disk you are creating for your guest. Fixed disks are better for performance, as dynamic disks allocate space as they need them, until the limit of the disk is reached. However, for our purposes, a dynamic disk is fine.
- For the location and size, accept all of the defaults. The disk file will have a file name that matches the name of your VM (in this case MS DOS 6.22). As mentioned above, VirtualBox recommends a disk size of 500 MB. Click Next to continue.
- A summary of the parameters selected to create our disk should appear. Click Create to create the disk.
- Finally, a summary of the parameters to create our VM should appear. Click Create to create the VM.
Configuring the VM:
There are some changes we need to make to the VM in order for it to function properly. We will also verify some of the details of the VM. In order to change the parameters of the VM, select the VM and click on the Settings button. Alternatively, you can right click on the VM and select Settings. To the left are all of the different areas you can adjust to customize your VM.
- BASIC Tab – Here you can change the name of the VM, Operating System and Version. Since we already set this up when we created our VM, we do not need to change anything here.
- MOTHERBOARD Tab – Memory configuration and boot order are configured on this tab. No change.
- ACCELERATION Tab – This tab allows VM’s to take advantage of acceleration technology built into today’s modern processors. Unfortunately, MS-DOS precedes this technology and can cause us some problems.
- VIDEO Tab – Adjustments to the amount of video memory, monitors and video acceleration can be made here. We need to adjust the amount of video memory DOWN from the default setting of 5MB.
- We want the video memory to be set at 2MB. This can be done either by using the slider or by typing in a value in the edit field on the far right, next to the slider. I personally find it easier to key the value than to use the slider
- TESTING NOTE: During my testing, I found that when I used the default setting, after loading MS-DOS, I would only be able to read one line of text, similar to what you see below.
- Notice the storage tree on the right. The parent here is always a controller. The child is the attachment or ‘drive’. Commonly attachments are virtual disks. However, in the case of a CD ROM, you can also access the host’s phsyical CD ROM drive. Most of the time, this is unnecessary. You will see here that we currently have an IDE controller already set up. MS-DOS has no idea about SATA controllers since SATA didnt exist at the time MS-DOS was being actively supported. Our virtual hard disk is listed below as an attachment, as well as a CD ROM drive, which is currently empty. What you do not see here is a Floppy controller, which we need in order to be able to load MS-DOS using the floppy images listed in the ‘What you need’ section above.
- Just below the Storage Tree are 4 icons. To create a new controller, we need to select the 3rd icon. When you hover over it, it should say ‘Add Controller (Ins)’. When you click on it, it will then give you 5 types of controllers. Select ‘Add Floppy Controller’
- Select your newly added Floppy Controller and click on the first icon below the Storage Tree. When you hover over it, it should say ‘Add Attachment(+)’.
- You will then be prompted with a message telling you that you are about to add a new floppy drive to the Floppy Controller we just created. You have three options here. ‘Choose disk’ will let you browse the system for your disk image, select said image, and then load it into the virtual floppy drive. ‘Leave empty’ will create the floppy drive but have nothing in it. ‘Cancel’ is self explanatory. Select ‘Choose disk’.
- Navigate to the location of your MS-DOS disk images. In the ‘What you need’ section earlier, I mentioned that my images are in ‘E:\MS-DOS 6.22 Disk Images’. Select ‘dos622_1.img’ and click Open. Your Storage Tree should look like the following.
- Finally, click OK to save all the changes to your VM.
Loading MS-DOS 6.22:
Now that our VM is created, we can fire it up and begin loading MS-DOS. Start the VM either by double clicking on the VM or by selecting it and clicking on the Start button at the top of the screen. You can also start a VM by right clicking on the VM you wish to fire up and select Start. When the VM starts up, you will notice that a message will appear at the top of the screen for a short moment that says ‘Starting MS-DOS…’.
- Once the VM has booted, you should be presented with the MS-DOS 6.22 Welcome screen, as shown below. Use your mouse to click inside the VM and press Enter on your keyboard to proceed with the setup.
- YOU WILL NOT BE ABLE TO MOVE YOUR MOUSE OUTSIDE THE VM ONCE YOU DO THIS.
- When a new VM is started, once you click inside the VM window, mouse control has been transferred from the host system to the VM. If you try to move your mouse around, you will notice that you cannot move outside of that window. If you press the right Ctrl key on your keyboard (displayed below), this will release the mouse back to the host computer. Newer guest operating systems (Windows XP, for example) will allow you to install VirtualBox Guest Additions, which can allow a seamless integration of the mouse between the host and the guest, which makes the above step pointless. However, this does not apply to MS-DOS and thus, we’re stuck with releasing the mouse using the right Ctrl key on our keyboard.
- MS-DOS then needs to configure the hard disk we added to the VM in a previous step. Press the enter key to ‘Configure unallocated disk space (recommended)’.
- The setup process will now reboot your system. The screen reminds us to have disk 1 inserted into the drive. We’re already covered there. Press Enter to reboot.
- When the system comes back up, the disk will begin formatting.
- Testing NOTE/ISSUE: Part of the reason I was able to get this capture is that running DOS in a VM can cause some issues with the host system. In fact, on my system, VirtualBox chewed up about 50% of my CPU while trying to format). If you run into this error, shutdown the VM. Restart and press the F8 key (see keyboard image above). Follow the prompts. You will be prompted to confirm the country code, which is set to 358. Press Y on your keyboard. The next prompt is to proceed with loading the AUTOEXEC.bat file. Press N on your keyboard to skip loading the AUTOEXEC.bat file.
- Type ‘format C:’ and press Enter. You will be warned that formatting the system will erase all data then prompted to proceed with the format. Press Y and then Enter to continue. When prompted for a label, press Enter for none.
- Type in setup to proceed with the setup of DOS. This will take you back to the beginning of our process of loading MS-DOS. Press Enter to begin the process of installing. You will then proceed to the next step.
- You will then be presented with a series of settings for the date/time, country code and keyboard layout. Using the disk images I provided above, the defaults are set to Finland. You can use your up and down arrows to select an option and make changes as necessary. Make the appropriate changes and then arrow down to the option ‘These settings are correct’ and press Enter.
- The setup process will then prompt you for the file path to place your MS-DOS files. Press Enter to accept the default file path of ‘C:\DOS’.
- Files will now start to be loaded into your VM. Once it has completed with Disk 1, you will be prompted for Disk 2. Follow the instructions below the image to load Disk 2.
- To insert Disk 2, press the right Ctrl key on your keyboard to release the mouse. Then select Devices, Floppy Devices, Choose a virtual floppy disk file from the menu at the top of your VM screen.
- If you downloaded all of the above images into the same directory, then browse to that directory and select ‘dos622_2.img’. I placed mine in ‘E:\MS-DOS 6.22 Disk Images’. Then click Open. Click inside the VM to give the VM control over the keyboard and mouse once again and press Enter to proceed with the installation
- When the Disk 2 files have loaded, you will then be prompted for Disk 3. Follow the instructions below the image to load Disk 3. Once Disk 3 has been loaded, press Enter to continue.
- To insert Disk 3, press the right Ctrl key on your keyboard to release the mouse. Then select Devices, Floppy Devices, Choose a virtual floppy disk file from the menu at the top of your VM screen.
- If you downloaded all of the above images into the same directory, then browse to that directory and select ‘dos622_3.img’. I placed mine in ‘E:\MS-DOS 6.22 Disk Images’. Then click Open. Click inside the VM to give the VM control over the keyboard and mouse once again and press Enter to proceed with the installation
- Once the files have finished loading, you will be prompted to remove all disks. To do this, press the right Ctrl key to release your mouse. In the menu, select Devices, Floppy Devices, Remove disk from virtual drive. Then click inside the VM screen and press Enter.
- MS-DOS is now installed on your system. Press Enter to restart your VM which will start in MS-DOS.
This was definitely a long and drawn out explanation of the process. It goes a lot quicker than you might think. Thanks to ghr in the VirtualBox forums for putting together a decent tutorial on this process (https://forums.virtualbox.org/viewtopic.php?t=845). The process laid out by ghr contains a bit more than what we have done here today, which will be covered later in the series. If you feel ambitious and wish to continue with configuring your DOS environment, by all means. Two resources that were extremely helpful to me: Google and the VirtualBox forums. Check back for tutorials on how to configure the CD ROM, Sound, Networking and how to prevent your MS-DOS VM from chewing up your system resources.