ホーム  ざれごと  ワシントン州  ツール  NT豆知識  Win32プログラミングノート  私的用語  ジョーク  いろいろ  ゲーム雑記  Favorites  掲示板   Mail

Migrating existing Windows XP installation to new motherboard / CPU

Last modified: Mon Dec 12 12:08:04 2011 PDT

一つ上へ

When you purchase cool new motherboard, it's often observed that your XP installation would not work with the new configuration. Whenever the hardware upgrade includes new chipset or CPU, the drivers (for the boot device), HAL and the NT kernel may need to be reconfigured to accommodate the hardware differences. Since those files are the fundamental part of the OS, HAL / kernel are out of the scope of the regular PnP.

Needless to say, you should always re-install the OS, whenever you make big hardware changes. However, there are certain people who want to take a risk, to avoid the installation (like me)! This page guides you through the steps to avoid the re-installation. However, there are certain risks. If you don't clearly understand the contents of this page, re-installation is recommended.

That said, no one likes re-installing the OS. As long as you can create a clone drive, there's virtually nothing you lose even though something goes wrong. If you are like me, and agree with taking the risk (on your own), you can do this. Take it easy, and happy hacking!

Just to boot the OS

Backup and clone the drive

If you haven't done backup recently, do it now before proceeding.

Also, it's highly recommended that you create a clone of the boot drive (this has to be a different hard drive than your backup), save the original drive and do experiments with the cloned one. It won't hurt at all if you do something wrong and break the cloned drive - you just need to throw it away, pick up the original drive and recreate the clone drive.

Temporarily remove all but boot drive

Another recommendation is to disconnect all unnecessary drives, and keep the number of the connected drives absolute minimum. This will reduce the chance of corrupting your data saved on the other drives, if anything goes wrong by some mistakes.

Plan ahead (short grace period activation required)

Another thing to consider: most likely you'll be asked to activate Windows once you change the motherboards. Until the environment is finalized and the migration is done, you probably wouldn't want to activate Windows. Usually the expiration period is short, only three days. Plan ahead so that it doesn't expire while you're actively working on the migration.

Device driver for the boot device

Why do I need new drivers?

Changing the motherboards often ends up with a new chipset - i.e. motherboards may have different I/F chips for IDE drives, and the current installation of Windows may not have a proper driver. Lack of the driver for the boot device causes troubles booting up the OS. Typically it results in the Bugcheck 7B.

Pre-install all inbox drivers

You can follow the steps in this MS KB to pre-install all the OS in-box hard drive drivers. (Microsoft KB 314082: You receive a Stop 0x0000007B error after you move the Windows XP system disk to another computer).

If you have PCI IDE card...

Having that said, a simpler option would be an IDE PCI card. You can use the IDE PCI card on both old and new machines, and you should be able to access the boot drive from both environment.

Configure NT kernel for multi-processor

My HAL is not ACPI Multiprocessor - what to do?

Now that you can at least boot Windows on the new motherboard, you want to see the dual core working. However, sometimes the OS does not utilize the second core.
(This is an XP example) Single CPU configuration in the original system should be automatically updated to the multi-processor, as long as the HAL of the original PC was "ACPI Uniprocessor". Otherwise, you'll need to take extra steps to configure the HAL and the NT kernel. You can check the current HAL in the device manager, "Computer".

Find and copy HAL / kernel to system32

If this is the case for you, you'll need to copy the HAL / NT kernel yourself and add a boot option to boot.ini, to boot the OS using "ACPI Uniprocessor" HAL. More information of XP HALs is available at Microsoft KB: HAL options after Windows XP or Windows Server 2003 Setup. The options for boot.ini is referenced in KB article: Boot INI Options Reference.

Probably you have installed Service Packs and lots of OS patches by now. The HAL / NT kernel might have been updated. Yyou should be using the latest binary (or the ones that match your installation), rather than extracting files from the install CD.

C:\> pushd %windir%
C:\Windows> dir /s hal*.dll
 ...
C:\Windows> dir /s nt*.exe

The above commands should list the HAL and the NT kernel. Identify the files that match the timestamp of the currently used HAL and the kernel, and copy them into %windir%\system32.

Boot.ini

The next stop is editing the boot.ini file.

First, you may need to chage the attributes of c:\boot.ini.

C:\Windows> attrib -h -s -r c:\boot.ini

Then open the file by an editor, duplicate the line that's used to boot the current configuration. Add /hal=halaacpi.dll to the duplicated line. This is just an example, the actual boot options could be different.

multi(0)disk(0)rdisk(0)partition(1)\Windows="XP HAL=ACPI Uniproc" /fastdetect /hal=halaacpi.dll

Reboot, choose the duplicated line from the boot menu, then the rest should be taken care of by the OS. When you reboot again, you should see the HAL / kernel is configured for multiprocessor, and both of your CPU core should be in action. Double check that with Task Manager etc.
Once this configuration is done, you'll no longer need this menu item.

Of course, this may not be the case for everyone, but this is worth trying. Just a note of precausion, touching system32 and boot.ini may involve risks if you are not confident what you are doing. Use your own judgement if this is for you.

The last resorts

You can try some other things..

Try more HALs!

Try adding all the HALs to the boot menu, and boot into each. One of them may work.

Repair

Boot from the install CD, run "Repair Windows" and let it configure the HAL and the kernel etc. You might need a driver floppy disk.

In-place upgrade

In-place upgrade is an alternative method of the repair the OS, but requires way more labor. Start the in-place upgrade while the drive is still in the original hardware. I once explained this method before (Japanese only). In a nutshell, run i386\winnt.exe, with /noreboot and /copylocalsource options, and do the file copy part in the original hardware, migrate the drive, and continue to the text mode setup on the new hardware.
The former option instructs the installer to not auto-reboot before entering the text mode setup; this gives you a chance to safely shutdown the PC and migrate the drive to the new hardware. The latter option lets the installer copy all the CD contents to the hard drive. You do not need the CD drive on the new machine. This is useful when the drive letter of CD drive is expected to change on the new environment.

If the new interface for the hard drives (or for CD-ROM) is not supported by the OS in-box drivers, you may need to pre-create a driver floppy to optinally load during the text mode installation (hit "F6").
If the installation media is to old and the SP level is different, refer MS KB900871: How to integrate Windows XP Service Pack 2 files into the Windows XP installation folder to integrate the SP2 files.

I've not used it, but there are utilities like nLite to create a customized install CD with drivers, patches etc. pre-installed and pre-configured.

"Repair Windows" and the in-place upgrade may roll back lots of patches. It's highly recommended to run Windows Update right after the installation, but after you have installed the chipset drivers.

Once the machine boots up:

The first thing you might want to do is installing the chipset drivers, video drivers etc. Those are typically included in the mobo CD.

As a side note, the old CPU / chipset drivers etc. are still intact in the boot drive. Now you have a handy hard drive that will boot on both environment. I just let those old drivers sit in the drive, as I don't think there's real impact to the PC, but if you want to uninstall those, you still can even after those drivers disappeared from the device manager.

For the information, refer MS KB 315539: Device Manager does not display devices that are not connected to the Windows XP-based computer.
In a short sentence, set the environment variable devmgr_show_nonpresent_devices to 1, run devmgmt.msc, and choose "Show hidden devices" from the View menu.

Since 1996

一つ上へ

ホーム  ざれごと  ワシントン州  ツール  NT豆知識  Win32プログラミングノート  私的用語  ジョーク  いろいろ  ゲーム雑記  Favorites  掲示板   Mail