You can do what you want very easily.
Assumming only a two partition setup, you have to make the FAT partition your first primary partition (it has to be in the same order in the partition table and on the disk, it's usually the case, but strange things happen in Windows if you don't).
On your EXT partition install Ubuntu.
On the MBR install grub as following (I assume you already have a linux machine and grub2 working on it and that your pendrive is detected as /dev/sdb):
mount -t ext2 /dev/sdb2 /mnt
grub-install --no-floppy --root-directory=/mnt/ /dev/sdb
This will setup grub on mbr and install all necessary files on your ubuntu partition. Next you need to setup your grub.cfg with a menuentry as follows (read grub2 documentation or the grub.cfg on your linux pc to build a full grub.cfg):
menuentry 'Ubuntu, con Linux 3.2.0-39-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd1,msdos2)'
search --no-floppy --fs-uuid --set=root UBUNTU_PARTITION_UUID
linux /boot/vmlinuz-3.2.0-39-generic-pae root=UBUNTU_PARTITION_UUID ro quiet nosplash
initrd /boot/initrd.img-3.2.0-39-generic-pae
}
You need your partition UUID for this to work on computer with more than one disk:
# blkid /dev/sdb2
/dev/sdb2: LABEL="GPART" UUID="75cdfe28-0ad8-4f0a-8c1d-9af6b2a5ba88" TYPE="ext2"
I'll leave it up to you to find out how to add a second entry for memtest86+, which is perfect for this kind of rescue flash drive.
Some flash drives can check if written data is all zeroes and just unmap that region instead of programming flash memory. Though I don't know how common it is.
Currently I am working at MMC controller (can't tell you whose, this is a secret :-) ) and its firmware checks data content, not on write, but later during erase and GC. It unmaps all found zero regions.
As to how to
"find out" if this wear leveling is enable or not.
You can try to compare reading speed of previosly written zero-filled data block and random-filled data block (better to poweroff you drive after write to avoid cache using). If your flash drive checks content of incoming data and just unmaps written region, then reading this region should be much faster because controller can skip actual reading from flash (which is a long operation).
Best Answer