If you would like to read the other parts of this aritcle series please go to:
- Hyper-V and Legacy Applications (Part 1)
- Hyper-V and Legacy Applications (Part 3)
- Hyper-V and Legacy Applications (Part 4)
- Hyper-V and Legacy Applications (Part 5)
In the first part of this series, I mentioned that although Windows NT was not officially supported in a Hyper-V environment, that Microsoft strongly hints at Windows NT and Hyper-V being compatible. I also said that it was tricky to get Windows NT installed on a virtual machine, and that I would try to find a solution for you.
I am happy to report that I have figured out how to install Windows NT on a virtual machine. When I said that the process was tricky though, it was the understatement of the year. In this article, I will show you how it is done.
Before I Begin
Before I get started, I just want to say that my method is not Microsoft approved. Remember that Microsoft doesn’t even officially support running Windows NT in a Hyper-V virtual machine. Therefore, there is no “right way” to perform the installation. My method is just something that worked for me after much trial and error.
In order to perform my installation, you are actually going to need four different versions of Windows! Obviouysly, one of these versions is Windows Server 2008 running on the server that will be hosting your virtual machine. You will also need a machine that is running Windows XP, and that machine will need to have a CD / DVD burner installed. I have tried this method on a machine that was running Vista, and it did not work.
The third version of Windows that you are going to need is Windows NT. You do not actually have to have a machine that is running Windows NT Server, but you will need the Windows NT Server 4.0 installation media.
Finally, you are going to need a copy of Windows 98. Again, just having a valid license and a copy of the installation CD will suffice.
I will go into more detail as we complete the process, but the basic idea is that we are going to create a Windows 98 boot disk, and then use that to load our CD / DVD drivers, and to prepare the virtual hard drive. Once we have done that, we can install Windows NT.
Extracting Windows 98’s Files
As I mentioned earlier, we are going to need some of the Windows 98 system files in order to make the installation process work. Begin by creating a folder that can act as a temporary repository for the Windows 98 system files. After doing so, insert your Windows 98 installation CD and copy all of the installation files from the CD’s \Win98 folder to the temporary folder that you have created.
Unfortunately, the majority of the Windows 98 system files are in .CAB form, which we can not really use to prepare the system. Therefore, we are going to have to extract the Windows 98 system files from the .CAB archives. To do so, open a Command Prompt window, and navigate to the folder containing your temporary files. After doing so, enter the following command:
Extract base4.cab /Y /A /E
After the extraction process completes, enter the following command:
This will create a sub folder beneath your temporary folder named DOS. Now, open Windows Explorer and navigate to the folder containing your temporary files. Your goal now is to move every file with the .COM extension into the DOS folder. The exact method for doing this is going to vary depending on the version of Windows that you are using. In Windows Vista, click the Type field at the top of the window. This will sort the files by type. The files that we are interested in are categorized as MS-DOS Applications.
Now, we have to do the same thing with the files that are classified as Applications (files with an extension of .EXE). Many of these files are Windows applications, but it is easier to just copy all of the .EXE files to our DOS folder than to pick out the individual files that you are going to need.
When you have finished copying all of the .EXE and .COM files, copy the XCOPY32.MOD file to your DOS directory. We are now done with extracting the system files.
Creating the Boot CD
The next thing that we are going to have to do is to create a boot CD. There are a lot of different ways that you can do this, but in the interest of simplicity, I am going to use a modified version of the technique discussed at: http://www.nu2.nu/bootcd/
Begin the process by downloading these files onto a machine that is running Windows XP (Vista will not work):
After you have downloaded the required files, create a folder named BCD on your hard drive. Extract the BCD Full Package to the \BCD folder that you have just created, being careful to preserve the original file paths.
When the process completes, the BCD folder should contain a sub folder named BIN. Copy the WNASPI32.DLL file to the \BCD\BIN folder.
Now, unzip the BFD Full Package file into the \BCD folder, once again being careful to preserve any file paths. Some of the existing files will be overwritten during the extraction process, which is OK.
Finally, extract the CDROMSI.ZIP file into the \BCD folder, preserving any file paths.
Customizing the Boot CD
You now have all of the pieces in place to make a boot CD. The problem is that the boot CD does not behave as you might expect. When you boot the virtual machine from your boot CD, the only things that you will have access to are the CD’s contents and the virtual hard drive. Swapping CDs has no effect. Therefore, you are going to have to put everything that you are going to need to get Windows NT installed onto the boot CD.
You already created a folder earlier named DOS, which has a bunch of Windows 98 system files. The reason why we did this is because the boot disk is actually based on the Windows 98 command interpreter. Having the extra system files on hand will allow us to boot from the CD and then prepare the virtual hard drive. That being the case, go ahead and copy your DOS folder to the \BCD\CDS\CDROMSI\Files folder. This will cause your DOS folder to be included on your boot CD.
We also need to include the Windows NT system files onto the boot CD. To do so, insert your Windows NT installation CD into the drive, and then copy the CD’s I386 folder (and all of its sub folders) to the \BCD\CDS\CDROMSI\Files folder.
We should now have everything that we need. You can create the boot CD by inserting a blank CD into your drive. Next, open a command prompt window, and switch to the drive containing your BCD folder. Now, enter the following commands:
This will cause the boot CD to be compiled and burned to disc.
Preparing the Hard Disk
I am going to talk a lot more about the process of setting up the virtual machine in the next part of this series. For right now though, just go ahead and create a virtual machine. We will be fine tuning the settings later on. For now , the only thing special that you will need to do is to make sure that the virtual hard drive size is 2 GB or less. This is extremely important.
The reason is because Windows NT does not recognize the FAT-32 file system. It only recognizes FAT-16 and NTFS. Since we are using a Windows 98 boot disk to perform the installation, FAT-16 is our only option, and FAT-16 has a 2 GB limit.
Booting the Virtual Machine
Go ahead and insert your boot CD and boot your virtual machine. You should be taken to a boot screen that contains several different memory options. Choose option 3, which is to boot the operating system without using EMM386. EMM386 does not work correctly in this environment. A moment later, you will see the CD-ROM popup. Select the OK option, and press Enter. The boot process should complete, and the CD-ROM drive should be mapped to R:
Creating a Primary Partition
Now that we have booted into our virtual machine, the next thing that we have to do is to partition the hard drive. To do so, enter the following commands:
When asked if you want to enable large disk support, say No. This is very important, because if you answer Yes, then Windows will automatically default to using the FAT-32 file system, which does not work with Windows NT.
When the main FDISK screen appears, choose option 1. Create Primarry DOS Partition or Logical DOS Drive. This will cause FDISK to display a secondary menu. Choose option 1. Create Primary DOS Partition.
When Windows asks if you want to use the maximum amount of space and make the drive active, say Yes. When the process completes, press Escape to get out of FDISK and then reboot the virtual machine off of your boot CD. You should choose the same options during the boot process as you used the last time.
Formatting the Virtual Hard Drive
The next step in the process is to format the virtual hard drive. To do so, enter the following commands:
When asked if you want to proceed with the format, choose Yes. When the format completes, you will be prompted to enter a volume label. Just press enter to complete the process.
Locking the Virtual Hard Drive
Windows 98 is designed to prevent direct access to a hard drive. Microsoft did this as a way of preventing malware infections, and to protect the user against operations that could potentially result in file system corruption. The problem is that Windows NT requires direct file system access. Therefore, we have to issue a lock on the C: drive. To do so, enter this command:
Windows will now display a very ominous warning message. Go ahead and answer Yes to enable direct disk access.
We have now laid most of the ground work for installing Windows NT. In Part 3, I will walk you through the rest of the process.
If you would like to read the other parts of this aritcle series please go to: