My ExFAT partition is about 1TB and it takes chkdsk about 10 hours to check and clear the dirty bit flag. There is never an error. It is caused by the drive being disconnected in an unsafe manner (it is being used in a VM and sometimes that gets closed in a manner that is causing this). But I need to have an alternative to the 10 hour wait. I'm going to migrate the data to NTFS as soon as I can to hopefully avoid this problem.
4 Answers
Basically since exFAT dirty bit is in dec offset 106 of the VBR, and it's a bit, not a byte. Luckily the flags which include byte 106(6a) are not included in the calculation of the VBR checksum. You just use a hex editor to zero that dirty bit. For more detailed info on the layout of the VBR and the lags, the internals are at https://www.sans.org/reading-room/whitepapers/forensics/reverse-engineering-microsoft-exfat-file-system-33274#page=25
And there is also a blog at rshullic.wordpress.com
- 115
Somebody wrote a utility for MacOS to clear the bit (to build run make):
https://github.com/zzh8829/exfat_clean
The repo was found via this post.
And there is also this MacOS-specific question: Disable automatic fsck_exfat on dirty volume mount in Mac OSX with the answer which doesn't seem to work on Mojave.
- 8,241
Easy solution for ExFat with:
“Chkdsk crash - Error 0x80071AC3 & 766f6c756d652e63 3f1”
In my case: a 4GB WD external hard drive running on Windows 7:
I have a WD external hard drive, which after a USB port disconnection failure was marked as dirty and let read but not write, and when I made a chkdsk in Windows 7, chkdsk crashed and disappeared. After being literally several days searching for information, I found a fairly simple solution that is to install a Windows Hotfix (KB2843376 for Windows 7 and Windows 8) that makes chkdsk not crash and can erase the dirty disk mark and work without problems.
You can find the hotfix here.
I hope it works for you as it did for me.
- 58,727
- 11
- 1
exFAT offset is 6a. On HxD, press CTRL+G and type 0x6a, which will get you to the exact byte that needs to be zeroed.
- 9,096