From Alldroid:
UPDATE FROM A ROOTED PHONE (running 2.1):
If you have Koush's recovery installed, follow these steps BEFORE attempting to update to 2.2:
1. UNINSTALL the Recovery APK in Settings, Applications
2. Reboot
3. Run "adb shell"
4. Run "su"
5. Run "mount -o remount,rw /dev/block/mmcblk1p21 /system"
6. Run "cp /system/bin/logwrapper.bin /system/bin/logwrapper"
7. Reboot
IF YOU SKIP OR OTHERWISE DO STEP 4 INCORRECTLY, YOU WILL NOT BE HAPPY. PAY ATTENTION TO IT AND STEP 5 TO CONFIRM.
1. Run "adb shell" (you need adb setup and working from a command prompt. If you don't have that, see the ADB support link in Part A)
2. If you don't see "#", run "su" (you will see it if you've installed and run Koush's recovery bootstrapper)
3. Run "mount -o rw,remount /dev/block/system /system"
4. Run "cp /system/bin/su /system/xbin/su"
5. Run "ls /system/xbin/su" and make sure the results are `/system/xbin/su` and NOT `/system/xbin/su: No such file or directory`. If you see the later, repeat the previous step.
6. Copy the update.zip to your sdcard (see below for mirrors as they become available. update.zip released to the wild by P3Droid at MyDroidWorld)
7. Reboot into recovery (power down then hold down home, hold down power until you see moto logo, release power (still holding home). Once you see the triangle with ! in it, release home then press search)
8. Run update.zip