kernel: FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

Richard Downer rdowner at gmail.com
Mon Jun 6 18:14:19 UTC 2005


Ziyad, everyone,

On 6/6/05, ZIYAD A. M. AL-BATLY <zamb at saudi.net.sa> wrote:
> On Sun, 2005-06-05 at 13:23 +0100, Richard Downer wrote:
> > Jun  5 12:01:57 localhost kernel: FAT: utf8 is not a recommended IO
> > charset for FAT filesystems, filesystem will be case sensitive!
> > Jun  5 12:01:58 localhost kernel: FAT: utf8 is not a recommended IO
> > charset for FAT filesystems, filesystem will be case sensitive!
>
> That's normal.  FAT is not a case-sensitive file-system (meaning that
> "FILe" and "fiLe" are the same and could not exists in the same
> directory).  However, using UTF-8 will make it case sensitive (I don't
> know why!) which produce these errors messages in your log.
> 
> Why use UTF-8 in FAT file-systems?  Because it's the only (reasonable)
> way to support file names in other languages (that's, other than
> English).
> 
> You shouldn't worry about it too much.  I get these errors in my logs
> when I mount FAT partitions.

Unfortunately it's not that simple, because it *does* cause problems. 
The filesystem is only half-case-sensitive and there are plenty of
border conditions that cause problems; Evan (who also replied to my
message) highlighted one of them.  Another is this:

mkdir foo         <-- OK
mkdir Foo        <-- ERROR

On a "true" case-sensitive filesystem that is valid - but in this case
it is behaving like FAT.

mkdir foo         <-- OK
cp bar Foo/bar    <-- ERROR

On FAT this is should be valid - but in this case it is not.

The file system is neither fully case-sensitive nor fully
case-insensitive - it's a mix of the two and that is causing problems.
 I mentioned in my original message that rsync was getting confused -
I think what was happening there was there was an existing directory
called "foo", and rsync was trying to copy files into a directory
"Foo" - it saw it didn't exist, but it got an error when it tried to
create it and when trying to copy files into it.

In short I think it is broken.  So, to go back to my original
question, can anyone tell me how to override the iocharset= option
that is used when mounting the device?

(To go off at a tangent a bit - I understand that UTF8 allows better
support of non-basic latin characters.  However, doesn't VFAT store
filenames on-disk in Unicode anyway?  Why is UTF8 for filenames needed
at all in this case?)

Thanks for your help...

-- 
rd.




More information about the ubuntu-users mailing list