The Windows file systems (NTFS and FAT) are able to automatically detect if they are broken. You can even specify when that automatic check should be performed. But sometimes you would want to force a file system check, for example when Windows suddenly behaves strangely for no obvious reason. (For example last year, the day before I went on a month-long vacation, Vista suddenly refused to boot.)
In order to schedule a file system check for the next reboot you will have to
chkdsk <Drive>: /f
This task isn’t easy for inexperienced users, especially given that they might not know about the chkdsk command line tool in the first place. They could use the UI, but would have to repeat the process for each and every drive nonetheless.
To make this task easier, I wrote a little .NET application that automates scheduling file system check for all drives at the next boot. Just double-click ChkDskAll.exe, enter administrative credentials and wait for the goodness to happen.
If a drive has already been scheduled for scanning, it won’t be scheduled a second time. To exclude drives from being included in the scan, have a look at ChkdskAll.exe.config. For example, TrueCrypt drives should be excluded if you do not mount them as fixed drives.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <!-- The list of excluded drives, e. g. "CDE". --> <add key="ExcludeDrives" value="YZ"/> </appSettings> </configuration>
Download ChkDskAll binary and source code
a@href@title, blockquote@cite, em, strike, strong, sub, sup, u