Step 3: Making an aligned FAT32 format
Anyone can figure out alignment of the partition from many sources already posted on the web. One thing I could not find was a guide on how to align that pesky FAT32 format so that each cluster (allocation unit) is aligned inside the boundaries of erase blocks. Well, the Linuxmkfs.vfat utility has all the options we need to make this aligned format possible!

Please view this primer to FAT32 to get an idea of how the system is laid out on your disk. You normally have the first sector in the partition which is your Volume ID, which sits in the reserved space which is normally the first 32 sectors in the partition. This is followed by (2) copies of the File Allocation Tables, which vary in length when created depending on a variety of factors, including the chosen allocation unit size. The FAT size remains constant after creation. Please keep in mind for this discussion the physical size of a sector, which is 512 bytes.
The Golden Nugget
We will be changing the reserved sectors from the default value of 32, to a number that we will calculate from the reported size of the FAT tables after formatting. The goal will be to make the FAT tables end right at a 128K boundary, so each cluster of the file system will fall neatly within erase blocks on our disk!
First we will format our disk using FAT32 paying no mind to reserved sectors. This will report to us our FAT size as so:

user@host:~$ sudo mkfs.vfat -F 32 -n MultiBoot -s 32 -v /dev/sdd1
mkfs.vfat 3.0.7 (24 Dec 2009)
/dev/sdd1 has 224 heads and 56 sectors per track,
logical sector size is 512,
using 0xf8 media descriptor, with 31309312 sectors;
file system has 2 32-bit FATs and 32 sectors per cluster.
FAT size is 7641 sectors, and provides 977937 clusters.
Volume ID is 40c250bd, volume label MultiBoot .

The juicy bits are that 2nd to last line, it tells you the size on disk of 1 FAT table.

7641 sector FAT x 2 FATs x 512 bytes/sector = 7,824,384 bytes

The above formula shows you the exact amount of space the FAT tables are using at the beginning of your disk. This number is not usually going to be evenly divisible by 128K (131,072 bytes) as you can see 7,824,384 / 131072 = 59.695 erase block sized chunks. What we need to do is force the end of those FAT tables to end right at 60 blocks to do so we:

131,072 x 60 = 7,864,320 bytes in 60 erase blocks

7,864,320 - 7,824,384 = 39,936 bytes remainder

39,936 / 512 = 78 sectors remain

New reserved sector count for alignment = 78 

Those are all the fundamentals required to align a FAT32 partition, so that clusters on the disk fall in line with the erase blocks of the physical cell medium.

An example of the format command required:

sudo mkfs.vfat -F 32 -R 78 -n MultiBoot -s 32 -v /dev/sddx

  1. sudo - super user privledges
  2. mkfs.vfat - create a FAT file system
  3. -F 32 - 32 bit FAT (FAT32)
  4. -R 78 - Use 78 Reserved Sectors (instead of 32)
  5. -n MultiBoot - drive label, up to 11 characters
  6. -s 32 - 32 sectors per cluster 32 x 512 - 16K allocation unit size
  7. -v /dev/sddx - Device to format
Final Thoughts
Larger allocation units seem to make for better large file write speeds, I had the best performance at 64K allocation unit size, at around 15-16MB/second. As long as the calculations are all correct, you will notice much better write speeds on your newly aligned drive. They may not reach the speeds of a brand new drive, I don't have a new drive to compare side by side with this one. I went from about 6MB/sec write speed to about 12MB/second speeds on a drive using 32K cluster sizes. Read speeds are always around, or slightly above 30MB/second.

If a utility for Windows could be found that allows for advanced partition alignment that fdisk has, and the formatting options that mkfs.vfat allows for, a user could avoid having to use an alternate OS for this setup. 
Have fun,

John C.