# Kernel 3.1.6 problem with FAT fs and charset

## finarfin

Hi all, 

i just updated to kernel 3.1.6 on gentoo and everything seems to working fine except for a problem with fat devices. 

If i try to mount a fat device i receive the following error:

 *Quote:*   

> mount: tipo fs errato, opzione non valida, superblocco su /dev/sdc danneggiato,
> 
>        codepage o programma ausiliario mancante, o altro errore
> 
>        In alcuni casi si possono trovare informazioni utili in syslog. Provare
> ...

 

And dmesg says:

```
adora rincewind # dmesg | tail

sd 7:0:0:0: [sdc] Mode Sense: 03 00 00 00

sd 7:0:0:0: [sdc] No Caching mode page present

sd 7:0:0:0: [sdc] Assuming drive cache: write through

sd 7:0:0:0: [sdc] No Caching mode page present

sd 7:0:0:0: [sdc] Assuming drive cache: write through

 sdc:

sd 7:0:0:0: [sdc] No Caching mode page present

sd 7:0:0:0: [sdc] Assuming drive cache: write through

sd 7:0:0:0: [sdc] Attached SCSI removable disk

FAT-fs (sdc): IO charset iso8859-15 not found

adora rincewind # 

```

I think there are problems with charset. This is the output of locale -a:

```
adora rincewind # locale -a

C

en_GB.utf8

en_US.utf8

it_IT

it_IT.iso885915

it_IT.utf8

POSIX

```

In the old linux kernel everything works fine. 

Can someone help me?

----------

## overkll

Check your "default io charset for fat" in your kernel.  In menuconfig, it's under File Systems > DOS/FAT/NT:

For example, here's mine:

```

  │ │    <*> MSDOS fs support                                             │ │  

  │ │    <*> VFAT (Windows-95) fs support                                 │ │  

  │ │    (437) Default codepage for FAT                                   │ │  

  │ │    (iso8859-1) Default iocharset for FAT                            │ │  

  │ │    < > NTFS file system support    
```

----------

## finarfin

Thank you overkll. 

I checked on make menuconfig and i have that value set: 

```
    (iso8859-15) Default iocharset for FAT        
```

These are my locales:

```
C

en_GB.utf8

en_US

en_US.iso88591

en_US.utf8

it_IT

it_IT.iso885915

it_IT.utf8

POSIX
```

But if try to mount the fat key i still have the same error:: 

```
mount: tipo fs errato, opzione non valida, superblocco su /dev/sdc danneggiato,

       codepage o programma ausiliario mancante, o altro errore

       In alcuni casi si possono trovare informazioni utili in syslog. Provare

       ad esempio 'dmesg | tail'
```

Any idea?

Thanks, 

Ivan

----------

## overkll

What exactly is the command you are using to mount the partition?

Do you have sys-fs/dosfstools installed?

Are you sure it's a fat/vfat partition?

----------

## ultraslinky

The solution to this is very simple: You need to have the charset iso8859-15 (Western Europe + Euro) enabled in your kernel!

In the kernel configuration there is a whole section called "Native Language Support", it's the last submenu of the "File Systems" tree. You can enable support for it there. If you're in doubt about which ones you need, you can put them all as modules  :Smile: 

This should solve it, i had a very similar problem when i first tried to mount an NTFS partition.

----------

## finarfin

In my Native language support menu i have: 

```
iso8859-1 as Default NLS Option

Codepage 437 United States/Canada

NLS UFT-8

```

What should i enable?

----------

## ultraslinky

 *finarfin wrote:*   

> In my Native language support menu i have: 
> 
> ```
> iso8859-1 as Default NLS Option
> 
> ...

 

Surely you have the option for "iso8859-15: western languages with euro". It's the second before last option, before UTF-8 which is enabled by default  :Smile: 

----------

