Quote:
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=...
I entered:
kernel /boot/vmlinuz root=/dev/sda3
Don't know the reason why this worked, but it solved the problem for me!
-Mukul
|
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:
671 thread_info_cache_init();
672 cred_init();
673 fork_init(totalram_pages);
674 proc_caches_init();
675 buffer_init();
676 key_init();
677 security_init();
678 vfs_caches_init(totalram_pages);
679 signals_init();
680 /* rootfs populating might need page-writeback */
681 page_writeback_init();
682 #ifdef CONFIG_PROC_FS
683 proc_root_init();
684 #endif
685 cgroup_init();
686 cpuset_init();
687 taskstats_init_early();
688 delayacct_init();
689
690 check_bugs();
691
692 acpi_early_init(); /* before LAPIC and SMP init */
693 sfi_init_late();
694
695 ftrace_init();
698 rest_init();
699 }
700
And rest_init() calls:
424 static noinline void __init_refok rest_init(void)
425 __releases(kernel_lock)
426 {
430 kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
and kernel_init() calls:
853
854 static int __init kernel_init(void * unused)
855 {
856 lock_kernel();
913 init_post();
914 return 0;
and followed by init_post():
814 static noinline int init_post(void)
815 __releases(kernel_lock)
816 {
845 run_init_process("/sbin/init");
846 run_init_process("/etc/init");
847 run_init_process("/bin/init");
848 run_init_process("/bin/sh");
849
852 }
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.