CHKDSK showing same error even after fixing (Windows 7 SP1)

I have a 6TB data hard drive (SATA mechanical) on my Windows 7 SP1 (64-bit) computer. It isn't my boot drive. I just use it to store data files.

This morning my computer froze and showed blue screen of death (I was testing experimental software). It then rebooted.

After the reboot, I let it settle down then did the usual CHKDSK on all drives.

CHKDSK D: showed this result:

C:\Windows\system32>chkdsk d:
The type of the file system is NTFS.
Volume label is DATA.

WARNING!  F parameter not specified.
Running CHKDSK in read-only mode.

CHKDSK is verifying files (stage 1 of 3)...
  955904 file records processed.
File verification completed.
  3679 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
  1056164 index entries processed.
Index verification completed.
  0 unindexed files scanned.
  0 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
  955904 file SDs/SIDs processed.
Security descriptor verification completed.
  50131 data files processed.
CHKDSK is verifying Usn Journal...
100 percent complete. (754974720 of 754974952 USN bytes processed)
Examining Usn Journal file record segment.
  754974952 USN bytes processed.
Usn Journal verification completed.
Windows found problems with the file system.
Run CHKDSK with the /F (fix) option to correct these.

   5723036 MB total disk space.
   5152491 MB in 789170 files.
    344292 KB in 50132 indexes.
         0 KB in bad sectors.
   6133411 KB in use by the system.
     65536 KB occupied by the log file.
 577760848 KB available on disk.

      4096 bytes in each allocation unit.
1465097471 total allocation units on disk.
 144440212 allocation units available on disk.

So I promptly ran CHKDSK D: /F /V to fix the problem. The results are shown below.

C:\Windows\system32>chkdsk d: /F /V
The type of the file system is NTFS.
Volume label is DATA.

CHKDSK is verifying files (stage 1 of 3)...
  955904 file records processed.
File verification completed.
  3679 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
  1056164 index entries processed.
Index verification completed.
  0 unindexed files scanned.
  0 unindexed files recovered.
