# bad superblock fat32 -  can't mount

## andermic

When I try to mount my fat32 hard drive, this is what I get.

```
bash-2.05b# mount -t vfat /dev/hdc1 /mnt/music

mount: wrong fs type, bad option, bad superblock on /dev/hdc1, or too many mounted file systems
```

fdisk tells me this:

```
bash-2.05b# fdisk -l /dev/hdc1

Disk /dev/hdc1: 120.0 GB, 120031478784 bytes

255 heads, 63 sectors/track, 14592 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

     Device Boot      Start         End      Blocks   Id  System

/dev/hdc1p4          128454      128456       19911    0  Empty

Partition 4 does not end on cylinder boundary.
```

I converted the partition from ntfs to fat32 with partition magick so that I would be able to write to it from linux while I move my files around and format everything with ext2 fs.  I would just format, only problem is I need all the stuff on this drive.  If I can just mount it, I can go on from there, but since I can't, anyone know of anything I can do.  I tried a few things with the program parted, mostly just resizing.  And dosfsck on the drive, but nothing is changing it.  I am also using kernel 2.6.8.1-ck7, and I read something about fat32 not working with 2.6.8.1, is this true.

thanks

----------

## tollwilly125

after you try to mount, what does 

```
$dmesg
```

 say? Please post it.

----------

## andermic

Unable to load NLS charset cp437

FAT: codepage cp437 not found

 /dev/ide/host0/bus1/target0/lun0: p1

Unable to load NLS charset cp437

FAT: codepage cp437 not found

----------

## andermic

So I take is I just need to load that code page under file systems in the kernel..? I did not know that I could use dmesg for that.

----------

## andermic

ok, I added codepage 437 to my kernel, and looked under the dos/fat/ntfs section and codepage is set to 437.  But I still get the same error and dmesg still tells me the same thing.  Any ideas?

----------

## andermic

I just had to add the ISO cp that fat was looking for... it wasnt enabled in the kernel, thanks for making me look at that to help myself, I appreciate it.

----------

## tollwilly125

Not a problem. This seems to be a  recurring problem with USB storage devices and the 2.6 kernels. Glad you got it fixed.

----------

## pvincent

Thank you guys,

I fixed my problem.

The codepage was missing in my kernel config.

I've just load the default codepage cp437 as module and now it works fine.

I definitely love this forum...  :Very Happy: 

----------

## SerfurJ

i'm having this same problem.  i get this when trying to mount the usb drive (after setting up the partition type as FAT32 (b) in fdisk and vfat file system with mkfs.vfat -F 32):

```
mount: wrong fs type, bad option, bad superblock on /dev/sda1,

       or too many mounted file systems

```

and this in /var/log/messages:

```
Unable to load NLS charset cp437

FAT: codepage cp437 not found 
```

..when i try to mount the usbdrive.  

this is in my fstab:

```
/dev/sda1   /mnt/usbstick      vfat      user,noauto,umask=002,gid=35,codepage=437  0 0

```

i have cp437 compiled as an option for the vfat module and the vfat module loaded.  these modules are loaded.

```
vfat                   11840  0 

fat                    39104  1 vfat

sd_mod                 15872  0 

usb_storage            42976  0 

nfs                    95152  1 

snd_pcm_oss            49000  0 

snd_mixer_oss          17344  1 snd_pcm_oss

udf                    88132  0 

agpgart                27624  0 

sg                     29728  0 

nfsd                   90440  1 

exportfs                4992  1 nfsd

lockd                  57864  3 nfs,nfsd

sunrpc                130404  5 nfs,nfsd,lockd

parport_pc             22144  1 

lp                      8424  0 

parport                34440  2 parport_pc,lp

ehci_hcd               25860  0 

emu10k1_gp              2496  0 

gameport                3584  1 emu10k1_gp

usbhid                 22464  0 

usblp                  10816  0 

nvidia               2074504  12 

snd_emu10k1            91336  0 

snd_rawmidi            20260  1 snd_emu10k1

snd_pcm                84744  2 snd_pcm_oss,snd_emu10k1

snd_timer              21060  1 snd_pcm

snd_seq_device          6472  2 snd_emu10k1,snd_rawmidi

snd_ac97_codec         65732  1 snd_emu10k1

snd_page_alloc          8840  2 snd_emu10k1,snd_pcm

snd_util_mem            3264  1 snd_emu10k1

snd_hwdep               7108  1 snd_emu10k1

snd                    46436  10 snd_pcm_oss,snd_mixer_oss, snd_emu10k1,snd_rawmidi,snd_pcm, snd_timer,snd_seq_device,snd_ac97_codec, snd_util_mem,snd_hwdep

soundcore               7456  1 snd

ohci_hcd               18436  0 

usbcore               101540  7 usb_storage,ehci_hcd, usbhid,usblp,ohci_hcd

st                     34972  0 

scsi_mod               97676  4 sd_mod,usb_storage,sg,st

unix                   22964  126 

```

i've gotten the usb stick to work with reiserfs.  the problem is with vfat.  i'm using kernel 2.6.8-gentoo-r3.

thanks.Last edited by SerfurJ on Tue Nov 09, 2004 9:04 pm; edited 2 times in total

----------

## xenon

 *andermic wrote:*   

> fdisk tells me this:
> 
> ```
> bash-2.05b# fdisk -l /dev/hdc1
> 
> ...

 

Probably it doesn't matter here, but it's something everyone dual-booting should know. Windows like partitions to end on cylinder boundaries; linux (and possibly other systems) doesn't care. This can lead to fs corruption and data loss when manipulating Windows partitions with linux tools (yes, it also happened to me years ago). So, as bad as it's sounds, Partition Magic is a dual-booter's good friend.   :Wink: 

----------

## SerfurJ

i figured it out.  these were the modules i needed: nls_iso8859_1 and nls_cp437.

----------

## dkaplowitz

 *SerfurJ wrote:*   

> i figured it out.  these were the modules i needed: nls_iso8859_1 and nls_cp437.

 

That's exactly what I needed...thanks for posting that. They were pretty easy to find, but for anyone having trouble, they were under File Systems > Native Language Support.

----------

## Gentree

@Serfurj, 

could you edit your thread to break the line:

snd_pcm_oss,snd_mixer_oss,snd_emu10k1,snd_rawmidi,snd_pcm, snd_timer,snd_seq_device,snd_ac97_codec,snd_util_mem,snd_hwdep 

its making the thread pretty unreadable.

Thx.  :Cool: 

----------

## SerfurJ

Gentree, 

ok, i did.  but now your thread has a long line.

----------

## Gentree

Ha! Brilliant.  

I thought it was the code block that was fixing the width  :Embarassed: 

Anyway its a useful thread now I can read it better.

Thx  :Cool: 

----------

