When we run the chkdsk command on C drive in windows it won't run but will prompt you to schedule the command later when we reboot the system. Why?
To run low level chkdsk routines that are going to scan and move bad sectors or to correct file system errors, the disk must be unmounted and locked to prevent corruption from unwanted file system access during the chkdsk scan and repair.
On most Windows systems, drive C is also the system drive. You have things like the virtual memory paging file open and under continuous access. You cannot have chkdsk make a low level change under these conditions and maintain the integrity of the drive. So to make sure that all files are saved, closed and scanable, chkdsk asks if you want to scan during startup.
On the next startup, Windows loads enough of itself into memory with the appropriate disk subsystem drivers to access the disk and prior to mounting it, proceeds to notify the OS that write operations are suspended, proceeds then to scan the disk file structure for integrity and if told to do so, scan for unreadable sectors.
Once it's finished checking the file system, correcting errors and writing out recovered file fragments to check files, the system mounts the volume and proceeds to boot.
The other disk (D?) is not a system disk, and isn't running any processes that won't close files, so when chkdsk asks for a dismount and lock, the disk complies and then chkdsk fires up and runs to completion.
I have had this issue before. It is because another process is using the disk and