Ok, i got stuck.
Here are what I've done so far.
1) NAND restore.
2) Boot into the original emergency mode and fdisk /dev/hda there, format the drive into ext3 plus a separate swap partition.
3) Install uboot from SD. (DON'T install from CF, because the uboot will recognize the external card as /dev/hda1 rather than the internal drive!)
4) Boot into the new pdaXrom emergency mode (Press "OK" before power on)
5) Remove the uboot installer files on SD
6) Copy 2or0's kernel (renamed as "kernel.img") and pdaXrom's autoboot.sh to the root of SD.
7) cd /mnt/card
sh autoboot.sh ./
...
But the flashing took so fast, only reporting that there is no bad block, and it starts to reboot very quickly. It seems 2or0's kernel is not flashed properly.
Booting into the pdaXrom emergency mode again, uname -a shows the kernel is still 2.6.16, not 2.6.22.9.
And in the pdaXrom emergency mode the system freezes when I am trying to do something with the internal drive (already formatted as ext3 before installing uboot). The disk green light doesn't lit. Even a simple ls command stops everything.
So, questions:
Q1: Is it correct to use the pdaXrom's autoboot.sh or something else to flash 2or0's kernel?
Q2: Do i need to change /etc/fstab in order to access the internal drive?