Kernel compile and upgrade failed
I'm using Slackware 12.2,upgrading from original kernel to recent one,which is 2.6.29.4.
I follow all the steps in here to upgrade and recompile the kernel. But when I booted the new kerne,the following error popped up; VFS:Cannot open root device "308" or unknown block (3,8) Please append and correct "root=" boot option;here are the available partitions; Kernel panic.not syncing:VFS:Unable to mount root fs on unknown block (3.8) Do you know why the error and how to solve this?Thank you and sorry for my bad English. |
I would check your boot managers configuration file if its grub then it would be menu.lst listed normally in /boot/grub/ the root= line is what its complaining about this needs to be the harddisk that you have your / partition
Also its possible you forgot to include in the kernel configuration drivers for your hard drive controllers or file system. |
I made the same mistake once. I configured ext3 as a module when it needs to be built in to the kernel.
|
as mlangdn said, when you recompile your kernel make sure your FS is listed as a built in (<y>) not as a module. If it is built as a module you will need to make an initrd.gz file that will tell the kernel what to load.
|
I recompiled the kernel again,and it shows sign of improvement although I failed to boot them;
VFS:Cannot open root device "308" or unknown block (3,8) Please append and correct "root=" boot option;here are the available partitions; sda1 sda2 sda8(My root partition) Kernel panic.not syncing:VFS:Unable to mount root fs on unknown block (3.8) These were the steps I did; 1.Edited my lilo.conf,changed root=/dev/hda8 to root=/dev/sda8. 2.Ran lilo,but there were some error that states root=/dev/sda8 is not a valid specification. 3.Rebooted and I found that the root's MBR isn't renewed. What I need to do now?? |
|
Edit lilo.conf again.
root=/dev/sda8 should be: root = /dev/sda8 Then re-run lilo and see if it gives an error. |
Quote:
make sure it worked and then when you boot, press tab or escape to get the LILO prompt and then select the correct kernel and add Code:
root=/dev/sda8 The problem with your LILO is because the current kernel you are running doesn't recognize your /dev/sda8, so it complaints. The solution is to use the old value and overwrite it during boot time using above's way |
Finally,I get to run my shiny new kernel and typing my post using the new kernel.
1.I edited the root = /dev/sda8 to root = /dev/root 2.I finally booted my new kernel,but of course it's not the end of my problems.I forgot to build some important modules,and I rebuild them and I get to run new kernel. To be frank,this is my first time compiling a new kernel.So far I did not notice increase in performance despite having the kernel shrinked slightly from 4.3 MB to 3.5 MB.But this should be a good experience for me indeed. |
You might not get so much of a boost in speed and such.. but you get better support for more things. But using a newer kernel, and a custom one is something that I see as a good thing anyways.
|
All times are GMT -5. The time now is 12:27 AM. |