Home > Windows Server 2003 > RIS hard disk size problem

RIS hard disk size problem

September 25th, 2007 Leave a comment Go to comments

A common problem I have encountered when using the legacy Remote Installation Services (RIS) to install operating system(s) onto new computers, is caused by the size of the hard disk that you wish to install the operating system onto.

Put simply, if you have made a RIPREP image using RIS on a 40GB hard disk, RIS will only install this image onto a hard disk of equal size or bigger. Even if the operating system contains only 2GB worth of files, it makes no difference if you made the image on a 40GB drive, you still will not be able to install the operating system onto a drive smaller than 40GB.

The error you are presented with when you encounter this problem looks like this:

"Setup cannot copy the operating system image you selected.

This computer does not have enough disk space on the selected partition.

Contact your system administrator"

More info about the error can be found here:

Microsoft KB320982

So basically you have 3 choices for solving this problem. The first (and most obvious is to swap the hard disk in the computer you are trying to install the operating system on for one of equal size or bigger than that on which the original RIPREP image was made.

The second choice is to make a dummy RIPREP image. Find the computer with the smallest hard disk (out of all the computers you want to install the operating system on), start riprep.exe on it (usually found with the collection of RIS utilities on \\servername\reminst). Now as you proceed through each stage of the wizard for making your dummy riprep image keep an eye on the following folder:

\\servername\reminst\Setup\English\Images\dummyimagename\i386\Mirror1

As soon as the file named IMirror.dat appears turn the computer off. You can now use the IMirror.dat file from your dummy image which was made on the smaller hard disk in place of the IMirror.dat file for the image that is causing the problem. You should now be able to install the operating system without the error halting the setup. One other point I would like to make here is that if you simply copy an IMirror.dat file from a random RIPREP image you may have on your server into the image you are having problems with, and this IMirror.dat file was made on a smaller hard disk, you may still encounter problems. This is because the IMirror.dat file contains other information such as the HAL used and OS version.

As you may have guessed, the IMirror.dat file is the file that contains the size of the disk that the image was made on, this brings us to our third choice for solving the problem, editing the IMirror.dat file so that RIS thinks we made the image on a smaller sized hard disk in the first place.

First things first, make a copy of the IMirror.dat file you wish to change and place it somewhere safe. Now open the IMirror.dat file that is causing the problem in your favourite HEX editor. Mine happens to be UltraEdit. According to the following post, the hard drive size is stored in offset C8 - CF:

MCSE.MS Forums

Also in the above post are examples of hard disk sizes converted to bytes in little endian format. So, as per the post I edit offset C8 - CF and set the value to that of a 6GB sized hard disk. So:

6 GB = 6 442 450 944 bytes = 00 00 00 01 80 00 00 00
hex = 00 00 00 80 01 00 00 00 hex (little endian)

This is that value I always use. Once you have changed the hex values for the value of the 6GB hard disk at offset C8 - CF, save the IMirror.dat and use RIS to try and install your operating system again. This time it should be successful.

Categories: Windows Server 2003 Tags:
  1. Adam
    October 23rd, 2007 at 13:26 | #1

    Nice work man - worked a treat! Someone gave me a load of PCs with varying hard drive sizes, so this came in really handy 🙂

  2. Martin
    February 6th, 2008 at 12:23 | #2

    Great, do you know how to calculate the byte size into a little endian? Google calc and win hex calculate only into hex (big endian)

  3. James Clements
    February 7th, 2008 at 09:11 | #3

    I have never actually tried to calculate the disk size as little endian. I've never had a need to do this because the smallest disk I have had to image using RIS has been 10GB. So the hex value for a 6GB drive (above) has always sufficed for me.

  4. levidos
    April 7th, 2008 at 22:49 | #4

    really cool, thanx! my next step is to deal with the Bad Pool Header BSOD whick appears after the format process is done. I begin to hate RIS/WDS.

  5. Rick
    August 10th, 2009 at 21:38 | #5

    Thanks for the article. You saved the day.

  6. Martin
    December 8th, 2009 at 13:17 | #6

    Many thanks for the first class information.
    Worked 1st time, once I'd figured out the HEX editing.
    Flexhex editor was good, was able to find the offset and select the 8 bytes to reveal the offending 160GB HDD size. Changed this to the 6GB little endian value.
    Happy days!!

  7. dudamon
    February 17th, 2011 at 11:55 | #7

    @James Clements
    Little endian means the lowest bytes go first, you just flip the HEX values.

    eg

    Big Endian = 543210 (right to left)
    Little Endian = 012345 (left to right)

*

code