Stephen said:
You'll probably need to expand the file from the CD.
Type this command:
expand d:\i386\hal.dl_ (substitute "d" for the letter of your CD drive)
c:\windows\system32\hal.dll.
Messages about a missing hal.dll imply that there is a corruption of the
boot.ini file. That tells the boot where to look for windows
components, and it is looking in the wrong place. Hal.dll just happens
to be the first file it looks for.
Set the BIOS to boot CD before Hard Disk. Boot the XP CD and, instead
of Setup, take the immediate R for Repair. Assume any password
requested is blank, and TAB over.
Give:
ATTRIB -H -R -S C:\Boot.ini
DEL C:\Boot.ini
(thus deleting the old one)
BootCfg /Rebuild
A continuous rebooting though indicates either a missing ntdetect.com
(which can probably be met with adequately by copying back from the
D:\i386 folder of the CD to the root of C

- or else *possibly* that
the Winlogon userinit entry is being set to "wsaupdater.exe," and not
"userinit.exe,".
For that, Kelly suggests that at that Recovery prompt you
Change the C:\Windows prompt to: C:\Windows\System32
with
CD \Windows\system32
and copy userinit.exe
to wsaupdater.exe
Reboot into Safe Mode and run regedit.exe - open to modify:
userinit in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon from wsaupdater.exe, to userinit.exe,