Move Windows XP System To Newer Hardware

I am trying to move a 32-bit Windows XP Home system from an Intel D875PBZ motherboard (Pentium 4, PATA HDD) to a Gigabyte GA-78LMT-USB3 (AMD, 64-bit, quad core, PATA HDD) without losing any programs/settings. I proved that 32-bit XP can be installed on the newer computer by doing a fresh installation (XP SP2 CD-ROM, no extra drivers). Now I want move the old system over, but it crashes during booting, even when choosing Safe Mode.

Originally, I got quick BSODs, but after using RegEditPE to copy over the System branch from the fresh installation’s registry, it gets to where it shows a mouse pointer, shows a green-blue screen and then crashes, seemingly right before the “Loading personal settings…” pop-up box, which is right before the desktop shows.

I don’t have much experience going this deep into the XP boot process, so I don’t know how to track what is crashing here. Does anyone have any thoughts?

@FingerOnTheDonateBut

it’s best to make an image of your current XP HDD and then just make a copy of the HDD for the new system.

I use paragon rescue kit free to do this.

Thank you, @infuscomus ; that’s what I tried to do using Macrium’s Reflect. The two machines are very different; but it now boots up until the point where the Window’s animated bar goes away and the mouse pointer shows on the screen. Then it reboots itself.

@FingerOnTheDonateBut

try booting into safe mode?

It does the same thing when trying Safe Mode. The words “Safe Mode” appear at the borders of the screen and then it reboots.

I don’t know what the OS is doing at that point in time. Is there a way I can find out? I’ve read about the XP boot process, but it doesn’t give me enough information.

@FingerOnTheDonateBut

OK, press F8 and select "Disable Automatic Restart on System Failure"

when it fails you should get a BSOD now - take a pic of the BSOD and upload it.

It is not a BSOD; it is Windows XP that crashes. I tried the F8/"Disable Automatic Restart on System Failure" and once the mouse pointer appears, the machine just reboots.

hey @diderius6
do you have any idea what the problem could be for this one?

@infuscomus

The Paragon Rescue Kit works good, but only on the same compi later.
When you want to tranport a working XP from one compi to another,
most reason for fail is the AHCI driver.
When this happens very early in boot process, you get BSOD 7B,
but this can also happen later, I have had the same symptoms as described here on the Baytrail compi.
I overcome this problem, just using boot via USB or via nvme. Sometimes F8 helps.
For most people I think, it is not a good idea to tranport a working XP to another compi.
Save all your photos etc. and set up a fresh XP, this will run stable.

When for some reason you really need to transport XP, just disable on the old compi nearly every device in Device Manager
and in Bios, all what is not needed for an emergency boot.
Make a try also with msconfig in comandline, Diagnosestart.

It is one device, which makes this crash. I have had AHCI driver, soundcard, lan, change Intel<>AMD, or even a defect new motherboard,
which crashes XP from transport to another compi
Dietmar

These are good ideas, thanks to both of you.

I did get a 7B BSOD early in the boot process, but I fixed that with the registry hive change (I described it in my first post).

Do you think AHCI could still be the problem since I used a PATA/IDE drive, with the AHCI turned off in the BIOS (the BIOS is set to "Native IDE")?

@FingerOnTheDonateBut
If you can enable pur IDE in Bios it should work.
I have had the crazy situation, that in Safe Mode (F8) one driver was used (all ok)
but on normal boot the faulty AHCI driver. This was exact as you describe: I can see the mouse pointer and than crash.
I recogniced, that in this late period of the boot process the AHCI driver was changed by XP SP3
Dietmar

I am already using the Native IDE setting in the BIOS. Mine won’t boot into Safe Mode. But what you said about the second AHCI driver would make sense. I don’t know where to look for that driver.

Since a fresh XP installation works, I wanted to copy the fresh installation’s registry’s HKLM\SYSTEM branch to my old drive’s registry, but the tools won’t let me delete it first.

Thank you for your ideas.

I tried many things over many months, but one thing I haven’t tried: Macrium Reflect’s ReDeploy feature which supposedly specializes in adding/loading proper drivers for the new target hardware when restoring a backup image of the old machine. Since there was no guarantee with the US $75 purchase price (and for other reasons), I eventually settled upon doing a fresh installation instead. I posted this half-answer here since it may help someone.



