Package: pmount
Version: 0.9.16-4
Severity: normal

[relevant information from original bug report by Enrico Gasperoni and
ensuing discussion]

Problem:
mounting vfat with utf8 charset leads to the error summarized by this
kernel message:

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

since fat design states it's NOT a case-sensitive filesystem, many
programs rely on this and may misbehave if the design is not met. 


[Vincent Fourmond]
  It seems this kernel message is not a real issue, see

https://launchpad.net/ubuntu/+bug/62321

  However, failing set the charset to utf8 might result in terminal
choking on some of your files if they contain characters outside of
the ASCII range. That is I think more nasty. Therefore, I don't think
I will change the defaults, unless I am proven that it really can
cause case-sensitivity problems (it does not appear to be the case).

[Enrico Gasperoni]

I agree. Unfortunately the problem of case sensitivity is a real issue...
I didn't pay much attention to that warning before I got nasty problems
with my data on Windows...

Luckily there exists a solution to both problems: 
not setting iocharset to utf8 and passing the "utf8" flag to mount
which actually tells the vfat driver to store filenames in the
non-utf8 charset and perform charcater translation. 

The result is still using utf8 at a system level but allowing the driver
to translate and complain in the necessary cases.

see
/usr/src/linux/Documentation/filesystems/vfat.txt
http://www.nslu2-linux.org/wiki/HowTo/MountFATFileSystems  (section
"Selectiong iocharset") 

It solved for me and also (thank you 'couse I didn' realized what the
problem was) solved the issue of the terminal going crazy with non
utf8 characters. 



-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.22-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1) (ignored: LC_ALL set to 
en_GB)
Shell: /bin/sh linked to /bin/dash

Versions of packages pmount depends on:
ii  libc6                         2.6.1-5    GNU C Library: Shared libraries
ii  libdbus-1-3                   1.1.1-3    simple interprocess messaging syst
ii  libhal-storage1               0.5.9.1-4  Hardware Abstraction Layer - share
ii  libhal1                       0.5.9.1-4  Hardware Abstraction Layer - share
ii  libsysfs2                     2.1.0-2+b1 interface library to sysfs

pmount recommends no packages.

-- no debconf information
diff -urB pmount-0.9.16/src/pmount.c pmount-0.9.16_mod/src/pmount.c
--- pmount-0.9.16/src/pmount.c  2007-07-03 01:37:24.000000000 +0200
+++ pmount-0.9.16_mod/src/pmount.c      2007-09-17 14:14:38.000000000 +0200
@@ -329,7 +329,7 @@
     else
         access_opt = "";
 
-    if( iocharset && fs->iocharset_format ) {
+    if( iocharset && fs->iocharset_format && (strcmp(fs->fsname, "vfat") || 
strcmp(iocharset, "utf8")) ) {
         if( !is_word_str( iocharset ) ) {
             fprintf( stderr, _("Error: invalid charset name '%s'\n"), 
iocharset );
             return -1;

Reply via email to