# [SOLVED] FAT can't mount - charset ANSI_X3.4-1968 not found

## Karl_R

Hi all,

update... I've now noticed that this fails for all FAT file systems including one in an SD card in a card slot reader, so I don't think it is a usbdive problem anymore but a FAT problem ...

Help still needed :-/  ... end of update.

I have just done an emerge world and since then my usb drives and any fail to mount.

The message displayed is:-

 *Quote:*   

> mount: wrong fs type, bad option, bad superblock on /dev/sdb1,        missing codepage or helper program, or other error        In some cases useful info is found in syslog - try        dmesg | tail  or so  .

 

the result of dmesg shows :- 

 *Quote:*   

> 
> 
> usb 2-3: new high speed USB device using ehci_hcd and address 6
> 
> usb 2-3: configuration #1 chosen from 1 choice
> ...

 

I have looked in the Kernel parameters under Filesystems -> Natural Language Support and don't know which codepage supports ANSI_X3.4-1968.

A link at http://media.datadirect.com/download/docs/slnk/admin/appcodepage.html tells me that  IANA says it is 

```
Code Page            IANA Character set name     IANAAppCodePage  

ANSI_X3.4-1968    US_ASCII                            3
```

I installed a new kernel enabling US ASCII in the Natural Language Support[/quote] but it still fails

I re-ran 

```
locale-gen -A
```

 and it still fails.

any ideas?

Thanks

KarlLast edited by Karl_R on Wed Oct 21, 2009 3:52 pm; edited 1 time in total

----------

## Karl_R

Hi,

I have managed to mount my FAT partitions by using the command

```
sudo mount -t vfat /dev/sdc1 /mnt/tmp
```

Though I still get the warning    *Quote:*   

> mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so .

  pop up when the drive is plugged in.

What's more by adding the specific partition to my /etc/fstab file like so :

```
/dev/sdc1 /mnt/tmp vfat user,noauto     0 0
```

When the drive is plugged in it automatically mounts as it used to with no warnings and my user has permissions on the mount point.

it seems that simply giving the -t vfat is all the clue mount needed.

I think that there must be something wrong with the hal or udev in that the wrong options are passed. I'm a real novice when it comes to udev or hal so don't really know how to correct the behaviour back how it was before the update.

Anyone have any ideas what the underlying problem is and how to fixd it in light of this new info?

I don't really want to have to add entries to my /etc/fstab for all mu usb drives.

Cheers

Karl

----------

## VoidMage

From your kernel config, paste 'DOS/FAT/NT Filesystems' section

and CONFIG_NLS* keys.

See also 'locale -a' on which locales you have.

----------

## AeroIllini

I also had this same problem, and was recently able to fix it. I followed the steps in this guide to upgrade my system to UTF-8. Specifically, I think the changes to the kernel configuration (including changing the VFAT codepage) did it, but I can't be sure what the final fix was since I changed several things at once.

It seemed a good place to start, since the error was charset related.

I hope this helps you out.

----------

## Karl_R

from kernel .config

```

# DOS/FAT/NT Filesystems

#

CONFIG_FAT_FS=y

CONFIG_MSDOS_FS=y

CONFIG_VFAT_FS=y

CONFIG_FAT_DEFAULT_CODEPAGE=437

CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"

CONFIG_NTFS_FS=y

# CONFIG_NTFS_DEBUG is not set

CONFIG_NTFS_RW=y

```

and in desperation i added all of the CONFIG_NLS, most as modules

