Originally Posted by mukulm
I was having the same problem after installing Fedora 9 as a dual boot with Ubuntu. The problem was solved when I entered the root in the traditional format (i.e. non-UUID way). So instead of:
kernel /boot/vmlinuz root=UUID=...
kernel /boot/vmlinuz root=/dev/sda3
Don't know the reason why this worked, but it solved the problem for me!
Sorry, I know my reply is late, but because Google directed me here, it means this page is still highly searched and retrieved.
The reason for root=/dev/sda3 is because of this:
vmlinuz is the kernel image, where all the drivers and kernel modules are first unpacked and executed. This stage is also when each of the hardware are recognized, among them the harddisk. So perhaps /dev/sda, /dev/sdb or /dev/hda, /dev/hdb (older kernel) will be recognized, and and for volume group it will be something like /dev/volgroup00/logvol00.
Next, at the end of the vmlinuz operation, is executing the "init" function (taken from 2.6.34 linux kernel source code:
start_kernel()'s long list of initialization:
680 /* rootfs populating might need page-writeback */
682 #ifdef CONFIG_PROC_FS
692 acpi_early_init(); /* before LAPIC and SMP init */
And rest_init() calls:
424 static noinline void __init_refok rest_init(void)
430 kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
and kernel_init() calls:
854 static int __init kernel_init(void * unused)
914 return 0;
and followed by init_post():
814 static noinline int init_post(void)
and this is where and when the files at "/" is read, so the root filesystem must be mounted correctly at this point. And this depends which partition u put the OS files.