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