```

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="utf8"

CONFIG_NLS_CODEPAGE_437=y

CONFIG_NLS_CODEPAGE_737=m

CONFIG_NLS_CODEPAGE_775=m

CONFIG_NLS_CODEPAGE_850=y

CONFIG_NLS_CODEPAGE_852=y

CONFIG_NLS_CODEPAGE_855=m

CONFIG_NLS_CODEPAGE_857=m

CONFIG_NLS_CODEPAGE_860=m

CONFIG_NLS_CODEPAGE_861=m

CONFIG_NLS_CODEPAGE_862=m

CONFIG_NLS_CODEPAGE_863=y

CONFIG_NLS_CODEPAGE_864=m

CONFIG_NLS_CODEPAGE_865=m

CONFIG_NLS_CODEPAGE_866=m

CONFIG_NLS_CODEPAGE_869=m

CONFIG_NLS_CODEPAGE_936=m

CONFIG_NLS_CODEPAGE_950=m

CONFIG_NLS_CODEPAGE_932=y

CONFIG_NLS_CODEPAGE_949=m

CONFIG_NLS_CODEPAGE_874=m

CONFIG_NLS_ISO8859_8=m

CONFIG_NLS_CODEPAGE_1250=y

CONFIG_NLS_CODEPAGE_1251=m

CONFIG_NLS_ASCII=y

CONFIG_NLS_ISO8859_1=y

CONFIG_NLS_ISO8859_2=y

CONFIG_NLS_ISO8859_3=m

CONFIG_NLS_ISO8859_4=m

CONFIG_NLS_ISO8859_5=m

CONFIG_NLS_ISO8859_6=m

CONFIG_NLS_ISO8859_7=m

CONFIG_NLS_ISO8859_9=m

CONFIG_NLS_ISO8859_13=m

CONFIG_NLS_ISO8859_14=m

CONFIG_NLS_ISO8859_15=y

CONFIG_NLS_KOI8_R=m

CONFIG_NLS_KOI8_U=m

CONFIG_NLS_UTF8=y

```

and for the same reason I ran `gen-locale -A` so now `locale -a` gives

