[myTouch 3G, Magic Android Development] Fade2Bl4ck:
When I try to follow your steps in your post I get this from ADB

adb shell
$ su
# cd /data/local/tmp
# chmod 777 ./flash_image
# ./flash_image recovery /sdcard/recovery.img
mtd: read error at 0x00000000 (Out of memory)
mtd: read error at 0x00020000 (Out of memory)
mtd: read error at 0x00040000 (Out of memory)
mtd: read error at 0x00060000 (Out of memory)
mtd: read error at 0x00080000 (Out of memory)
mtd: read error at 0x000a0000 (Out of memory)
mtd: read error at 0x000c0000 (Out of memory)
mtd: read error at 0x000e0000 (Out of memory)
mtd: read error at 0x00100000 (Out of memory)
mtd: read error at 0x00120000 (Out of memory)
mtd: read error at 0x00140000 (Out of memory)
mtd: read error at 0x00160000 (Out of memory)
mtd: read error at 0x00180000 (Out of memory)
mtd: read error at 0x001a0000 (Out of memory)
mtd: read error at 0x001c0000 (Out of memory)
mtd: read error at 0x001e0000 (Out of memory)
mtd: read error at 0x00200000 (Out of memory)
mtd: read error at 0x00220000 (Out of memory)
mtd: read error at 0x00240000 (Out of memory)
mtd: read error at 0x00260000 (Out of memory)
mtd: read error at 0x00280000 (Out of memory)
mtd: read error at 0x002a0000 (Out of memory)
mtd: read error at 0x002c0000 (Out of memory)
mtd: read error at 0x002e0000 (Out of memory)
mtd: read error at 0x00300000 (Out of memory)
mtd: read error at 0x00320000 (Out of memory)
mtd: read error at 0x00340000 (Out of memory)
mtd: read error at 0x00360000 (Out of memory)
mtd: read error at 0x00380000 (Out of memory)
mtd: read error at 0x003a0000 (Out of memory)
mtd: read error at 0x003c0000 (Out of memory)
mtd: read error at 0x003e0000 (Out of memory)
mtd: read error at 0x00400000 (Out of memory)
mtd: read error at 0x00420000 (Out of memory)
mtd: read error at 0x00440000 (Out of memory)
mtd: read error at 0x00460000 (Out of memory)
mtd: read error at 0x00480000 (Out of memory)
mtd: read error at 0x004a0000 (Out of memory)
mtd: read error at 0x004c0000 (Out of memory)
mtd: read error at 0x004e0000 (Out of memory)
mtd: write error at 0x00000000 (Out of memory)
mtd: re-read error at 0x00000000 (Out of memory)
mtd: write error at 0x00000000 (Out of memory)
mtd: re-read error at 0x00000000 (Out of memory)
mtd: skipping write block at 0x00000000
mtd: write error at 0x00020000 (Out of memory)
mtd: re-read error at 0x00020000 (Out of memory)
mtd: write error at 0x00020000 (Out of memory)
mtd: re-read error at 0x00020000 (Out of memory)
mtd: skipping write block at 0x00020000
mtd: write error at 0x00040000 (Out of memory)
mtd: re-read error at 0x00040000 (Out of memory)
mtd: write error at 0x00040000 (Out of memory)
mtd: re-read error at 0x00040000 (Out of memory)
mtd: skipping write block at 0x00040000
mtd: write error at 0x00060000 (Out of memory)
mtd: re-read error at 0x00060000 (Out of memory)
mtd: write error at 0x00060000 (Out of memory)
mtd: re-read error at 0x00060000 (Out of memory)
mtd: skipping write block at 0x00060000
mtd: write error at 0x00080000 (Out of memory)
mtd: re-read error at 0x00080000 (Out of memory)
mtd: write error at 0x00080000 (Out of memory)
mtd: re-read error at 0x00080000 (Out of memory)
mtd: skipping write block at 0x00080000
mtd: write error at 0x000a0000 (Out of memory)
mtd: re-read error at 0x000a0000 (Out of memory)
mtd: write error at 0x000a0000 (Out of memory)
mtd: re-read error at 0x000a0000 (Out of memory)
mtd: skipping write block at 0x000a0000
mtd: write error at 0x000c0000 (Out of memory)
mtd: re-read error at 0x000c0000 (Out of memory)
mtd: write error at 0x000c0000 (Out of memory)
mtd: re-read error at 0x000c0000 (Out of memory)
mtd: skipping write block at 0x000c0000
mtd: write error at 0x000e0000 (Out of memory)
mtd: re-read error at 0x000e0000 (Out of memory)
mtd: write error at 0x000e0000 (Out of memory)
mtd: re-read error at 0x000e0000 (Out of memory)
mtd: skipping write block at 0x000e0000
mtd: write error at 0x00100000 (Out of memory)
mtd: re-read error at 0x00100000 (Out of memory)
mtd: write error at 0x00100000 (Out of memory)
mtd: re-read error at 0x00100000 (Out of memory)
mtd: skipping write block at 0x00100000
mtd: write error at 0x00120000 (Out of memory)
mtd: re-read error at 0x00120000 (Out of memory)
mtd: write error at 0x00120000 (Out of memory)
mtd: re-read error at 0x00120000 (Out of memory)
mtd: skipping write block at 0x00120000
mtd: write error at 0x00140000 (Out of memory)
mtd: re-read error at 0x00140000 (Out of memory)
mtd: write error at 0x00140000 (Out of memory)
mtd: verification error at 0x00140000 (Out of memory)
mtd: skipping write block at 0x00140000
error writing recovery: No space left on device
#

I have no idea why this isn't working for me?