Two weeks ago, I had one of my SATA drive fail on my main home machine. This pc has an ASUS A7N8x board. I didn’t believe it was a hardware failure as this disk is pretty new. Unfortunately, the experience was pretty time consuming. This 200 GB drive has my main system partition on which XP with Service Pack 2 is installed. The first symptom was that on morning, my machine got stuck in a rebooting loop. It would post, then the Windows loading screen would flash for a couple of seconds, then the whole system would reboot. After fiddling with Safe mode and debug mode, which were useless, I tried the “no reboot on error” mode. This helped me figure out that there was a blue screen of death occurring. The problem was in ntfs.sys and the error was 0x00000024. I fired up my laptop and msnsearch informed me that this error was somewhat common.
0x00000024 NTFS_FILE_SYSTEM All file system bug checks have encoded in their first ULONG the source file and the line within the source file that generated the bug check. The high 16-bits identifies the file, while the lower 16-bits identifies the source line in the file where the bug check occurred.
The common solution was to use chkdsk on all of the drive’s partition. However, the solution was not so simple when the system’s operating system is installed on one of these NTFS partitions. After spending much of my weekend reading technical forum posts and trial and error, here is the solution I have used. It requires:
- A Windows 2000 installation CD
- 4 floppy disks for the 4 Windows 2000 boot disks
- A 5th floppy disk with the ASUS SATA drivers
- About 12 hours for the surface scan that chkdks will do
I started by creating the 4 boot disks on another machine. I used the boot disks from this website, which hosts various boot disks from all of the possible operating systems. On the first bootdisk, there is a 100kb config file in which you need to comment out the ntfs.sys driver like:
[FileSystems.Load]
fat = fastfat.sys
;ntfs = ntfs.sys
I then used the 5th disk to store the SATA drivers from the ASUS website, which are required in order to have access to any SATA drives during the Windows installation process.
After that, the fun begins. You can boot the 1st boot disk and quickly press F6 so that Windows allow you to specify custom hard drive drivers. You will not see a confirmation that the F6 key has registered, but it should prompt you after you load all of the 4 Windows 2000 disks. If not, reboot and restart the whole process.
After loading the SATA drivers from the 5th disk you created, you will then be able to load the “Repair / console” mode. This mode allows you to do minor modifications to the system, while in a console environment. From there, you will be able to use chkdks to potentially fix your partitions. However, chkdks is NOT included on the Windows 2000 boot disks. This is where you will need to have a Windows 2000 CD in your cd-rom drive. Note that If you have an XP CD in, chkdks will cause a blue screen, and will require you to restart this whole operation. You then need to use chkdsk to fix the errors on all of the NTFS’s partition. I used this command to force a chkdks:
chkdsk /r x: (/r forces a scan and x: is the drive’s letter)
Finally, reboot the machine and marvel at a working xp system. The solution comes partly from http://support.microsoft.com/?kbid=228888 which I adapted a bit. I have read that Windows 2003 might handle these errors better but I did not have access to a Windows 2003 cd at the time.
Fortunatly, all my data was recovered. Hopefully, this guide will save some pain for the next time this happens
Carl