file name case issue on fat32 (Was: Re: Sharing data files on a dual-boot machine ...)

Micah micahjon at ywave.com
Tue Sep 27 14:11:17 PDT 2005



martinko wrote:
> Micah wrote:
> 
>>
>>
>> RW wrote:
>>
>>> On Tuesday 27 September 2005 15:56, Micah wrote:
>>>
>>>> The directory structure of fat32 is still the same as from dos.  In
>>>> order to create long filenames, Windows uses subsequent directory
>>>> entries to store the extra filename characters.  If a filename fits the
>>>> 8.3 format, Windows (at least Win98) does not bother to create the 
>>>> extra
>>>> entries for the long filename record.  If there's no ong filename
>>>> record, how can FreeBSD use the long filename?
>>>
>>>
>>>
>>>
>>>
>>>
>>> The files in question are shown as having names like A.txt in 
>>> windows, ie mixed case. The Dos directory command always shows 
>>> completly uppercase names for the 8.3 names
>>>
>>> I have plenty of 8.3 files that dos DIR shows as having uppercase 8.3 
>>> names  *and* mixed/lower-case full names. So either dos/windows does 
>>> create the extra-filename for files with an 8.3 name format, or it 
>>> stores the mixed-case name in the legacy 8.3 field in it's  case and 
>>> DIR converts to uppercase.
>>> Either way around the case that is found by FreeBSD should be the 
>>> same as if it were reading a long-filename.  
>>
>>
>>
>> I did some tests using Win98/qemu and Win2K/real hardware, and 
>> diskedit.  This appears to be a real bug in how FreeBSD handles byte 
>> 12 of an 8.3 directory entry.  It only shows up in 8.3 filenames 
>> created by Win2K (and presumably any NT based windows).  Somehow (and 
>> I cannot find exact details, just passing references) NT stores 
>> filename capitalization of 8.3 names in byte 12 of an 8.3 directory 
>> entry, thereby eliminating the creation of an LFN (long filename) 
>> entry.  FreeBSD doesn't interpret it correctly and displays file names 
>> in lowercase unless the original name was all uppercase letters.  The 
>> solution:  always use long filenames from an NT based Windows if you 
>> care about capitalization.  At least until the bug is fixed in FreeBSD.
>>
> 
> exactly!
> 
> i just did a simple test and created the following on win xp :
> 
> w.TXT
> X.TXT
> Y.txt
> z.txt
> 
> and this is what freebsd displays:
> 
> X.TXT
> w.txt
> y.txt
> z.txt
> 
> i think the case is clear.
> 
> and what now? whom to report it to?
> 
> regards,
> 
> martin
> 

I've found the troubled piece of code, just gotta figure out the best 
way to fix it.  I'll come up with a patch and submit it as a PR I guess. 
(never done either, but I'm sure I'll figure it out. :)

Later,
Micah


More information about the freebsd-questions mailing list