I have written a complete method to transfer the Windows 2000 or XP system to another computer with a copy and paste.
I haven’t had a Windows installation for many years.
The ideal is to create, from a clean system, a base system with essential programs to paste in all the computers you use.
It may seem a few complicated to create the initial copy but once the master copy has been obtained it is very easy to paste this installation on all computers.
I have written the method in Spanish. I’m going to paste it here with Google Traslate (sorry for the translation errors), I also leave the original link in Spanish:
https://foro.elhacker.net/windows/como_clonar_windows_hacia_otro_ordenador_con_un_copia_y_pega-t489245.0.html

To do this there are 2 systems, the official Microsoft that I show you first (limited to 3 computers for a license) and the unofficial system written by me that has no limits.

Official System
Sysprep (maximum on 3 computers with the same license number)
It is on the Windows installation disc or Windows \ System32 \ Sysprep
Starting from a base installation, Sysprep is used to clone the system on computers with the same hardware or different hardware.
It really does not get around the system with a clone of copy and paste but with a Windows system installer with pre-installed programs.
Important this deletes personal information and drivers from the base computer!
For example the operating system that comes on brand laptops with their own installed programs is made with Sysprep.
https://msdn.microsoft.com/en-us/library…sprepExecutable
https://docs.microsoft.com/en-us/previou…c721940(v=ws.10)
https://jinetedeldragon.wordpress.com/20…ows-sin-fallar/
http://eltallerdelbit.com/sysprep-windows
http://www.ite.educacion.es/formacion/ma…el_sistema.html



Informal or unofficial system

With the following method, you can make a clone of any NT5 operating system to transfer to other computers with a copy and paste of the image of the system partition that contains all our installed and configured programs.

-It basically consists of replacing certain drivers of the source operating system with generic drivers and re-assigning the letter of a cloned Windows drive if the letter of the destination partition does not match the original drive letter.
-It has been proven that it works by transferring the cloned Windows system from older computers to newer computers but it has not been tested in reverse.

-I recommend previously making a backup copy of the system configuration files using the "WinRescue" program.
—> Windows / system32 / config folder
-I also recommend making a copy of the complete image of the system partition beforehand to restore it in case of problems.

-For the transfer to SATA computers, configure the BIOS or UEFI emulating "standard PCI" IDE until booting and installing the corresponding SATA drivers or the system in the destination computer will not boot.
(In case the option does not exist, the SATA drivers of the destination computer must be installed on the source computer using "Add Hardware")

PREPARATION IN THE BASE OR ORIGIN SYSTEM

Windows 2003:


-It should work just by replacing the IDE / ATA / ATAPI Controller in the device manager with …

-Standard PCI IDE dual channel controller.

Windows Xp:

-It should work just by replacing the IDE / ATA / ATAPI Controller in the device manager with …

-Standard PCI IDE dual channel controller.

However, on the Internet there are descriptions of compatibility problems, even with the computer itself,
If you want to safely avoid applying both the same methods described in Windows 2000 and Windows 2003.

Windows 2000:

Methods with ACPI and without ACPI are described.

With ACPI

In practice you can also clone Windows 2000 just by replacing the IDE / ATA / ATAPI Controller in the device manager with …

-Standard PCI IDE dual channel controller.

But chances are we are going to run into ACPI compatibility issues on the target computer. So to make sure we either clone 2 images (one with ACPI and one without ACPI) or we only clone the system without ACPI.

Without ACPI

-In the device manager replace the existing drivers with the following …

Equipment replace by …
-Standard PC (all ACPIs or the like will be disabled on restart).
-Reboot the system and install the drivers that are automatically requested.
(the desktop icons will be disordered and the interface will be shown in 16 colors resolution 640x480)
-Reboot the system again.

IDE / ATA / ATAPI controller replace with …
-Dual Channel PCI IDE Standard Controller
in the case that the system comes from an IDE / ESDI controller, go to "Control Panel" to "Add Hardware" and add "Dual Channel PCI IDE Standard Controller" in the position in which fewer resources conflict (then is solved), the same but vice versa in the case of reverse transfer.

-Reboot the system.

“” ”WITH THESE STEPS ALL THE SYSTEMS I HAVE TESTED HAVE STARTED BUT FOR MORE SECURITY WE CAN ALSO CHANGE:” ”” ”

In system devices we will find a list similar to this, we will proceed to change the devices underlined by the indicated drivers.