CHKDSK is verifying security descriptors (stage
  955904 file SDs/SIDs processed.
Cleaning up 1 unused index entries from index $SII of file 9.
Cleaning up 1 unused index entries from index $SDH of file 9.
Cleaning up 1 unused security descriptors.
Security descriptor verification completed.
  50131 data files processed.
CHKDSK is verifying Usn Journal...
100 percent complete. (754974720 of 754977872 U
Repairing Usn Journal file record segment.
  754977872 USN bytes processed.
Usn Journal verification completed.
Windows has made corrections to the file system

   5723036 MB total disk space.
   5149491 MB in 789170 files.
    344292 KB in 50132 indexes.
         0 KB in bad sectors.
   6133411 KB in use by the system.
     65536 KB occupied by the log file.
 580832844 KB available on disk.

      4096 bytes in each allocation unit.
1465097471 total allocation units on disk.
 145208211 allocation units available on disk.

So CHKDSK reports that the problem is now fixed. So I run CHKDSK D: again to make sure and it reports exactly the same problem as if nothing has been fixed.

I have tried this loop 4 times now - I run CHKDSK D: and it reports problems. So I run CHKDSK /F /V and it says problems are fixed. But when I run CHKDSK D: again, it reports the same problems it did originally. And into a loop it goes.

I am running CHKDSK from an elevated command prompt. I have also tried it from Safe Mode and got identical results. I have rebooted several times and same results.

Note that the first time I ran CHKDSK /F /V, it said it cleaned up around 167 unused index entries. However, every time I have run it since, it always reports that it cleaned up 1 unused index entry. So clearly, it was able to fix all but one of the unused index entry errors but is unable to fix just one of them.

So I have 3 questions:

  • Am I able to fix the problem I have here?
  • CHKDSK D: /F /V is showing the 'Cleaning up...' lines after the 'Security descriptors' bit. Does this mean the error is in the security descriptors and if so, is that serious and should I be worried about it?
  • I am due to replace the hard drive in about a month. If I copy all the files over using a straight-forward Windows Explorer copy and paste, then the problem with the unused index entry should not copy over to the new drive, is this correct? If the files copy over, then I can just assume that they must be intact and running CHKDSK on the new drive shouldn't report any unused index entries after the copy. Is this correct?

CHKDSK does not create a FOUND folder and does not seem to store any .chk files. It does not report any other errors other than 'Cleaning up unused index entry. So I don't know but to me it doesn't sound like any files are missing or corrupt.

Many thanks.


I finally solved this. It's caused by a problem with the Usn journal.

The key bit of information in the CHKDSK result is this:

CHKDSK is verifying Usn Journal...
100 percent complete. (754974720 of 754974952 USN bytes processed)
Examining Usn Journal file record segment.
  754974952 USN bytes processed.
Usn Journal verification completed.

Compare that to a successful CHKDSK result:

CHKDSK is verifying Usn Journal...
  247720 USN bytes processed.
Usn Journal verification completed.

So you know something maybe wrong with Usn Journal when CHKDSK reports this:

100 percent complete. (754974720 of 754974952 USN bytes processed)
Examining Usn Journal file record segment.

So firstly, it reports processing 754974720 of 754974952 bytes - it looks like it didn't process them all. It then went on to examine a Usn journal file record segment. Although it said Usn verification completed, the lines preceding that confirm there is a problem with Usn journal.

So to solve it, I simply deleted the Usn journal for the drive that was failing CHKDSK.

I did that with this command (from an elevated command prompt):

fsutil usn deletejournal /D /N D:

(where D: is the drive letter).

After running that, you can confirm that the journal is indeed gone by running this:

fsutil usn queryjournal D:

If the journal is gone, you will see an error. If it's still there, you will see a table of data.

The Usn journal will be recreated automatically as soon as a program wants to use it. In my case, it wasn't recreated straight away so I installed Windows Search (which I normally have disabled) because I know that Windows Search uses the Usn journal. After the obligatory Windows restart, the Usn journal was recreated automatically.

CHKDSK now reports this:

CHKDSK is verifying files (stage 1 of 3)...
  1130496 file records processed.
File verification completed.
  4961 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
  1242084 index entries processed.
Index verification completed.
  0 unindexed files scanned.
  0 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
  1130496 file SDs/SIDs processed.
Security descriptor verification completed.
  55795 data files processed.
CHKDSK is verifying Usn Journal...
  18696 USN bytes processed.
Usn Journal verification completed.
Windows has checked the file system and found no problems.

So deleting the Usn journal fixed it. All of the Usn bytes were processed and there was no examining of Usn bytes. Obviously, the number of bytes processed is much smaller because I deleted the Usn journal so the new Usn journal doesn't have much file history (yet).

For my home use, deleting the Usn journal only causes a temporary problem with VAC games (Steam). From what I understand, VAC will read the Usn journal to check for cheats so cheaters get around this by deleting the Usn journal regularly. Steam know this so they kick you from VAC enabled games if your Usn journal is empty (or very small).

I don't know but I read that after deleting the Usn journal, it's best to wait around 24 hours before running any VAC enabled games on Steam. That will give enough time for the Usn journal to be fairly reasonably populated.

Some might say that it's normal for CHKDSK to report an issue with the Usn journal because the Usn journal may be active while CHKDSK is running. However, I also tried CHKDSK from Safe mode and I tried it repeatedly over and over and always got the same result.

Others might say that since the problem is only with the Usn journal, I don't need to do anything and can just ignore it (since it's just the Usn journal so it's not like it's critical information). That's probably true but I like to have CHKDSK report a successful result. That said, the Usn journal is NOT the NTFS file system journal. The NTFS file system journal is critical but the Usn journal is more cosmetic.

Copying the entire contents of the drive to a new drive would have fixed it too because the new drive would have its own Usn journal. But that solution would take a lot longer and be considerably expensive.

So if you get this problem where CHKDSK reports an issue and it looks like it's only the Usn journal that's the cause of it (so CHKDSK makes no mention of any other issues), you may want to ignore it or delete the Usn journal for that drive.