# cant mount fat fs [solved]

## damoncf

I am attempting to mount a fat FS (both my thumb drive as well as SD Card) and I get this error in dolphin:

```

An error occured while  Accessing 'volume (vfat)' The system responded: org.freedesktop.hal.device.volume.unknownfailure: wrong fs type, bad option, bad superblock on dev/sdb1, missing codepage or helper program or other error

```

My cat /proc/filesystems does show vfat and fdisk -l gives me:

```

  Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         992     1999749+   6  FAT16

```

(the above is my thumb drive)

Please help.

DamoncfLast edited by damoncf on Wed Nov 19, 2008 10:46 pm; edited 1 time in total

----------

## weaksauce

I believe the filesystem type for FAT16 is msdos NOT vfat.  Can you try specifying that instead of vfat?

----------

## damoncf

My proc/filesystems:

```

localhost MP3 # cat /proc/filesystems

nodev   sysfs

nodev   rootfs

nodev   bdev

nodev   proc

nodev   sockfs

nodev   usbfs

nodev   pipefs

nodev   anon_inodefs

nodev   tmpfs

nodev   inotifyfs

nodev   devpts

        ext3

        ext2

nodev   ramfs

        msdos

        vfat

nodev   mqueue

        udf

        iso9660

        ntfs

```

If you were referencing something else please specify.

Damoncf

----------

## weaksauce

okay, but what mount command are you using to mount the drive?  If you're manually specifying vfat either in fstab or on the command line, that's what I was referring to.  I would try manually specifying -t msdos to mount, or setting it in your fstab if that's how you're mounting it.  There may also be a flag you need to pass to mount to force FAT16, I don't remember exactly.  I just remember that mount was weird about defaults with FAT16 drives.  Hope this helps.

----------

## damoncf

I was attempting to let udev ( I think that is the automounting program) mount it.  I actually just tried mounting it manually and it did require msdos to mount but I could have sworn I was able to mount them before with vfat.  Again I am trying to get them to mount on their own within the window manager (IE kde4.1.2 or Gnome).

Damoncf

----------

## jstead1

You do need the right codepage to mount the msdos filesystem.

I had problems with some usb keys, because I didn't have the right code page.

----------

## damoncf

Excuse my ignorance but what do you mean by codepage?

Damoncf

----------

## qxtr01

you can find the various codepage options under File systems >> Native language support

----------

## Lucractius

Codepages are like fonts. (simplification analogy, im aware they arent fonts) That just an easy way to think of them.

Just like not having the correct font makes a document unreadable, not having the correct codepage support installed means the file will be unreadable.

For more info http://en.wikipedia.org/wiki/Code_page

----------

## damoncf

I went through the codepages in the kernel and installed the UTF one at the bottom of the list. It said it was needed for fat and joilet filesystems.

I will post again to let you know if it worked. 

Damoncf

----------

## honp

I think code page is not important. 

You should try 

mount /dev/sdb1  /mnt/something - and post reply here

then 

mount -t msdos /dev/sdb1 /mnt/something - and again post reply

----------

## damoncf

```

localhost damon # mount /dev/sdb1 /media/usbdisk-1

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

```

```

localhost damon # mount -t msdos /dev/sdb1 /media/usbdisk-1

localhost damon #

```

I mounted with no problems with the msdos switch and faile with out it.

Damoncf   :Question: 

----------

## linuxtuxhellsinki

```
$ zgrep -i "nls\|codepage" /proc/config.gz

CONFIG_UDF_NLS=y

CONFIG_FAT_DEFAULT_CODEPAGE=850

# CONFIG_SMB_NLS_DEFAULT is not set

CONFIG_NLS=y

CONFIG_NLS_DEFAULT="utf8"

CONFIG_NLS_CODEPAGE_437=y

# CONFIG_NLS_CODEPAGE_737 is not set

# CONFIG_NLS_CODEPAGE_775 is not set

CONFIG_NLS_CODEPAGE_850=y

CONFIG_NLS_CODEPAGE_852=m

# CONFIG_NLS_CODEPAGE_855 is not set

# CONFIG_NLS_CODEPAGE_857 is not set

# CONFIG_NLS_CODEPAGE_860 is not set

# CONFIG_NLS_CODEPAGE_861 is not set

# CONFIG_NLS_CODEPAGE_862 is not set

# CONFIG_NLS_CODEPAGE_863 is not set

# CONFIG_NLS_CODEPAGE_864 is not set

CONFIG_NLS_CODEPAGE_865=m

# CONFIG_NLS_CODEPAGE_866 is not set

# CONFIG_NLS_CODEPAGE_869 is not set

# CONFIG_NLS_CODEPAGE_936 is not set

# CONFIG_NLS_CODEPAGE_950 is not set

# CONFIG_NLS_CODEPAGE_932 is not set

# CONFIG_NLS_CODEPAGE_949 is not set

# CONFIG_NLS_CODEPAGE_874 is not set

# CONFIG_NLS_ISO8859_8 is not set

# CONFIG_NLS_CODEPAGE_1250 is not set

# CONFIG_NLS_CODEPAGE_1251 is not set

CONFIG_NLS_ASCII=m

CONFIG_NLS_ISO8859_1=y

CONFIG_NLS_ISO8859_2=m

CONFIG_NLS_ISO8859_3=m

# CONFIG_NLS_ISO8859_4 is not set

CONFIG_NLS_ISO8859_5=m

# CONFIG_NLS_ISO8859_6 is not set

# CONFIG_NLS_ISO8859_7 is not set

# CONFIG_NLS_ISO8859_9 is not set

# CONFIG_NLS_ISO8859_13 is not set

# CONFIG_NLS_ISO8859_14 is not set

CONFIG_NLS_ISO8859_15=y

# CONFIG_NLS_KOI8_R is not set

# CONFIG_NLS_KOI8_U is not set

CONFIG_NLS_UTF8=y

```

Make 'em all at least in modules and try again (I've also had problems with some burned DVDs without correct codepages).

----------

## damoncf

Thanx there was one codepage for the US that I had missed.  I built that one into the kernel and created modules from the rest. Now it works just fine.

Damoncf  :Very Happy: 

----------