-Disk Manager -> "Logical Disk Manager"
-System Speaker -> "System Speaker"
-Bus -> "Generic bus"
-Programmable memory access controller -> "Programmable memory direct access controller"
-Programmable interrupt controller -> "Programmable interrupt controller"
-System Controller and Graphics -> "Standard Host CPU PCI Bridge"
-Interface Controller -> "Standard ISA PCI Bridge" (may be renamed to "Standard ISA PCI Bridge")
-Advanced programmable interrupt controller -> "Programmable advanced interrupt controller"
-System stopwatch -> "System stopwatch"
-Microcode update device -> "Microcode update device"
-Parallel class enumerator -> "Parallel class enumerator"
- Plug and Play software device enumerator -> "Plug and Play software device enumerator"
-Number data processor -> "Numeric data processor"
-PCI Bridge -> "Standard PCI Bridge from PCI to PCI"
-ISAPNP read data port -> "ISAPNP read data port"
-Motherboard Resources -> "Motherboard Resources"
-CMOS system / real time clock -> CMOS system / real time clock
-System card -> "System card"

If there are more devices than those mentioned here, such as "SMbus Controller" or "Firmware Hub Device", uninstall them.

In Monitors :
Optional, depending on the monitor to be installed, it can be left as "Default monitor" or "Plug & play monitor"
and in case of problems put as "VGA standard 640x480" or "Generic television" (both will mess up the desktop icons)

Important: It is essential not to restart the operating system at this time !!!

PERFORMING THE BACKUP
-Apply in any case, before cloning, step 1 of the section "Modification of the default assigned drive letters" so that the user configuration loads with any drive letter that we can use later.
Run "regedit" to open the Windows registry
We came in…
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ Current Version \ Winlogon \ Userinit: Reg_SZ:
It will show the key "x: % windir% \ system32 \ userinit.exe,"
We exchange it for
"Userinit.exe," (with the comma after the .exe)
-Shut down the system and do not restart.
-Copy the system using an image cloning tool (such as R-Drive, Ghost, etc.) or copy it directly from the hard disk from another operating system
-Paste the copy to the destination computer in the same way.
-Boot the target system.
-Once we have verified that the drive letters are correct, we can now update the drivers on the destination computer and start working normally.

I recommend making both copies, one with the R-Drive 4.7.4737 program boot CD (latest compatible version 586 and latest with classic interface, in later versions the information does not look good on the screen according to the monitor used due to the resolution , also being more messy) and another copy manually from another operating system with a copy and paste of all folders, from the system itself can not (checked that it works in FAT32, in NTFS I have not tried)

Read before cloning the sections "Assignment of drive letter" and "Modification of drive letters".

Solutions in case there are still problems after cloning:
-Try to install the drivers of the destination computer on the source computer using "Add Hardware", turn off and not restart the source computer.
-Configure in the BIOS of the destination computer "standard PCI" instead of SATA until installing the drivers.
-Remember to mark the "active partition" (the boot partition) from the Windows "disk manager" of another computer or a partitioning utility provided by third parties on the hard disk of the destination computer and edit the boot.ini file with a Plain text editor like notepad.

Trick: To make the system partition take up less space before copying it, delete the files hiberfile.sys and pagefile.sys corresponding to the hibernation and paging file from another operating system.

Experimental note 10-26-2018: If when updating the ACPI drivers on the target computer, there is a case of incompatibility of the BIOS with the Windows 2000 ACPI, temporarily disable ACPI in the BIOS or choose the configuration compatible with other modalities. ACPI (S1, S3 …). Try to start with all and if you still do not do it (maybe now due to driver incompatibility) return to the normal ACPI in the BIOS, if you start Windows (sometimes yes, sometimes no) disable ACPI permanently configuring the computer as «Standard PC

Experimental note 10-26-2018: If when updating the ACPI drivers on the target computer, there is a case of incompatibility of the BIOS with the Windows 2000 ACPI, temporarily disable ACPI in the BIOS or choose the configuration compatible with other modalities. ACPI (S1, S3 …). Try to start with all and if you still do not do it (maybe now due to driver incompatibility) return to the normal ACPI in the BIOS, if you start Windows (sometimes yes, sometimes not) disable ACPI permanently configuring the equipment as "standard PC" in Windows 2000 Device Manager.
If none of this starts, you have to reset the system configuration (folder% windir% / SYSTEM32 / CONFIG) by pasting it from the cloned copy of Windows and this time do not install the ACPI drivers in the target Windows.