```

C

POSIX

aa_DJ

aa_DJ.iso88591

aa_DJ.utf8

aa_ER

aa_ER.utf8

aa_ER.utf8@saaho

aa_ER@saaho

aa_ET

aa_ET.utf8

af_ZA

af_ZA.iso88591

af_ZA.utf8

am_ET

am_ET.utf8

an_ES

an_ES.iso885915

an_ES.utf8

ar_AE

ar_AE.iso88596

ar_AE.utf8

ar_BH

ar_BH.iso88596

ar_BH.utf8

ar_DZ

ar_DZ.iso88596

ar_DZ.utf8

ar_EG

ar_EG.iso88596

ar_EG.utf8

ar_IN

ar_IN.utf8

ar_IQ

ar_IQ.iso88596

ar_IQ.utf8

ar_JO

ar_JO.iso88596

ar_JO.utf8

ar_KW

ar_KW.iso88596

ar_KW.utf8

ar_LB

ar_LB.iso88596

ar_LB.utf8

ar_LY

ar_LY.iso88596

ar_LY.utf8

ar_MA

ar_MA.iso88596

ar_MA.utf8

ar_OM

ar_OM.iso88596

ar_OM.utf8

ar_QA

ar_QA.iso88596

ar_QA.utf8

ar_SA

ar_SA.iso88596

ar_SA.utf8

ar_SD

ar_SD.iso88596

ar_SD.utf8

ar_SY

ar_SY.iso88596

ar_SY.utf8

ar_TN

ar_TN.iso88596

ar_TN.utf8

ar_YE

ar_YE.iso88596

ar_YE.utf8

as_IN.utf8

ast_ES

ast_ES.iso885915

ast_ES.utf8

az_AZ.utf8

be_BY

be_BY.cp1251

be_BY.utf8

be_BY.utf8@latin

be_BY@latin

ber_DZ

ber_DZ.utf8

ber_MA

ber_MA.utf8

bg_BG

bg_BG.cp1251

bg_BG.utf8

bn_BD

bn_BD.utf8

bn_IN

bn_IN.utf8

bo_CN

bo_CN.utf8

bo_IN

bo_IN.utf8

bokmal

bokm�l

br_FR

br_FR.iso88591

br_FR.iso885915@euro

br_FR.utf8

br_FR@euro

bs_BA

bs_BA.iso88592

bs_BA.utf8

byn_ER

byn_ER.utf8

ca_AD

ca_AD.iso885915

ca_AD.utf8

ca_ES

ca_ES.iso88591

ca_ES.iso885915@euro

ca_ES.iso885915@valencia

ca_ES.utf8

ca_ES.utf8@valencia

ca_ES@euro

ca_ES@valencia

ca_FR

ca_FR.iso885915

ca_FR.utf8

ca_IT

ca_IT.iso885915

ca_IT.utf8

catalan

crh_UA

crh_UA.utf8

croatian

cs_CZ

cs_CZ.iso88592

cs_CZ.utf8

csb_PL

csb_PL.utf8

cy_GB

cy_GB.iso885914

cy_GB.utf8

czech

da_DK

da_DK.iso88591

da_DK.utf8

danish

dansk

de_AT

de_AT.iso88591

de_AT.iso885915@euro

de_AT.utf8

de_AT@euro

de_BE

de_BE.iso88591

de_BE.iso885915@euro

de_BE.utf8

de_BE@euro

de_CH

de_CH.iso88591

de_CH.utf8

de_DE

de_DE.iso88591

de_DE.iso885915@euro

de_DE.utf8

de_DE@euro

de_LU

de_LU.iso88591

de_LU.iso885915@euro

de_LU.utf8

de_LU@euro

deutsch

dutch

dz_BT

dz_BT.utf8

eesti

el_CY

el_CY.iso88597

el_CY.utf8

el_GR

el_GR.iso88597

el_GR.utf8

en_AG

en_AG.utf8

en_AU

en_AU.iso88591

en_AU.utf8

en_BW

en_BW.iso88591

en_BW.utf8

en_CA

en_CA.iso88591

en_CA.utf8

en_DK

en_DK.iso88591

en_DK.utf8

en_GB

en_GB.iso88591

en_GB.utf8

en_HK

en_HK.iso88591

en_HK.utf8

en_IE

en_IE.iso88591

en_IE.iso885915@euro

en_IE.utf8

en_IE@euro

en_IN

en_IN.utf8

en_NG

en_NG.utf8

en_NZ

en_NZ.iso88591

en_NZ.utf8

en_PH

en_PH.iso88591

en_PH.utf8

en_SG

en_SG.iso88591

en_SG.utf8

en_US

en_US.iso88591

en_US.utf8

en_ZA

en_ZA.iso88591

en_ZA.utf8

en_ZW

en_ZW.iso88591

en_ZW.utf8

es_AR

es_AR.iso88591

es_AR.utf8

es_BO

es_BO.iso88591

es_BO.utf8

es_CL

es_CL.iso88591

es_CL.utf8

es_CO

es_CO.iso88591

es_CO.utf8

es_CR

es_CR.iso88591

es_CR.utf8

es_DO

es_DO.iso88591

es_DO.utf8

es_EC

es_EC.iso88591

es_EC.utf8

es_ES

es_ES.iso88591

es_ES.iso885915@euro

es_ES.utf8

es_ES@euro

es_GT

es_GT.iso88591

es_GT.utf8

es_HN

es_HN.iso88591

es_HN.utf8

es_MX

es_MX.iso88591

es_MX.utf8

es_NI

es_NI.iso88591

es_NI.utf8

es_PA

es_PA.iso88591

es_PA.utf8

es_PE

es_PE.iso88591

es_PE.utf8

es_PR

es_PR.iso88591

es_PR.utf8

es_PY

es_PY.iso88591

es_PY.utf8

es_SV

es_SV.iso88591

es_SV.utf8

es_US

es_US.iso88591

es_US.utf8

es_UY

es_UY.iso88591

es_UY.utf8

es_VE

es_VE.iso88591

es_VE.utf8

estonian

et_EE

et_EE.iso88591

et_EE.iso885915

et_EE.utf8

eu_ES

eu_ES.iso88591

eu_ES.iso885915@euro

eu_ES.utf8

eu_ES@euro

fa_IR

fa_IR.utf8

fi_FI

fi_FI.iso88591

fi_FI.iso885915@euro

fi_FI.utf8

fi_FI@euro

fil_PH

fil_PH.utf8

finnish

fo_FO

fo_FO.iso88591

fo_FO.utf8

fr_BE

fr_BE.iso88591

fr_BE.iso885915@euro

fr_BE.utf8

fr_BE@euro

fr_CA

fr_CA.iso88591

fr_CA.utf8

fr_CH

fr_CH.iso88591

fr_CH.utf8

fr_FR

fr_FR.iso88591

fr_FR.iso885915@euro

fr_FR.utf8

fr_FR@euro

fr_LU

fr_LU.iso88591

fr_LU.iso885915@euro

fr_LU.utf8

fr_LU@euro

fran�ais

french

fur_IT

fur_IT.utf8

fy_DE

fy_DE.utf8

fy_NL

fy_NL.utf8

ga_IE

ga_IE.iso88591

ga_IE.iso885915@euro

ga_IE.utf8

ga_IE@euro

galego

galician

gd_GB

gd_GB.iso885915

gd_GB.utf8

german

gez_ER

gez_ER.utf8

gez_ER.utf8@abegede

gez_ER@abegede

gez_ET

gez_ET.utf8

gez_ET.utf8@abegede

gez_ET@abegede

gl_ES

gl_ES.iso88591

gl_ES.iso885915@euro

gl_ES.utf8

gl_ES@euro

greek

gu_IN

gu_IN.utf8

gv_GB

gv_GB.iso88591

gv_GB.utf8

ha_NG

ha_NG.utf8

he_IL

he_IL.iso88598

he_IL.utf8

hebrew

hi_IN

hi_IN.utf8

hr_HR

hr_HR.iso88592

hr_HR.utf8

hrvatski

hsb_DE

hsb_DE.iso88592

hsb_DE.utf8

ht_HT

ht_HT.utf8

hu_HU

hu_HU.iso88592

hu_HU.utf8

hungarian

hy_AM

hy_AM.armscii8

hy_AM.utf8

icelandic

id_ID

id_ID.iso88591

id_ID.utf8

ig_NG

ig_NG.utf8

ik_CA

ik_CA.utf8

is_IS

is_IS.iso88591

is_IS.utf8

it_CH

it_CH.iso88591

it_CH.utf8

it_IT

it_IT.iso88591

it_IT.iso885915@euro

it_IT.utf8

it_IT@euro

italian

iu_CA

iu_CA.utf8

iw_IL

iw_IL.iso88598

iw_IL.utf8

ja_JP

ja_JP.eucjp

ja_JP.ujis

ja_JP.utf8

japanese

japanese.euc

ka_GE

ka_GE.georgianps

ka_GE.utf8

kk_KZ

kk_KZ.pt154

kk_KZ.utf8

kl_GL

kl_GL.iso88591

kl_GL.utf8

km_KH

km_KH.utf8

kn_IN

kn_IN.utf8

ko_KR

ko_KR.euckr

ko_KR.utf8

korean

korean.euc

ks_IN.utf8@devanagari

ks_IN@devanagari

ku_TR

ku_TR.iso88599

ku_TR.utf8

kw_GB

kw_GB.iso88591

kw_GB.utf8

ky_KG

ky_KG.utf8

lg_UG

lg_UG.iso885910

lg_UG.utf8

li_BE

li_BE.utf8

li_NL

li_NL.utf8

lithuanian

lo_LA

lo_LA.utf8

lt_LT

lt_LT.iso885913

lt_LT.utf8

lv_LV

lv_LV.iso885913

lv_LV.utf8

mai_IN

mai_IN.utf8

mg_MG

mg_MG.iso885915

mg_MG.utf8

mi_NZ

mi_NZ.iso885913

mi_NZ.utf8

mk_MK

mk_MK.iso88595

mk_MK.utf8

ml_IN

ml_IN.utf8

mn_MN

mn_MN.utf8

mr_IN

mr_IN.utf8

ms_MY

ms_MY.iso88591

ms_MY.utf8

mt_MT

mt_MT.iso88593

mt_MT.utf8

nb_NO

nb_NO.iso88591

nb_NO.utf8

nds_DE

nds_DE.utf8

nds_NL

nds_NL.utf8

ne_NP

ne_NP.utf8

nl_AW

nl_AW.utf8

nl_BE

nl_BE.iso88591

nl_BE.iso885915@euro

nl_BE.utf8

nl_BE@euro

nl_NL

nl_NL.iso88591

nl_NL.iso885915@euro

nl_NL.utf8

nl_NL@euro

nn_NO

nn_NO.iso88591

nn_NO.utf8

no_NO

no_NO.ISO-8859-1

norwegian

nr_ZA

nr_ZA.utf8

nso_ZA

nso_ZA.utf8

nynorsk

oc_FR

oc_FR.iso88591

oc_FR.utf8

om_ET

om_ET.utf8

om_KE

om_KE.iso88591

om_KE.utf8

or_IN

or_IN.utf8

pa_IN

pa_IN.utf8

pa_PK

pa_PK.utf8

pap_AN

pap_AN.utf8

pl_PL

pl_PL.iso88592

pl_PL.utf8

polish

portuguese

pt_BR

pt_BR.iso88591

pt_BR.utf8

pt_PT

pt_PT.iso88591

pt_PT.iso885915@euro

pt_PT.utf8

pt_PT@euro

ro_RO

ro_RO.iso88592

ro_RO.utf8

romanian

ru_RU

ru_RU.iso88595

ru_RU.koi8r

ru_RU.utf8

ru_UA

ru_UA.koi8u

ru_UA.utf8

russian

rw_RW

rw_RW.utf8

sa_IN

sa_IN.utf8

sc_IT

sc_IT.utf8

sd_IN

sd_IN.utf8

sd_IN.utf8@devanagari

sd_IN@devanagari

se_NO

se_NO.utf8

shs_CA

shs_CA.utf8

si_LK

si_LK.utf8

sid_ET

sid_ET.utf8

sk_SK

sk_SK.iso88592

sk_SK.utf8

sl_SI

sl_SI.iso88592

sl_SI.utf8

slovak

slovene

slovenian

so_DJ

so_DJ.iso88591

so_DJ.utf8

so_ET

so_ET.utf8

so_KE

so_KE.iso88591

so_KE.utf8

so_SO

so_SO.iso88591

so_SO.utf8

spanish

sq_AL

sq_AL.iso88591

sq_AL.utf8

sr_ME

sr_ME.utf8

sr_RS

sr_RS.utf8

sr_RS.utf8@latin

sr_RS@latin

ss_ZA

ss_ZA.utf8

st_ZA

st_ZA.iso88591

st_ZA.utf8

sv_FI

sv_FI.iso88591

sv_FI.iso885915@euro

sv_FI.utf8

sv_FI@euro

sv_SE

sv_SE.iso88591

sv_SE.utf8

swedish

ta_IN

ta_IN.utf8

te_IN

te_IN.utf8

tg_TJ

tg_TJ.koi8t

tg_TJ.utf8

th_TH

th_TH.tis620

th_TH.utf8

thai

ti_ER

ti_ER.utf8

ti_ET

ti_ET.utf8

tig_ER

tig_ER.utf8

tk_TM

tk_TM.utf8

tl_PH

tl_PH.iso88591

tl_PH.utf8

tn_ZA

tn_ZA.utf8

tr_CY

tr_CY.iso88599

tr_CY.utf8

tr_TR

tr_TR.iso88599

tr_TR.utf8

ts_ZA

ts_ZA.utf8

tt_RU.utf8

tt_RU.utf8@iqtelif.UTF-8

tt_RU@iqtelif.UTF-8

turkish

ug_CN

ug_CN.utf8

uk_UA

uk_UA.koi8u

uk_UA.utf8

ur_PK

ur_PK.utf8

uz_UZ

uz_UZ.iso88591

uz_UZ.utf8@cyrillic

uz_UZ@cyrillic

ve_ZA

ve_ZA.utf8

vi_VN

vi_VN.tcvn

vi_VN.utf8

wa_BE

wa_BE.iso88591

wa_BE.iso885915@euro

wa_BE.utf8

wa_BE@euro

wo_SN

wo_SN.utf8

xh_ZA

xh_ZA.iso88591

xh_ZA.utf8

yi_US

yi_US.cp1255

yi_US.utf8

yo_NG

yo_NG.utf8

zh_CN

zh_CN.gb18030

zh_CN.gb2312

zh_CN.gbk

zh_CN.utf8

zh_HK

zh_HK.big5hkscs

zh_HK.utf8

zh_SG

zh_SG.gb2312

zh_SG.gbk

zh_SG.utf8

zh_TW

zh_TW.big5

zh_TW.euctw

zh_TW.utf8

zu_ZA

zu_ZA.iso88591

zu_ZA.utf8

```

----------

## Karl_R

Thanks AeroIllini,

That did help!  :Smile: 

I'm not sure which part fixed it, as you say in following the guide you end up changing a lot of things probably just adding the LANG variable??

One extra thing I did, which may or may not be significant was to change the 

```
CONFIG_NLS_DEFAULT="utf8" 
```

to 

```
CONFIG_NLS_DEFAULT="UTF8" 
```

 in my kernel config.

either way, in doing that and following the UTF8 guide it magically all works now! Not totally satifactory but I don't have time to find out the full reason why it broke and which change fixed it.

Cheers

Karl

----------

