It is a virtuous habit to inspect your ext2 filesystem on the flash memory regularly. To do this, the tool dumpe2fs may be used in the following way: # dumpe2fs -h /dev/sda1 (you must be root and the device should not be mounted). The result should be similar to the following:
Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: c42a6963-5e6a-4cd2-b7d7-c8f09dca6c52 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: dir_index filetype sparse_super Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 32000 Block count: 127856 Reserved block count: 6392 Free blocks: 116456 Free inodes: 31922 First block: 1 Block size: 1024 Fragment size: 1024 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 2000 Inode blocks per group: 250 Filesystem created: Sat Sep 20 12:43:00 2003 Last mount time: Tue Oct 28 14:13:03 2003 Last write time: Tue Oct 28 14:28:27 2003 Mount count: 13 Maximum mount count: 35 Last checked: Sat Oct 18 11:28:26 2003 Check interval: 15552000 (6 months) Next check after: Thu Apr 15 11:28:26 2004 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Default directory hash: tea Directory Hash Seed: 118bee0a-efa5-4771-967e-41a0badd0355
A few important aspects need to be pointed out.
When the ext2 filesystem is created, it is by default given maximal usage before it has to be checked. These can be seen Maximum mount count (35) and Check interval (expiry date).
The usage so far: Mount count and Last checked .
The existence of corrupted files (bad blocks): Filesystem state .
You might get warnings about these things when you mount the device or when you try the read files from the device.
When the usage allocation has been spent, or there is evidence of file corruption, the thing to do is to run # fsck.ext2 /dev/sda1 with the device unmounted. After that, usage parameters will be freshly allocated and bad blocks will be gone.
When dealing with the vfat system, the dump does not seem to exist. The command # dumpe2fs -f /dev/sda1 for filesystems other than ext2 does not work for vfat. The tool dosfsck exists (it is still Alpha), and may be risky to use on a device you have not formatted yourself.