Also, most of the windows have been fresh installs (ive reinstalled / repair installed about 10-15 times) but ive always done the quick format in XP setup
Quick format is every bit as good as an unconditional format in this case, so this isn't a problem. Don't worry about this.
I get a hal.dll is missing or corrupt and cant boot.
This is
commonly caused by a missing or corrupted hal.dll (of course), an incorrect boot.ini or partition errors. I'm sure you've read all about this stuff in the course of trying to fix it...
With 32-bit Windows, you'll probably need to add the 'physical address extension' switch to your boot.ini. I've seen a number of systems that would only recognize about 3-3.5GB of memory unless PAE was added.
http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx
x64 should not have this limitation, but just a heads up for you.
If I install the nvidia ide drivers all hell breaks loose and I get delayed write failures on every drive and have to reinstall windows
This is worth more investigation.
The problem is that my computer boots fine and works A-OK (im typing on it right now) when the windows CD is in the drive. However, if I take the CD out and try to boot I get a hal.dll is missing or corrupt and cant boot.
I am going to take a moment to think out loud. To understand how this can happen, we need to understand the boot process. Here's how it works.
- System POST
- BIOS searches for the best possible bootable device and loads the MBR (AKA: master boot record, master boot sector)
- The MBR finds the active partition and passes control to the boot loader (NTLDR).
- NTLDR prepares for the boot process (Loads file system drivers to read FAT32 and NTFS).
- NTLDR loads boot.ini and displays the boot menu (if available)
- NTLDR begins to load Windows XP/2000 by running NTDETECT and loading HAL and NTOSKRNL.
That's about it. Now we need to figure out what relationship the Windows install disc has to a bootable installation of Windows XP. Unfotunately, I don't understand the boot process of the install CD as well. However, I do know the install disc will attempt to boot from any hard drive with a valid file system. When it passes control to the hard drive, it seems to pick up where the boot.ini is processed (step 5). This means that your hard drive is still in control of loading the Windows HAL... Hmmm, that doesn't make sense. How does booting from an install disc change how the HAL is loaded? To tell you the truth, I don't understand it either.
Things we know:
- This problem happened with Windows XP 32-bit
- This problem occurs with Windows x64
- Your system displays the "HAL is missing or corrupt" error and does not complete the Windows boot process
- This error goes away when the CD inserted
While I was out thinking about this, the
best possible explanations I could come up with were this... And bare with me, as these are the product of just sketchy brainstorming.
32-bit Windows missing or corrupted HAL due to memory limitations
This is pure speculation, but I would think it is possible to receive a "HAL is missing or corrupt" on certain systems if you do not use the PAE switch in your boot.ini. This would apply only to the 32-bit Windows. BUT, since your x64 install has the same problems, then this could only be correct if the missing HAL error is a coincidence on your x64 install.
x64 and 32-bit problems
If you somehow have managed to get a 32-bit NTLDR and a 64-bit HAL or a 64-bit NTLDR and a 32-bit HAL, then you would definitely get the "HAL is missing or corrupt" message. I don't have an explanation for how this would happen, but consider this.
IDE controller problems. Most likely cause?
I
feel this may be the problem. My reasoning is your BIOS successfully boots to your drive, but the problem seems to lie with Windows' boot process. NTLDR gets loaded, no problem. We can tell this because it actually gets to the point where it tries to load HAL. Somewhere between NTLDR and HAL things go awry. What happens after NTLDR is it loads its
own file system drivers. At this point, it reads boot.ini and loads HAL etc... Again, this is more speculation, but somewhere between this I think it would possible that your IDE/SATA driver issues could interfere with this process.
With this in mind, I would consider these things. If you're using F6 to install 3rd party RAID/SCSI drivers, try some different ones. Make a new F6 floppy with the latest or older nVidia drivers. Make sure you aren't getting the x64 and 32-bit IDE/SATA drivers mixed up. In your BIOS, consider using IDE emulation/mode for SATA. Also, consider disabling any 'AHCI' or 'enahnced SATA mode' options. Also consider disabling SATA II/300/3Gbps and enabling SATA I/150/1.5Gbps (if this is an option). You may even want to try lowering the speed of your SATA drive from 3Gbps to 1.5Gbps (usually possible through the manufacturer's disk utility)... As I have seen this cause problems on a couple of (Intel) platforms and it
could possibly be responsible for your IDE/SATA driver frustrations as well...
A clean install should fix this...
I know, this may contradict the troubleshooting steps you took previously. However, I'd like you to try it again - if - you don't have any data to hang on to. Try a clean install with Windows XP x64 and make sure to delete and repartition the drive this time. This should rewrite the the MBR and your problems
should go away. I'd also be interested in seeing if installing Windows on your RAID setup (or a different drive on a different controller) makes a difference or not.