Opened 10 years ago
Closed 9 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:1 by Valery V. Sedletski, 9 years ago
| Severity: | → highest |
|---|
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.
comment:2 by Lewis Rosenthal, 9 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 Valery V. Sedletski, 9 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:4 by Valery V. Sedletski, 9 years ago
Hm, commented cachef32.exe line in config.sys -- LFN's still working...
comment:5 by Lewis Rosenthal, 9 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 Lewis Rosenthal, 9 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!