UNIT LETTER ASSIGNMENT (modified text 10/31/2018)

To avoid problems paste the clone of the system image in a partition that assigns the same drive letter and the system will boot directly.

Although the cloned system can also be pasted into any partition on the hard disk (choosing a logical drive, the boot boot must be pasted into a primary one) if the drive letter assigned by Windows to this partition is different from the original, we will have to correct it by the same letter that the operating system had on the old computer modifying the system registry.

The order in which Windows will assign the drive letters by default starting with the letter C: for partitions of a new MBR disk installed without the company of other hard disks is the following :
A: and B: are reserved for floppy drives.

1st active primary partition, there can only be one regardless of the order in which it is on the hard disk.
2nd logical partitions in order of location on the hard drive.
3º "not active" primary partitions in order of location on the hard disk.

Example 1 with three partitions, two primaries and one logic:
C: Active primary partition.
D: Logical partition.
E: Primary partition "not active"

Example 2 with five partitions, three primaries and two logics:
C: Active primary partition.
D: First logical partition.
E: Second logical partition.
F: First primary partition "not active"
G: Second primary partition "not active"

Example 3 with four partitions, the four primaries:
C: Active primary partition
D: First primary partition "not active"
E: Second primary partition "not active"
F: Third primary partition "not active"

Notes:
-The active partition can be in the operating system that we are using or in another partition.
-Each hard disk has in the MBR assigned the disk signature associated with the volume GUID to identify itself in Windows.
-Windows provides each partition of the hard disk and other storage devices with identification numbers to store the corresponding drive letter.
-The drive letter information is saved in the individual registry of each operating system, so if only one system is modified, these will change only in the modified Windows. By keeping other Windows systems installed on the same computer the drive letters assigned by their own individual registers.
-When transferring the system image from one hard disk to another, the information of the drive letters are assigned to another identification number and therefore Windows re-assigns the drive letters to the order carried out by default that has been previously described.
-The tests, to identify the default drive letters, have been carried out from a live CD with only one hard disk installed, so that the identification number assigned at each restart can be reset for the same hard disk.
-In the case of having more hard drives installed this order changes.

"The ideal is to initially create a maximum of 3 or 4 primary partitions so that the letters are in a sequential order keeping a single hard drive connected and thus not make a mess. Once the final drive letter is assigned, we can now create extended partitions with logical partitions , as well as adding other hard disks, since Windows will have already saved the information corresponding to the drive letters. If we have to paste the copy of the clone from another hard disk on the destination computer, the ideal is to disconnect it once it is pasted "

Modifying default assigned drive letters

"If the clone of the Windows installation is pasted in a partition with a different drive letter, than the original installation, we must edit the registry remotely or if the user configuration is loaded, it will enter an infinite loop"
https://support.microsoft.com/es-es/help…ter-has-changed
(kb / 249321)

STEP 1 We change the drive mapping to userinit.exe
From the source computer before copying:
This step can be done before copying the system, regardless of the assigned drive letter, thus saving us from doing it every time we paste the copy into a new partition and not needing to do it remotely as described by Microsoft in order to solve problems in Windows.
-Run "regedit" to open the Windows registry
-We came in…
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ Current Version \ Winlogon \ Userinit: Reg_SZ:
In Windows 2000 it will show the key "C: \ WINNT \ system32 \ userinit.exe,"
and in Windows XP / 2003 it will show the key «x: \ Windows \ system32 \ userinit.exe,»
We exchange it for
"Userinit.exe," (with the comma after the .exe)
-We close the registration and we can proceed to make the copy without further delay.

From the destination hard drive, if we have not performed this step on the source one or if we want to ensure that everything is correct.
-Before starting the newly cloned system, it is necessary to modify the system registry through a different Windows operating system located on any computer on which the hard disk is installed, such as a previous system, a live CD or inserting the hard disk in any another computer.
(Windows XP minimum, since the Windows 2000 editor has no remote registry)
-Run "regedit" to open the local Windows registry
-Select the HKEY_LOCAL_MACHINE key
Load the remote registry:
-In the top menu of the editor go to file + load subtree and we choose within the directory of the hard disk that we intend to start:
For Windows 2000 C: \ WinNT \ system32 \ config \ software (file without extension)
For Windows XP / 2003 x: \ Windows \ system32 \ config \ software (file without extension)
-We give any name to the foreign key that we are going to edit.
-It will appear inside HKEY_LOCAL_MACHINE, now we enter it and go to
HKEY_LOCAL_MACHINE \ given_name_by_ us \ Microsoft \ Windows NT \ Current Version \ Winlogon \ Userinit: Reg_SZ:
In Windows 2000 it will show the key
"C: \ WINNT \ system32 \ userinit.exe,"
and in Windows XP / 2003 it will show the key
"X: \ Windows \ system32 \ userinit.exe,"
We exchange it for
"Userinit.exe," (with the comma after the .exe)
-Back in the registry and mark the created tree, go to the top menu of the registry and select file + download subtree

