|"I also tried bootcfg /rebuild, but after some time it stops scanning citing corrupted file ."|
That's a very unusual error
That's a relatively rare error.
Test your hard drive with hard drive manufacturer's diagnostics.
Seagate's SeaTools will test (almost) any brand of hard drive.
Do the long test.
The Dos bootable versions of SeaTools can test the hard drive when Windows will not load properly, or even when the drive has no data on it.
It the drive itself passes the test, any data problems on the drive can be fixed one way or another.
"Windows could not start because the following file is missing or corrupt:
Please re-install a copy of the above file.
I entered the recovery console to fix the problem using
expand d:\i386\hal.dl_ c:\windows\system32
but the recovery console is showing windows D: instead of windows C which is where my xp is installation is."
That error is relatively common.
If your hard drive is failing, that message may be an indicator of that as well, however, you can get that message because of many causes.
You can get a message about a file being corrupted or missing when there's nothing wrong with it - Windows sometimes can't tell you what the actual problem is and names a file that is affected by something else being out of whack.
If replacing the file doesn't cure your problems then they're caused by something else Windows hasn't identified.
That's usually the case when you replace hal.dll.
If you have only one Windows installation on your computer, then Windows is running from the D partition whether you were aware of that or not.
The C drive letter is not necessarily assigned to the partition Windows itself was installed on.
XP's (and 2000's) Setup assigns the drive letter to the partition Windows itself is installed on according to whether Setup detects other existing hard drive partitions that have already been assigned drive letters when Setup is run.
- If Setup doesn't detect any other existing hard drive partitions that have already been assigned drive letters when Setup is run, it assigns C to,.to the partition Windows itself is installed on.
- If Setup DOES detect any other existing hard drive partitions that have already been assigned drive letters when Setup is run, Setup assigns the first available drive letter alphabetically, NOT C, to the to the partition Windows itself is installed on.
OR - which drive letter is assigned to the partition Windows itself is installed on can depend on how the drive is connected or jumpered.
E.g - I have found that if you have an IDE hard drive jumpe ed / set as Slave on the same data cable as an IDE optical drive jumpered / set as Master, if Setup doesn't detect any other existing hard drive partitions that have already been assigned drive letters when Setup is run, it assigns C to the optical drive, D to the partition Windows itself is installed on.
You can see which partition drive letter Windows is running from in System Information, on the first page you see on the right side - the Windows Directory line.
(shortcut - Start - Run - type: msinfo32 , click OK or press Enter.)
You can change which drive letter is assigned to any hard drive partition or optical drive in Disk Management to any available drive letter between and including C and Z , EXCEPT that you CAN'T change the drive letter assigned to the partition Windows itself was installed on.
If something is using a drive letter you want to use, you can change the drive letter to another drive letter to free up the drive letter you want to use.
You can also change the drive letter assigned to a flash drive, memory card or memory card reader, or an external drive, but that's pointless unless you never unplug the drive or card or card reader - Windows will assign the first available drive letter when you plug the removable device back in,
"I entered the recovery console to fix the problem using
expand d:\i386\hal.dl_ c:\windows\system32 "
"to run the above command the access denied message is given, which I assume is because I'm trying to run the command from D.'
if you have only one Windows installation on a hard drive partition on the computer, there's probably nothing wrong with the Recovery Console find only D:\Windows for a Windows installation.
"Other commands like chkdsk /r and fixboot ran without any problem "
Then your problem with "expand d:\i386\hal.dl_ c:\windows\system32 " is due to something being wrong with what you typed.
- If you loaded the D:\Windows installation, the \i386 folder cannot be on D, unless you have an original brand name system software installation or a custom installation that has the \i386 folder on the hard drive.
- using the Recovery Console has restrictions that don't apply to using the same or a similar command in Windows itself.
E.g. you can only access the C:\Windows folder on the hard drive. If the hard drive DOES have the \i386 folder, you can't access it.
However ,you can access the Windows or whatever CD or DVD that is in an optical drive.
- if you were trying to expand the compressed file from the Windows CD, the drive letter assigned to an optical drive in the Recovery Console is not necessarily the same drive letter that was assigned to it in Windows itself.
If you're not sure which drive letter the Recovery Console is using for your optical drive with an XP CD in the drive, type the drive letter you think it might be, followed by a colon, press Enter, then type Dir, press Enter.
E.g. type: E: (press Enter), then type Dir (press Enter).
It will be obvious which drive letter it is by the result of doing that.
There are only a few folders on the XP CD, one of which is \i386 .