enable following options in the kernel:

Device Drivers -> SCSI device support:
       -> SCSI device support
       -> legacy /proc/scsi/ support
       -> SCSI disk support
       -> SCSI generic support
       -> [SCSI logging facility]
Device Drivers -> USB Support:
       -> Support for Host-side USB
       -> USB device filesystem
       -> USB drives. it may be:
           - EHCI HCD (USB 2.0) support
           - OHCI HCD support
           - UHCI HCD (most Intel and VIA) support
           but probably only one driver will be used
       -> USB Mass Storage support
File Systems:
       -> File Systems -> DOS/FAT/NT Filesystems -> VFAT (Windows-95) fs support
       -> Native Language Support -> Codepage 437 (United States, Canada)

make and install your kernel. after reboot plug your USB device in and look at `dmesg`. you should see that kernel has found usb device and attached it as scsi dev. messages differ from one linux distribution to other.
once i was not able to see scsi dev after having done all that. the solution was a newer kernel, so if you fail, check carefully your kernel option and try another kernel.

so now you have a normal device file in /dev, which you can mount, fsck and so on. if you do not have any other scsi devices, it will be /dev/sda, if you already have one scsi, the flash will be added as /dev/sdb and so on. try to cat /proc/scsi/scsi and you will see some info about your flash device; finally, if you do not want to count your scsis, install sg3-utils package (for Debian) and run sg-map – it will show you your flash’s real /dev/sd*.

mount it somewhere: mount -t auto /dev/sda1 /mnt

keeping in mind all advantages of linux filesystems, i however advice you to left vfat fs on your flash – you will be able to use it with windows machines

and, of course, you can format it with let’s say `fsck -t ext3 /dev/sda1`, partition it and even make encrypted filesystem on it. i will try to explain how to do it later