Optionally, after performing step 2, you can restore the drive letter in x: % windir% \ system32 \ userinit.exe, but not before, since at the first boot of the cloned system the drive letter will be different.

STEP 2 We reassign to Windows 2000 the C: \ drive or the correct drive to Windows XP / 2003
(Windows 2000 applications only link to drive C, regardless of the partition in which it is installed)
https://support.microsoft.com/es-cl/help…tter-in-windows
(KB / 223188)

-After performing step 1, we must start Windows on the target computer in order to "automatically mount the new storage drives" in the registry key MountedDevices \ ?? \ Volume {xxxxx}
Old drives that were assigned to drive letters now occupied will be automatically unmounted (deleted) from the registry.
-Important: To log in the first time in our user we must press "control + alt + delete" a couple of minutes after the appearance of the mouse cursor.

The system should already work, but it will partially:
In Windows 2000 the links of the system utilities always point to the drive letter C: and paradoxically Windows 2000 will assign to the 1st active partition of the first hard drive that drive letter C: even though the system is pasted in another partition, so unfortunately the shortcuts will not work until we manually assign Windows 2000 the letter C.
In Windows XP / 2003 the shortcuts of the installed utilities are automatically changed to the system drive letter so that the applications appear linked independently of changing the drive letter. However, this modification does not occur in various system applications such as those that depend on the MMC console, such as device manager. Also buttons like turning off or restarting the system will stop working.

To solve it we will carry out the following step:
-With the cloned Windows already started we observe which drive letter has been assigned to our new system.
Then in the registry we go to HKEY_LOCAL_MACHINE \ SYSTEM \ MountedDevices and manually change the letter that was automatically assigned to the system unit by the correct letter in the list of units shown in \ DosDevices.
Or we close the cloned Windows * and start another parallel Windows system (minimum XP) to edit the registry remotely by selecting the key HKEY_LOCAL_MACHINE, choosing in the top menu of the editor file + load subtree and choosing within the Windows directory that we intend to start. :
for Windows 2000 x: \ WinNT \ system32 \ config \ system (file without extension)
for Windows XP / 2003 x: \ Windows \ system32 \ config \ system (file without extension)
giving any name to the foreign key that we are going to edit. This will appear inside HKEY_LOCAL_MACHINE, now we enter it and go to \ MountedDevices where we will manually change the automatic assignment of the system drive letter in the drive letter listing \ DosDevices.

For example in the case of original Windows 2000 it is always in a partition with the letter C :, but the clone can be pasted into a partition that is automatically assigned the letter D: then we go to the listing \ DosDevices with the intention of renaming
\ DosDevices \ D:
by
\ DosDevices \ C:
and
\ DosDevices \ C
by
\ DosDevices \ D
For this we first rename \ DosDevices \ C: to an unassigned drive letter such as Z and then rename \ DosDevices \ D:
by \ DosDevices \ C: to end up renaming \ DosDevices \ Z: by \ DosDevices \ D:

In this way the partition that pointed to the letter E: is now assigned to the letter D: the Windows XP / 2003 clone can bind all its internal functions when starting to use the letter of the original installation.
If we did it from Windows XP / 2003 itself, we restarted with the command shutdown-r at the command prompt; If we do not go back in the registry and mark the created tree, we go to the top menu of the registry and select file + download subtree and restart by starting the new Windows XP / 2003 system.

Another method is to proceed by deleting \ DosDevices \ E:
(being careful never to delete the mounted volumes \ ?? \ Volume {xxxxx} or \ DosDevices \ A:):
and rename
\ DosDevices \ D:
by
\ DosDevices \ E:

