[Desire Android Development] melethron:
I made a flashable zip that runs in recovery and does alignement/reformat there. It works fine in recovery (tested CWM 2.5.0.7 and 2.5.1.8). I make reiserfs and ext4 now and upload it. The zips will do the following:

- Align partitions if they aren't

- format as ext3 / ext4 / reiserfs

This way it is easy to make a aligned partition (without even booting my ROM). Also "switching" between reiserfs / ext3 / ext4 is easy, but note that it will "wipe" the partitions. But you can make a Nandroid backup -> flash zip -> nandroid restore. This works with ext3/4 on "normal custom recovery" and with reiserfs with my "custom custom recovery".

############################################
# Partition alignment by melethron #
############################################

===============================
Tue Jan 11 17:45:47 GMT 2011
===============================

+++ Check of 1024k Partition alignment
+++ Your Partition(s) were NOT aligned:

--- Your SD-Ext Partition started at sector: 27117720
--- and it should start at following sector: 27119616

--- Your Swap Partition started at sector: 30105810
--- and it should start at following sector: 30107648

+++ Your Partition(s) were modified:

+++ OLD Partition table of your SD-Card:

__________________________fdisk_Partition_table_____________________________

Disk /dev/block/mmcblk0: 15.9 GB, 15931539456 bytes
255 heads, 63 sectors/track, 1936 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 63 27117719 13558828+ c Win95 FAT32 (LBA)
/dev/block/mmcblk0p2 27117720 30105809 1494045 83 Linux
/dev/block/mmcblk0p3 30105810 31101839 498015 83 Linux
____________________________________________________________________________

+++ NEW Partition table of your SD-Card:

__________________________fdisk_Partition_table_____________________________

Disk /dev/block/mmcblk0: 15.9 GB, 15931539456 bytes
255 heads, 63 sectors/track, 1936 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 63 27117719 13558828+ c Win95 FAT32 (LBA)
/dev/block/mmcblk0p2 27119616 30107647 1494016 83 Linux
/dev/block/mmcblk0p3 30107648 31101839 497096 83 Linux
____________________________________________________________________________

+++ The SD-ext partition got formated with EXT3:

_________________________mke2fs+tune2fs_output______________________________
Filesystem label=sd-ext
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
93504 inodes, 373511 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=385875968
12 block groups
32768 blocks per group, 32768 fragments per group
7792 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
tune2fs 1.41.6 (30-May-2009)
Creating journal inode: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
tune2fs 1.41.6 (30-May-2009)
Filesystem volume name: sd-ext
Last mounted on: <not available>
Filesystem UUID: b16e1bfd-4070-4607-93ab-3f788081e870
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: unsigned_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 93504
Block count: 373511
Reserved block count: 0
Free blocks: 358878
Free inodes: 93493
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 91
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 7792
Inode blocks per group: 487
Filesystem created: Tue Jan 11 17:45:47 2011
Last mount time: n/a
Last write time: Tue Jan 11 17:45:58 2011
Mount count: 0
Maximum mount count: 22
Last checked: Tue Jan 11 17:45:47 2011
Check interval: 15552000 (6 months)
Next check after: Sun Jul 10 17:45:47 2011
Reserved blocks uid: 0 (user unknown)
Reserved blocks gid: 0 (group unknown)
First inode: 11
Inode size: 256
Journal inode: 8
Default directory hash: tea
Directory Hash Seed: 464c0993-1542-40d3-85be-cf241ea7cf69
Journal backup: inode blocks
____________________________________________________________________________

+++ The Swappartition got formated:

______________________________mkwap_output__________________________________
Setting up swapspace version 1, size = 509963264 bytes
____________________________________________________________________________

############################################################################
############################################################################

===============================
Tue Jan 11 17:46:20 GMT 2011
===============================

+++ Check of 1024k Partition alignment
+++ Your Partition(s) are already aligned

__________________________fdisk_Partition_table_____________________________

Disk /dev/block/mmcblk0: 15.9 GB, 15931539456 bytes
255 heads, 63 sectors/track, 1936 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 63 27117719 13558828+ c Win95 FAT32 (LBA)
/dev/block/mmcblk0p2 27119616 30107647 1494016 83 Linux
/dev/block/mmcblk0p3 30107648 31101839 497096 83 Linux
____________________________________________________________________________

+++ The SD-ext partition got formated with EXT3:

_________________________mke2fs+tune2fs_output______________________________
Filesystem label=sd-ext
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
93504 inodes, 373511 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=385875968
12 block groups
32768 blocks per group, 32768 fragments per group
7792 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
tune2fs 1.41.6 (30-May-2009)
Creating journal inode: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
tune2fs 1.41.6 (30-May-2009)
Filesystem volume name: sd-ext
Last mounted on: <not available>
Filesystem UUID: 30d62da7-b1a0-40d3-8df7-45c360fc232c
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: unsigned_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 93504
Block count: 373511
Reserved block count: 0
Free blocks: 358878
Free inodes: 93493
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 91
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 7792
Inode blocks per group: 487
Filesystem created: Tue Jan 11 17:46:20 2011
Last mount time: n/a
Last write time: Tue Jan 11 17:46:35 2011
Mount count: 0
Maximum mount count: 25
Last checked: Tue Jan 11 17:46:20 2011
Check interval: 15552000 (6 months)
Next check after: Sun Jul 10 17:46:20 2011
Reserved blocks uid: 0 (user unknown)
Reserved blocks gid: 0 (group unknown)
First inode: 11
Inode size: 256
Journal inode: 8
Default directory hash: tea
Directory Hash Seed: 0a7525f3-b5ac-4205-b359-4b7353af9919
Journal backup: inode blocks
____________________________________________________________________________

+++ The Swappartition got formated:

______________________________mkwap_output__________________________________
Setting up swapspace version 1, size = 509963264 bytes
____________________________________________________________________________

############################################################################
############################################################################

No need to do s-off for this if you don't like it. Use unrevoked to flash the image (alex-v tested it with s-on and it works fine). Also Zip will come ... i do other stuff atm. All this actually intended for next version but i release the stuff i finished already as a "preview"...