Preserving uppercase filenames on vfat partitions
Hello, all:
I recently encountered a problem others have run into before - the
default behavior on Linux of converting short, uppercase filenames on
vfat partitions to lower case. Every time I mounted a disk with a
vfat partition on it, a directory with an uppercase name suddenly had
a lowercase name, and a script (which relied on its remaining upper
case) failed. (For reasons irrelevant I was not able to change the
name, which, obviously, would have been a simpler solution had it been
available.)
It turns out that vfat partitions on Linux, for reasons I cannot
fathom, default to "shortname=lower", shortname being an option which
determines how shortnames of the 8.3 type are stored.[1] Other values
include "mixed" which preserves the filename as is for existing
files/directories. It also turns out that which value shortname takes
is configurable. On a GNOME system, in Applications, System Tools,
Configuration Editor, go to system, storage, default_options, vfat,
mount_options and change shortname from "lower" to "mixed".
Henceforth, hot-mounted disks in the vfat format will retain uppercase
filenames.
I hope that info is of some help to someone; the default behavior had
been driving me nuts for a while!
Patrick
[1]From the mount man page, under 'Mount options for vfat':
shortname=[lower|win95|winnt|mixed]
Defines the behaviour for creation and display of filenames
which fit into 8.3 characters. If a long name for a file exists,
it will always be preferred display. There are four modes: :
lower Force the short name to lower case upon display; store a
long name when the short name is not all upper case. This
mode is the default.
win95 Force the short name to upper case upon display; store a
long name when the short name is not all upper case.
winnt Display the shortname as is; store a long name when the
short name is not all lower case or all upper case.
mixed Display the short name as is; store a long name when the
short name is not all upper case.
Reply to: