Thanks !
Is there any way to check an existing FAT32-formatted card, without erasing it ?
Yes, just go to a terminal window, su to root and type the following:
umount /mnt/card
badblocks -sv /dev/mmcda
(Note /dev/mmcda instead of /dev/mmcda1. You can scan just /dev/mmcda1 if you like, but using /dev/mmcda will scan the whole card including data outside of the first partition.)
If this shows up bad blocks, you can use the -o option to write a list of bad blocks to a file, e.g.:
cd /tmp
badblocks -svo sd_card_badblocks /dev/mmcda
You can then use this file to tell mkfs which blocks to skip (has the same effect as running mkfs with -c but means you don't have to scan the card again).