Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an ARM device running linux using a micro sd card as it's storage. The sd card is split into 3 partitions, the boot partition, the linux partition and a 3rd partition for storage. The third partition is partitioned as FAT16 and formatted as such too.

On the device I swap between mounting the 3rd partition locally to access the storage and unmounting and using usb-gadget (modprobe g_file_storage file=/dev/mmcblk0p3) to share the partition over usb connection.

The problem I have is that the partition appears as unallocated when the device is attached via usb to a Windows machine (it appears fine in ubuntu/mac). I have tried both mkfs.vfat and mkdosfs from ubuntu.

I can use windows to format the "unallocated" partition but then when I try and mount the partition on the linux device (having done rmmod g_file_storage) it will not see the same filesystem that Windows created (presumably because the partition when shared is slightly different from the partition when mounted).

Has anyone found a way around this sort of issue?

share|improve this question
"an ARM device running linux using a micro sd card as it's storage." You mean a phone, right? – Hassan Jun 11 '12 at 8:26
It's not a phone, no. It will be an mp3 player. The sd card is the only storage on the board (not like a phone where it has internal storage and an sd card slot for extra storage). – Septih Jun 11 '12 at 8:34
up vote 2 down vote accepted

Adding removable=y to the end of modprobe fixed this for me.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.