In this way for Windows XP / 2003 the partition that pointed to the letter D: is now assigned to the letter E: and when restarting the system it will take the first available letter that is D:

3º The rest of the drive letters assigned within each operating system to various partitions we will rename at our whim with the Windows "disk manager".

Once these steps are done, we can update the drivers on the destination computer and start working normally.


CHANGE THE ORIGINALLY ASSIGNED UNIT LETTER

In theory we can also change the original drive letter for a different one but the change will not be made correctly for all applications, so in principle it is not worth trying this step.

-The methods of re-assigning through some third-party program the shortcuts of the applications have not worked for me.
-You can also try to reinstall the operating system with the repair option "R" contained in the Windows installation disc, but shortcuts and various system settings such as services will not be altered.
(For example, Avast will no longer boot and ask for KB to reinstall, Dragon Naturally Speakig won’t boot either, codecs may not work, etc.)

HAL CHANGE so that the system recognizes all the cores.

On Windows 2000 (v. Professional by default limited to 2 cores) we will have to choose the correct PC type in the device manager and restart the system.

On Windows XP it is more complicated:
Method 1 - Copying
We enter the folder \ WINDOWS \ Driver Cache \ i386 and look for the files for the corresponding hal in this order of appearance by copying them to a separate folder and then renaming them or not copying them to the system32 folder:
1-The own folder i386 uncompressed
2º-Extracting the sp3.cab file or the most current service pack installed.
3º-Extracting from the driver.cab file


-PC standard, without ACPI or APIC:
we extract ntoskrnl.exe ntkrnlpa.exe hal.dll and copy them into the system32 folder
Note: If the system comes from an ACPI device it may be necessary to manually add the "Apm / Legacy Compatible in Windows NT" device to enable APM shutdown, as well as clear the ACPI-related controller entries in HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services, such as ACPI, ACPIEC, cmbatt, battc and compbatt
(the system actually hides them automatically by installing new compatible drivers)

-Equipment compatible with Advanced Configuration and Power Interface (ACPI), with ACPI but without APIC:
we extract ntoskrnl.exe ntkrnlpa.exe halacpi.dll, rename halacpi.dll by hal.dll and copy them to the system32 folder.

-Monoprocessor ACPI of PC, with ACPI and APIC (monoprocessors with ACPI)
we extract ntoskrnl.exe ntkrnlpa.exe halaacpi.dll, rename halaacpi.dll by hal.dll and copy them to the system32 folder.

- ACPI multiprocessor equipment, with ACPI, APIC and multiprocess (multicores or HT as Pentium IV HT)
we extract ntkrnlmp.exe ntkrpamp.exe halmacpi.dll, rename them correlatively by ntoskrnl.exe ntkrnlpa.exe hal.dll and copy them into the system32 folder.

We restart and once the system has booted we wait a couple of minutes until the system asks us to restart again.

Method 2
We enter the folder \ WINDOWS \ Driver Cache \ i386 and look for the files for the corresponding hal in this order of appearance:
1-The own folder i386 uncompressed
2-Extracting the sp3.cab file or the most current service pack installed.
3-Extracting from the driver.cab file

We copy them to another folder, rename them as indicated and paste them into the system32 directory

-PC standard, without ACPI or APIC:
ntoskrnl.exe ntkrnlpa.exe hal.dll
renamed by ntos.exe ntospa.exe hal1.dll
Note: If the system comes from an ACPI device it may be necessary to manually add the "Apm / Legacy Compatible in Windows NT" device to enable APM shutdown, as well as clear the ACPI-related controller entries in HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services, such as ACPI, ACPIEC, cmbatt, battc and compbatt

-Equipment compatible with Advanced Configuration and Power Interface (ACPI), with ACPI but without APIC:
we extract ntoskrnl.exe ntkrnlpa.exe halacpi.dll
rename us ntos.exe ntospa.exe hal2.dll

-Monoprocessor ACPI of PC, with ACPI and APIC (monoprocessors with ACPI)
we extract ntoskrnl.exe ntkrnlpa.exe halaacpi.dll
renamed by ntos.exe ntospa.exe hal3.dll

- ACPI multiprocessor equipment, with ACPI, APIC and multiprocess (multicores or HT as Pentium IV HT)
we extract ntkrnlmp.exe ntkrpamp.exe halmacpi.dll
we rename by ntkr.exe ntkrpa.exe hal4.dll

APIC offers more IRQs

