I had to create an initrd from scratch for my slackware install. Here's what I can recall from memory:
dd if=/dev/zero of=initrd.img bs=1024k count=4
mke2fs initrd.img
mkdir initrd.img.dir
mount initrd.img initrd.img.dir
cat <initrd.img.dir
insmod cciss.o
EOF
cp -a /sbin/insmod initrd.img.dir
cp -a /tmp/cciss.o initrd.img.dir
Then I may have loaded up initrd.img.dir with a simple bash environment (see chroot-bash.html).
umount initrd.img.dir
rmdir initrd.img.dir