How to correctly fix a "dirty" NTFS partition without using chkdsk

When I try to do a ntfsck to a NTFS partition I get this:

sudo ntfsck /dev/sdb1
Unsupported: replay_log()
Volume is dirty.
Unsupported: check_volume()
Checking 161792 MFT records.
Unsupported cases found.

How can I clean a "dirty" NTFS volume without having to actually use windows chkdsk tool in the NTFS volume.

I also did a ntfsfix and it said that everything was OK but it actually was not.

I also get the same "Dirty" error when trying to check the filesystem using the Disk Utility:

enter image description here

I am starting to think I need some powerful soap.


Try using ntfsfix, which was part of the old ntfsprogs package and is now located in the ntfs-3g package (which you may already have installed).
This is a command line utility which attempts to fix common NTFS problems. It's been a while since I last used it, but it should do its job simply by typing:

sudo ntfsfix /dev/sdb1

It also offers a specific option to clear the "dirty" flag on the partition:

sudo ntfsfix -d /dev/sdb1

which might or might not be required in addition to the first command. Have a look at man ntfsfix for more information.


I think it may actually be that you need to stop checking it. :)

I believe I once had similar reports, and I even booted into the original Windows install that made it to run chkdsk, which didn't help. But what I learned was that Linux couldn't check an NTFS partition, and it should be mounted with the fsckorder set to zero.

I'm not certain if this has changed since then, but hopefully you can crosscheck this to see if it might solve your problem.

Edit: Forgot to add, I've had no problems with this partition since that time.