(4 characters are renamed + 4 characters adding pa + a different name for the new hall)
The first 3 hall share files.exe and the dlls are numbered hall1, hall2, hall3, hall4 instead of hallnew.dll to be able to put them all in a clone of Windows and use the convenience of the system in which the installation is pasted.
Now it is necessary during the first Windows boot to add in the final part of the boot.ini file the load of the new hall for Windows to install (/kernel=archivo1.exe /hal=halx.dll)
Once the system is booted, it is deleted by restoring its previous content and we wait a couple of minutes until the system asks us to restart again.

For example:

Standard PC, without ACPI or APIC:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos / kernel =ntos.exe /hal=hal1.dll

-Equipment compatible with Advanced Configuration and Power Interface (ACPI), with ACPI but without APIC:
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos / kernel =ntos.exe /hal=hal2.dll


-Monoprocessor ACPI of PC, with ACPI and APIC (monoprocessors with ACPI)
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos / kernel =ntos.exe /hal=hal3.dll

- ACPI multiprocessor equipment, with ACPI, APIC and multiprocess (multicores or HT as Pentium IV HT)
[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos / kernel =ntkr.exe /hal=hal4.dll

We can also create a supercharger by leaving the first line intact and adding all the mentioned lines in order to start the clone directly on any computer. Deleting all the added lines later:

[boot loader]
timeout = 30
default = multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS
[operating systems]
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "Microsoft Windows XP Professional" / fastdetect / noexecute = optin / sos
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP standard PC" / fastdetect / noexecute = optin / sos /kernel=ntos.exe /hal=hal1.dll
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP ACPI monoprocessor" / fastdetect / noexecute = optin / sos / kernel =ntos.exe /hal=hal2.dll
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP ACPI and APIC monoprocessor" / fastdetect / noexecute = optin / sos /kernel=ntos.exe /hal=hal3.dll
multi (0) disk (0) rdisk (0) partition (1) \ WINDOWS = "XP ACPI and multiprocessor APIC" / fastdetect / noexecute = optin / sos / kernel =ntkr.exe /hal=hal4.dll

Note: When you switch from non-ACPI equipment to ACPI and vice versa, the process of reinstalling all the controllers starts.

Wow; that is an incredible write-up! Thank you for posting it. If I ever have to tackle the problem again, I’ll refer to your informative post!

@FingerOnTheDonateBut



Ahh, Cixert did a wonderful detailed write up but I didn’t have time to digest it.

First off I would suggest you DO NOT even waste your time to migrate your XP to another newer system.

Aside from the headaches of IDE vs SATA issues you have one major one already you are not aware of.

The XP Home Edition only can support one core I believe and your quad core system would only use just 1 core wasting 3 cores.

Do a completely new installation so your registry is clean using XP Professional so you can utilize all your CPU cores. If you have 64GB of RAM installed then I would venture to go for Server 2003 DC 32-Bit instead or XP Pro 64-Bit.

Not worth all the time to migrate and to be constricted to 1 core. I know it may be annoying to reinstall all your software from scratch but in the end you’ll thank me knowing how much faster the system runs with all cores detected. It’s amazing going from a Pentium 4 to an Ivy Bridge Quad Core. So you can imagine now it is worth doing it the right way then be lazy and cheat the system hoping everything still works the same once you’ve moved it onto the new system.

Also I don’t recommend you migrate from an Intel P4 to an AMD system. You are better going from an Intel P4 to an Intel Ivy Bridge and have less problems assuming you really want to do this. Forget doing an Intel -> AMD migration I think you’ll have problems that I won’t even get into nor have time to troubleshoot. Also an added benefit is the Intel iGPU has XP driver support versus your 990FX AM3+ motherboard which might not have it for the APU. And the Ivy Bridge I believe has the most powerful CPU IPC to any AM3+ CPU of that era.

By the way you can keep the finger off the Donate Button. Listen to my advice and do it right and then report back your results. :wink:

Thank you for your response, too. It was a learning experience as I had never attempted an upgrade like that before.

That’s interesting about the cores issue–that would have been a bummer to learn at the end.

As this was 10 months ago, I eventually did a fresh installation and immediately upgraded to Windows 7. Certain software was being deprecated at the time and I figured if I was going to have to reinstall everything anyway… I did use that AMD machine since it was free and it suits my elderly parents’ usage well.

(This was typed on that old Pentium 4. :wink: