Why is NTFS case sensitive?

Solution 1:

The case sensitivity of a file system is a separate issue from that of an operating system. Latest Windows releases are based on the NT kernel, which inherits a lot of properties of the non-NT Windows 95 and even MS-DOS. Along with the NT kernel the file system, NTFS, was designed to be case sensitive -- to be POSIX compliant.

Although the Win32 subsystem does not support file names that only differ by case sensitivity, it is possible to create those files with lower level system calls.

Solution 2:

It actually isn't NTFS that you are inquiring about.

NTFS is the filesystem. Your question is really about the case-sensitivity of the Windows command shell. They're completely different. Windows Explorer is a graphical command shell. By entring cmd (in Start | Run for example) you're telling the Windows command shell to execute the command cmd (which itself is actually another command shell, but command line based rather than graphical).

Similarly, CHKDSK is not doing any kind of check on whether you used CMD or cmd. All CHKDSK knows about are the parameters you pass to it, which in this case are x:, /f and /r.

As for CHKDSK "fixing capitalization", I'm not really sure what you mean there.

Solution 3:

I suspect the question asker's claim that chkdsk.exe is "fixing capitalization in some files" is actually prompted by the message from CHKDSK that occurs under some circumstances:

correcting errors in the uppercase file

Basically, this results from a Windows XP version of chkdsk.exe running against an NTFS volume that has been formatted in a later version of Windows, as described in Error message when you run Chkdsk.exe on a Windows XP-based or on a Windows Server 2003-based computer: “Correcting errors in the uppercase file”. The upshot is that this is really not an error, and has nothing to do with case sensitivity.