Case sensitive filenames for non-NTFS filesystems

Shaddy Baddah lithium-cygwin@shaddybaddah.name
Fri Aug 2 09:06:00 GMT 2013


Hi,

On 02 Aug 2013 18:31+1000, Corinna Vinschen wrote:
> Correction, not only NTFS.  Here's the source code comment:

Sorry, yes I forgot that it was coded to let Windows make the decision.

>> Unfortunately, in providing EXFAT, Microsoft has not seen fit to carry
>> over the same handling in the kernel as it does in NTFS.
>
> ExFAT is based on FAT/FAT32, so it's understandable.  I don't have ExFAT
> available.  Assuming your ExFAT drive is drive X:, can you please show
> me the output of
>
>    /usr/lib/csih/getVolInfo.exe /cygdrive/x
>
> If it returns different values than FAT, it might be worth to handle
> specificially in Cygwin's mount code.

This is the output for L: drive, which is not a physical but logical
volume formatted EXFAT. Hopefully it doesn't alter the
characteristics/attributes. With a bit of extra effort, I could try with
a physical device (format a spare USB stick EXFAT through Windows):

$ /usr/lib/csih/getVolInfo.exe /cygdrive/l
Device Type        : 7
Characteristics    : 121
Volume Name        : <>
Serial Number      : 1211155165
Max Filenamelength : 255
Filesystemname     : <exFAT>
Flags              : 6
   FILE_CASE_SENSITIVE_SEARCH  : FALSE
   FILE_CASE_PRESERVED_NAMES   : TRUE
   FILE_UNICODE_ON_DISK        : TRUE
   FILE_PERSISTENT_ACLS        : FALSE
   FILE_FILE_COMPRESSION       : FALSE
   FILE_VOLUME_QUOTAS          : FALSE
   FILE_SUPPORTS_SPARSE_FILES  : FALSE
   FILE_SUPPORTS_REPARSE_POINTS: FALSE
   FILE_SUPPORTS_REMOTE_STORAGE: FALSE
   FILE_VOLUME_IS_COMPRESSED   : FALSE
   FILE_SUPPORTS_OBJECT_IDS    : FALSE
   FILE_SUPPORTS_ENCRYPTION    : FALSE
   FILE_NAMED_STREAMS          : FALSE
   FILE_READ_ONLY_VOLUME       : FALSE
   FILE_SEQUENTIAL_WRITE_ONCE  : FALSE
   FILE_SUPPORTS_TRANSACTIONS  : FALSE

> Well, from my POV, yes.  It doesn't make sense to use ExFAT for serious
> work anyway, it's for SD cards and stuff like that.

I understand that. It's just that after years of being frustrated with
moving files around various NTFS partitions and fighting with
ownership/permission issues, especially where Cygwin work
files/directories are involved, I've decided that I should PoC a brave
new world.

That being giving up on security through file/folder ACLs, and just
mount FAT32 (or the candidate EXFAT) fs via as an encrypted logical
volume.

My Cygwin work will be access that way. If I need to move it, I move
the encrypted file only.

But I have to admit that the "con" of losing case-preservation is a
weighty one. I have discussed in the (very distant) past having issues
with operating on Linux kernel source. I haven't done so in quite a
while, but in the past there seemed to be many places where there
were filename collisions due to not being able to preserve case.

It may not have been the Linux kernel, but I remember one crazy source
package where I struggled to find correct information because they had
a INSTALL.TXT and an Install.txt (or something like that).

-- 
Regards,
Shaddy
of the Linux



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list