After several days of heavy exhausting battles and sleepless nights, after testing dozens of options, after browsing many proposed Internet solutions, I finally was able to move an old instance of Windows XP on a new machine with new RAID drivers. That happened at 13:23 on December 12, 2010. I moved Win XP from old RAID machine to a new RAID machine. O boy!
I found a clear and clean way to do this task. I will also use the same technique to move any Microsoft operating system from a Single drive to a RAID machine. And this also works great, if you simply switching your PC controller from IDE to RAID mode. I also hope to find a similar steps to move XP off a RAID into a single drive.
This example uses Windows XP. However the same technique should work one-to-one with Windows 2003 Server. For Windows 2008 and Windows 7 you would need additional step of configuring BCDEdit.
This example was tested with moving from machine with old Intel Rapid Storage controller to a machine with newer Intel RAID controller.
You copied an existing XP installation from one RAID machine to another machine with different RAID. You try to boot into a new instance, and almost immediately you get a 0x0000007B error with Blue Screen of Death (BSOD). And the message sarcastically said that this is done for your own protection.
To be able to follow the steps described here, you need:
– to know basic registry operations (editing, merging, loading hives),
– to be able to install Microsoft Operating system (original disk is required).
Complexity of the task increases, if your new machine doesn’t have a floppy drive.
We will create a prototype install of Windows XP on new machine with F6 option (even without a floppy drive).
We will save same portions of SYSTEM hive to a disk. And a couple of driver files.
We will copy all three directories (Windows, Program Files and Data) from one machine to another.
We will merge saved portions of SYSTEM hive into copied instance of XP.
We will test boot and logon.
We will jump with joy!
Please, expect additional effort required to install new network, video and audio drivers from inside a working Windows XP instance on a new RAID machine.
On both source and destination PC you need additional functional operating systems. They are usually referred to as parallel instances.
If your new machine doesn’t have a floppy, and doesn’t have any functional operation system to boot into, you need temporary install Vista of Windows 7. They allow to supply manufacturers drivers from CD or USB.
On both old and new machines login into parallel installs. On your new machine create a writable share. From your old machine, begin to copy all three directories required for this Windows XP instance. It is important to initiate this copy from old machine, because your user admin rights less likely to cause security warnings and interruptions.
Try to boot on your new machine and make sure it is crashing. If you do not see the actual BSOD error message (if it disappears to fast), you can load hive SYSTEM from parallel install and modify AutoReboot from 1 to 0 in ControlSet001\Control\CrashControl.
|nLite – Smart and Powerful|
|I hate any new software on my PC. I am trying to use only Microsoft products. Only. But this little perl amazed me.This tiny elegant software allows to:- combine original XP installation disk with SP.
– integrate RAID and SCSI drivers, if you do not have a floppy drive;
– exclude components, features and services;
– specify installation directories, users, Product Key, machine name;
– set up a complete range of interface tweaks that you would have to modify anyway on each workstation;
– save every single configuration step for future use;
– create a bootable ISO image for you.
|Next time I use nLite I will remember:|
|– spend extra second to pick exactly the right RAID driver from the list;- do not save ISO image into the same directory as prepared disk folder;- do not run this under Windows 7.|
Initiate a brand new installation on Windows XP from original boot disk. If your new system doesn’t have a floppy drive to specify RAID OEM drives during install you need to use a lovable and free utility nLite to create a bootable disk with XP and those drivers.
If you run this nLite procedure under Windows 7, your disk will be bootable and it will installs everything OK, but it will not take any product key. Period. But you do not need to go any further. You do not need to actually complete the prototype installation. You can hard reboot anytime after Drivers portion of GUI install.
Transfer Files and Directories
Boot into parallel install on new RAID machine. Find the name of your RAID driver file. Navigate to %WinDir%\NLDRV\001 (for your prototype install) and write down file name with SYS extension. All your registry manipulations in the next step will be revolving around this name. In my case the name was iaStor.sys. This is a RAID driver from Intel.
On a copied instance of XP do these steps:
Remove %WinDir%\OemDir directory
Copy %WinDir%\NLDRV from new Prototype install
Replace or copy %WinDir%\system32\drivers\iaStor.sys Use driver for your RAID controller.
Transfer Registry Settings
Now we have copied Win XP instance with old hardware configurations. That old hardware configuration prevents XP from booting on a new RAID machine. We also have a brand new template install with all the good a proper hardware settings. We need to extract those and add them to our copied instance of XP.
Load SYSTEM hive from a brand new incomplete XP install as QQQQ.
Search your QQQQ branch with the name of the RAID driver that you wrote down on previous step. In my case I would search for iaStor anywhere in QQQQ.
Export those several branches, where your driver is mentioned. In my example I would have to export these 5 branches:
Your registry branches might have sligtly different names.
Also export and save entire MountedDevices branch.
Make a note of a value on Setup\SystemPartition – \Device\HarddiskVolume4. System is smart enough to change this value.
Unload the SYSTEM hive for Template instance.
Load SYSTEM hive for copied instance with the same name – QQQQ.
Search all instances of your old RAID driver and delete it. You might need play with security to allow delete.
Merge all the REG files that your export on previous step into this SYSTEM hive under QQQQ name.
For some branches you would need to open up parent registry security allow a successful merge. Go very slowly and deliberately. Visually inspect the result after each merge.
Add a New Entry to your Boot.ini
This is just a reminder here – do not forget to configure your boot.ini.
Reap the Rewards
You are now ready to boot into your Windows XP instance that just a few hours ago was crushing with BSOD.
Your copy of Windows XP is now allows you to boot and login. Many of you hardware drivers (Network, Video, Audio) would need to be installed, but it is all a child’s play when your system actually boots. But all your careful and thoughtful software configurations are gingerly preserved.
A reason enough to jump with joy, and yell, and run up and down the stairs. Great job!
Complications with Windows 7
If you ever need to move Windows 7 from a single drive to a RAID controller, the procedure is very similar. It is the same installation of a new prototype to have a good registry template. It is pretty much the same registry branches in SYSTEM – ControlSet001 that need to be replaced.
Change comes in replacing drivers and folders. I had to replace directories with long names inside %WinDir%\winsxs folder. This folder over 10,000 objects in it. The long folder names here look like amd64_iastorv.inf.resources_31bf3856ad364e35_6.1.7600.16385_en-us_44e8ed1a9baece6e
If you thing this is complicated, navigate to %WinDir%\winsxs \Manifests. This little dwarf contains almost 14,000 files in it.
Another complication is that I am finding not one but two drivers for my RAID controller: iaStor.sys and iaStorV.sys. Looks like the first is Intel driver and second is from Microsoft.
Folder %WinDir%\System32\DriverStore\FileRepository was missing Intel-related sub-folders. So I added missing components. But the tactic remained the same: search for anything with your new driver name in it and transfer found components to a Windows 7 instance, that you are trying to transfer/repair.