# mount fat32 missing codepage

## Guglie

ciao,

ho recentemente aquistato un lettore mp3 da 8GB

la partition table era strana, quindi ho ricreato la partizione e formattato in fat32

la cosa strana è che non riesco nemmeno a montarlo con gentoo!!

```
# fdisk -l /dev/sdb

Disk /dev/sdb: 8145 MB, 8145338368 bytes

251 heads, 62 sectors/track, 1022 cylinders

Units = cylinders of 15562 * 512 = 7967744 bytes

Disk identifier: 0x6f20736b

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        1022     7952151    b  W95 FAT32

# mount /dev/sdb1 /mnt/removable

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

# dmesg

[ 4691.727114] Unable to load NLS charset UTF-8

[ 4691.727167] FAT: IO charset UTF-8 not found

# zcat /proc/config.gz | grep UTF8

CONFIG_NLS_UTF8=y

```

idee..?   :Confused: 

----------

## riverdragon

Guarda se la codifica utf8 è selezionata nel kernel, sotto File systems -> Native language support

----------

## djinnZ

utf8 non può funzionare con fat. A naso mi pare che hai selezionato utf8 come tabella codici predefinita nelle impostazioni del kernel o/e che hai fat come builtin. Male perchè ha precedenza su vfat nel riconoscimento automatico.

Rivedi la configurazione del kernel e prova a montare specificando il filesystem. Che hai usato per formattare?

Se il partizionamento strano prevede cose come partizione primaria 4 con le prime tre coincidenti o partizione unica logica sempre nella quarta partizione primaria è un trucco per assicurare che certi sistemi operativi del piffero (prima tra tutti tutta la roba M$ escluso xp/2003 e successivi) non si accappottino con la gestione automatica dei volumi.

----------

## Guglie

innanzitutto grazie delle risposte  :Wink: 

 *djinnZ wrote:*   

> utf8 non può funzionare con fat. A naso mi pare che hai selezionato utf8 come tabella codici predefinita nelle impostazioni del kernel o/e che hai fat come builtin.

 

ok, non lo sapevo..  :Smile: 

ora ho la seguente configurazione:

```

  │ │    <M> MSDOS fs support                                             

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

  │ │    (437) Default codepage for FAT                                

  │ │    (437) Default iocharset for FAT                                

  │ │    <M> NTFS file system support                               

  │ │    [ ]   NTFS debugging support                                  

  │ │    [ ]   NTFS write support  
```

 *Quote:*   

> Che hai usato per formattare?

 

ho cancellato tutto con cfdisk e ho creato una normale partizione primaria.

a questo proposito: è importante specificare il type?

```
# fdisk -l /dev/sdb

Disk /dev/sdb: 8145 MB, 8145338368 bytes

251 heads, 62 sectors/track, 1022 cylinders

Units = cylinders of 15562 * 512 = 7967744 bytes

Disk identifier: 0x6f20736b

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        1022     7952151   83  Linux

# mkfs.vfat -F 32 -n iAudio -v /dev/sdb1

mkfs.vfat 2.11 (12 Mar 2005)

/dev/sdb1 has 251 heads and 62 sectors per track,

logical sector size is 512,

using 0xf8 media descriptor, with 15904302 sectors;

file system has 2 32-bit FATs and 8 sectors per cluster.

FAT size is 15502 sectors, and provides 1984158 clusters.

Volume ID is 484d6954, volume label iAudio 

(stessa cosa usando semplicemente mkfs.vfat /dev/sdb1)

# mount /dev/sdb1 /mnt/removable/

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

# dmesg

[ ... ]

[  931.929943] Unable to load NLS charset 437

[  931.929991] FAT: IO charset 437 not found

# zcat /proc/config.gz | grep 437

CONFIG_FAT_DEFAULT_CODEPAGE=437

CONFIG_FAT_DEFAULT_IOCHARSET="437"

CONFIG_NLS_CODEPAGE_437=y

```

riassumento: dmesg mi dice che non riesce a caricare il charset 437, che è però presente  staticamente nel mio kernel!!

----------

## .:deadhead:.

prova ad inserire 850

----------

## Luca89

 *Guglie wrote:*   

> a questo proposito: è importante specificare il type?

 

Certo che è importante, una partizione destinata a Fat devi dirgli che è di tipo per windows fat, devi cambiare il tipo con cfdisk, non ricordo quale sia il codice però lo riconoscerai sicuramente nella lista di cfdisk.

----------

## Guglie

le pessibilità sono parecchie:

```
 01 FAT12

 04 FAT16 <32M 

 06 FAT16   

 0B W95 FAT32

 0C W95 FAT32 (LBA)

 0E W95 FAT16 (LBA)

 0F W95 Ext'd (LBA) 

 11 Hidden FAT12 

 14 Hidden FAT16 <32M 

 16 Hidden FAT16 

 1B Hidden W95 FAT32 

 1C Hidden W95 FAT32 (LBA)

 1E Hidden W95 FAT16 (LBA)

```

ok, le hidden le escluderei..

di queste mi pare che ho provato 06 e 0B

@.:deadhead:. proverò

----------

## djinnZ

in genere preferisco 0C ma come ti ho detto fat ha precedenza su vfat se sono tutte e due modulari o builtin (per esempio io ho vfat builtin e fat modulare, neanche sempre, quindi mi va in automatico su vfat) quindi devi specificare il filesystem.

In ogni caso il riconoscimento dovrebbe avvenire in base ad una apposita stringa di identificazione in testa al filesystem, il tipo partizione serve solo a far capire a windozz macos od a certe versioni molto automatizzate di linux che non deve proporre automaticamente di formattarla se non la riconosce.

Potendo riformatta e ripartiziona da windows (c'è in giro un partizionatore per usb stick rilasciato dalla hp, mi pare, che risolve molti problemi, la gestione disco è meglio lasciarla da parte) se pensi di usarla con entrambi i sistemi.

----------

## Guglie

 *.:deadhead:. wrote:*   

> prova ad inserire 850

 

compilato e messo come default: dmesg mi riporta la stessa cosa (Unable to load NLS Charset 850)

@djinnZ: grazie delle spiegazioni molto chiare. a me di usarla con win non interessa. devo però usare vfat perchè il firmware del lettore mp3 deve poter leggere la musica  :Wink: 

EDIT: preso da un dubbio ho provato a usare ext3: ho formattato e montato senza nessun problema

----------

## Luca89

Io proverei la 0C, poi riformatta e rimonta la partizione. Ora che ci penso ricordo che con un lettore mp3 avevo dei problemi a formattarlo con linux per via del fatto che usava un'allocazione diversa dei blocchi. Se hai la possibilità potresti provare a formattarlo da windows e montarlo dopo su linux. Infine un'altra possibilità potrebbe essere quella di non partizionarlo e formattare direttamente /dev/sda o quello che è.

----------

## nikko96

Vedo che quello che ti serve non è stato compilato

staticamente nel kernel

hai provato prima del mount con

```
modprobe msdos && modprobe vfat
```

----------

## Guglie

@nikko96: si, mi sono dimenticato di dire che ho controllato che i moduli fossero stati caricati. ho pure provato a compilare il filesystem builtin e non cambia niente.

vabbeh, appena ho un attimo di tempo posto un bug.

grazie mille ancora a tutti!  :Wink: 

----------

