Hi, I have a Computer running Windows XP SP2 that keeps returning a G:|$mft corrupt error. I have looked everywhere to try and find a fix for this, but to no avail. It would appear to not effect anything except for the error message popping up and the system wanting to check disk on boot every time. Any clues?
I don’t have anything specific to that error, but what I’ll do instead is outline the various steps I take when attempting to diagnose and repair a problem of this nature.
Depending on the underlying cause, this could be a simple fix, or a disaster waiting to happen.
I’m going to classify hard disk problems into three broad categories:
- Soft: what I’ll call “soft” errors are errors in the data written to the disk. There’s absolutely nothing wrong with the disk itself, it’s simply that the data written to it has somehow become corrupt.
- Hard: what I’ll call “hard” errors are errors in the drive itself. Actual physical or electrical failure of some sort that would require the drive to be replaced or repaired.
- Firm: “firm” errors are those errors that are actual physical issues on the magnetic media of the hard disk, that can be repaired by software. This is going to cause the most confusion, since these types of errors can manifest in exactly the same manner as either soft or hard errors.
Here’s the problem: if you experience a failure, such as “$mft corrupt”, or an operating system that won’t boot, or a file that reports a CRC error, how do you tell what kind of failure you have?
Ultimately, you don’t. Just about any symptom of a hard disk failure could be a soft error, a hard error or something in between.
… if you experience a failure, … how do you tell what kind of failure you have?
So here’s what I do.
Start with what you have.
Every Windows system from Windows 2000 on comes with a command line utility called “CHKDSK”, short for “Check Disk”. That’s typically the first thing I do, fire up a Windows Command prompt and run “chkdsk”:
C:Documents and SettingsLeoN>chkdsk D: /f The type of the file system is NTFS. Volume label is NOTENQUAD1G. CHKDSK is verifying ... ...
Chkdsk’s primary function is to check for problems in the file system, in other words it checks for soft errors in the data that’s been written to the disk. If there’s a problem in the file system, chkdsk will attempt to correct it.
If the problem I’m experiencing has not been resolved by this, I then move on to the next step which is to run “chkdsk /r”.
C:Documents and SettingsLeoN>chkdsk D: /r The type of the file system is NTFS. Volume label is NOTENQUAD1G. CHKDSK is verifying ...
The “/r” switch instructs chkdsk to “Locate bad sectors and recovers readable information”, which starts to send chkdsk into the realm of what I’ve been calling “firm” and “hard” errors. “Bad Sectors” can happen for several reasons, and chkdsk will attempt to identify them, mark them as bad so they won’t get used again, and move any data that is readable to different sectors.
I run “chkdsk /r” separately because it can take significantly longer than regular chkdsk.
Try Heavy Duty Tools
If after “chkdsk /r” the disk still has problems, it’s time for a big gun: SpinRite.
SpinRite is not free. (At this writing,it’s $89.00 US.) But in the face of a hard disk failure and the potential for lost data it can often be worth every penny and then some.
SpinRite’s focus is on what I’ve called “firm” errors – those areas on the magnetic media of the disk that can be recovered by software. SpinRite is that software.
SpinRite actually pays no attention to the file system on the disk. It could be FAT32, NTFS, or even a Mac or Linux formatted disk, SpinRite doesn’t care. It looks only at each individual sector, one at a time, and attempts to ensure that the sector is readable. As a result SpinRite will not fix file system errors; it’s not looking for those, and that’s why we started with chkdsk above.
However, SpinRite can often fix what other tools cannot: unreadable sectors. SpinRite uses some fairly intense data recovery analysis to try to get the data from sectors that are unreadable through normal means.
And in fact, that’s one of the primary differences between “chkdsk /r” and SpinRite. When chkdsk encounters a bad sector it says “oh, I can’t read this, so we better mark it so we don’t try to use that sector again” – which loses the data in that bad sector. SpinRite instead will say “oh, this read failed – let’s use some other techniques to try to recover the data, and if that succeeds then we’ll decide whether the sector can be re-used safely”. You stand a significantly greater chance of recovering the data from a bad sector with a tool like SpinRite.
What’s the only downside of SpinRite? It can take a while. The time is proportional to the size of your disk and the number of problems it encounters along the way. But as I said, as with the money the time can also be an incredibly worthwhile investment if it means not losing your data.
The key to understanding SpinRite is simply this: it will not fix filesystem errors, that’s chkdsk’s job, and it cannot repair actual broken hardware. But what it can often do is recover data from a hard disk’s damaged magnetic media.
If SpinRite reports that sectors cannot be recovered or worse, then it’s time to consider replacement. Even if the disk is functional, for example with the intermittent error you’re seeing, I’d consider it too risky to continue to rely on. Copy off and backup what data you can, and replace the drive.
As I said above, the root cause of hard disk errors can be difficult to identify. A bad sector on the drive, if in the wrong place, could render a machine unbootable, could cause a program to randomly crash, could manifest as an actual “CRC” error … or could not show up at all. And all of those same symptoms could be due to corruption of data on the disk (soft errors), actual hardware failures (hard errors), or damaged, but potentially recoverable data on the disks magnetic media (“firm” errors).
Chkdsk plus SpinRite won’t resolve every situation, but knowing to use them may save you from data loss in many situations.