how to create root file system?

Hi, BB community,

Please bear with me as linux layman (man still out of the door?)

I tried to build the beagleboard linux kernel image following 2 ways:

1. following instruction of,
using codesourcery to build demo image, I got uImage. u-boot.bin and
load.bin, and use ramdisk.gz as root file system
2. following instruction of,
using openembedded/bitbake to build console-image, I got uImage-
beagleboard.bin, console-image-beagleboard.tar.bz2. Then I need to
uImage in the 1st partition of SD card, and untar console-image-
beagleboard.tar.bz2 onto the 2nd partition as root file system

From either way, I lack the picture how to generate the root file
system, like console-image-beagleboard.tar.bz2, after a lot of
googling. I know "bitbake console-image" will generate everything for
me if starting from scratch. But it seems a better approach for my
specific project to manually compile the kernel first then build the
file system, instead of the totally automatic process of "bitbake
console-image", in this way I have more control.

Can anybody teach me how to generate the root file system (.tar.bz2)
for a specific built uImage

Thank you very much