Okay, so the Windows XP with SP2 computer boots up, and tells you that HAL.dll is missing or corrupt.
Here's what I recommend you to do. (No quotes around anything, of course. Make sure you replace all %variables% with the appropriate path for your machine =).
- Boot into the recovery console off a Windows XP SP2 CD. (Hit repair during setup...) Now, we're ready to do some work.
- First, check to make HAL.dll exists. Should be in %windows%\system32. If its not there, copy it over from %windows%\ServicePackFiles\i386 if possible. You can also do an expand ("expand x:\i386\hal.dl_ %windows%\system32") of the file off a Windows XP CD with SP2. (Make sure you're using the same CD version as the OS that was installed on the system!).
- Once that's done, nuke the boot.ini file on the root. Do "attrib -r -h -s -a boot.ini". Then delete it.
- Rebuild the MBR. "bootcfg /list" and then "bootcfg /rebuild" Load options, you'd want "/fastdetect"
- Run chkdsk /f
- Run fixboot
- Keep in mind - bad hardware is also a potential cause. The drive you're using may just be on its last legs.