SD card is recognized but won't mount "can't read superblock"

Before you try anything else, copy the entire device to a safe place:

sudo dd if=/dev/mmcblk0 of=/var/tmp/safeplace bs=1024k

If dd gives you errors, something may be wrong with your device, or the card reader in your machine. Have you tried reading it on some other machine (I assume the answer is "yes", so read on!)

Next, use try reading the partition table:

sudo parted -l /dev/mmcblk0

What is the partition type?

  1. If it's vfat, maybe the superblock is corrupted; try sudo fsck.vfat /dev/mmcblk0p1 (check the man page for options).

  2. Did you actually create it on a linux machine? If not, maybe it's an exFAT filesystem. Try:

    sudo dd if=/dev/mmcblk0p1 bs=16 count=1 | hd
    

    and see if the first few bytes are 'EXFAT'. If so, install the fuse-based exfat:

    sudo apt-get install exfat-fuse
    

    and try mounting manually if the GUI won't automatically recognize it.

If this still doesn't work, well, we'll have to dig deeper :)


In my case, the error was looking like this:

Error mounting /dev/mmcblk0p1 at /media/severin/1885-EB0E:
  Command-line `mount -t "exfat" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000...

(notice the exfat in the error message)

The fix was simple, like specified here:

sudo apt-get install exfat-fuse exfat-utils

Then, I just clicked the device in Nautilus, and it worked.