Are you using an "intird" image?
The fact that you can get to single user mode implies that the kernel and driver for the root device are partly working. In single user mode, do you see device nodes if you do "ls -l /dev/sd*"? It sounds like "udev" might not be creating the device nodes in "/dev". If you find that "udev" is not creating the device nodes you can try removing or renaming the files in "/etc/udev/rules.d". Also make sure that you have the files in "/lib/udev".
If you find the device nodes missing, you can temporarily create them like this.
mount -o remount,rw /
mknod -m u=rw,g=rw,o= /dev/sda b 8 0
mknod -m u=rw,g=rw,o= /dev/sda1 b 8 1
You can find out information about the "sda1" kernel device like this.
udevadm info -a -p /sys/class/block/sda1
The "lilo" boot-loader may have incorrect block lists for loading the kernel or "initrd". You can try reinstalling "lilo". Also check to make sure that the "/boot/vmlinuz" link points to where you expect, or use the complete kernel file name in "lilo.conf". You will have to use "chroot" from a rescue disk to do that.
mount /dev/sda1 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
ls -l /boot/vmlinuz
ls -l /boot