Opened 8 years ago
Closed 8 years ago
#18 closed enhancement (invalid)
Ability to at least read Windows long filenames on FAT32
Reported by: | Lewis Rosenthal | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | IFS | Version: | |
Severity: | highest | Keywords: | |
Cc: |
Description
MS holds several FAT-related patents specific to the storage of long filenames (see http://en.swpat.org/wiki/Microsoft_FAT_patents for links). However, none of those should preclude us from reading the Windows LFNs so that they don't show up as blah~1.ext. As we store LFNs differently, we could at least read the Windows LFNs and when saving to a new LFN, then store using our method.
Change History (6)
comment:2 by , 8 years ago
Thanks for following up.
My IFS line is:
IFS=C:\OS2\BOOT\FAT32.IFS /CACHE:2048 /H /Q
I am currently running 0.9.13. I can re-test, but this is a common symptom for me with FAT32-formatted USB sticks (I can create a FAT32-formatted HDD and test that, too, and I can also eliminate the USBMSD driver as a possible issue by doing this on a SATA-attached drive.
Is there a binary available of the 0.10 branch, yet?
comment:3 by , 8 years ago
Maybe, you're missing cachef32.exe switches, or don't start it at all? It is responsible for Unicode to single-byte translation, and maybe, LFN will not work without it. I use these switches for both fat32.ifs and cachef32.exe:
ifs=d:\os2\boot\fat32.ifs /h /ac:h /monitor call=d:\os2\cachef32.exe /l:off /p:2 /m:50000 /b:250 /d:5000
/monitor is for enabling the debug messages via f32mon.exe utility. Also, I switch lazy write off (/l:off), /p:2 is a priority for lazy writer, and "/m:50000 /b:250 /d:5000" are timings for cache.
I have tested these settings on many USB harddrives and flash disks, everywhere I see long filenames with national characters. Tested disk sizes from 64 MB to 1 Terabytes.
Version 0.10 is the development one, it was not publicly available, but I gave it for testing for interested people. The link is ftp://osfree.org/upload/fat32/fat32-0.10-alpha2.zip. It mostly works, but you need to enable "/monitor" switch in cachef32.exe, for now, otherwise, formatting will give a trap in REDETERMINEMEDIA ioctl after formatting (need to fix that, of course, but still not). It slows down the FS, of course. The svn link for version 0.10 is http://svn.netlabs.org/repos/fat32/branches/fat32-0.10
comment:5 by , 8 years ago
Interesting.
I do load CACHEF32, but like so:
CALL=C:\ECS\BIN\CACHEF32.EXE /S /F
I'll change my lines to match yours and will test again. Thanks for the link, and for your work on this!
comment:6 by , 8 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
I have the stick in question mounted in my system.
Never mind. I just discovered that this particular stick is FAT16 and not FAT32!
Windows LFN support works in fat32.ifs since the very early version. Maybe, you specified wrong cmdline switches for fat32.ifs, so it shows short filenames. There was /FS cmd line switch for short filenames, and /FL for long filenames, but now they are obsolete since version 0.98. The current version is 0.9.13.
PS: There is also the 0.10 branch (unstable) now, which supports 32-bits FORMAT and CHKDSK routines, it is more restructured and newer version.