The kernel booted fine, but it can't find the root filesystem. What disks have you mounted in the VM? What filesystem type is the root filesystem, what disk type? Are all the necessary drivers compiled in the kernel (forgetting one of the drivers is a common mistake)?
–
GillesSep 16 '12 at 1:59

@Gilles I didn't mount a filesystem. After compiling I went straight into the file where the bzImage is located (../arch/x86/boot) and did the command "qemu -kernel bzImage". thats when I got the error.
–
Coder404Sep 16 '12 at 13:12

1 Answer
1

The kernel is looking for a root filesystem. You need to provide one. You can't interact with a kernel without running processes on it, and the initial process has to be loaded from somewhere: when the kernel starts, it mounts a filesystem (the root filesystem) on the directory /, then runs the program /sbin/init. The init program is normally in charge of running boot scripts and starting services including programs that let users log in.

You must make sure that the kernel is able to mount the root filesystem. It must have drivers for the filesystem type and for all the layers involved in the block device (disk controller (SCSI/SATA/IDE/USB/… adapter), partition type, etc.).

Linux offers an additional possibility, which is to load an initial filesystem in RAM that's used during the boot process in order to locate and mount the root filesystem. This initial filesystem can contain modules that handle the device and filesystem type of the root filesystem. There are two slightly different mechanisms: initrd and initramfs.