In a journal-based file system, all changes to your files are recorded and held together. This allows the separation of file contents from the metadata (filename, modified dates, etc...). The implications of this, however, are that if a file is not indexed in the journal, it literally doesn't exist - even if the 0's and 1's physically exist on the platter.
This is where chkdsk
comes in handy, as well as the "dirty bit" of the drive. When performing various file system operations, the dirty bit is set until the operation is completed, at which point it is cleared. From the Microsoft fsutil
documentation:
If a volume's dirty bit is set, this indicates that the file system
may be in an inconsistent state. The dirty bit can be set because the
volume is online and has outstanding changes, because changes were
made to the volume and the computer shutdown before the changes were
committed to disk, or because corruption was detected on the volume.
If the dirty bit is set when the computer restarts, chkdsk runs to
verify the consistency of the volume.
Since your computer had the dirty bit set, you need to ensure that the filesystem is consistent to prevent volume corruption, or data loss. Running a file system checker can also allow the drive to recover non-indexed files which haven't yet been recorded in the journal.