LinuxQuestions.org
Register a domain and help support LQ
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 03-12-2006, 02:47 PM   #1
Ving
LQ Newbie
 
Registered: Sep 2004
Location: Bulgaria
Distribution: Slackware 10.2
Posts: 2

Rep: Reputation: 0
Kernel


Hi all,
I'm newbie in linux world.however I have a problem.When compile a kernel and reboot my system is halted on this error:"Kernel panic-not syncing: VFS: Unable to mount root fs on unknown-block (3,8)"
So I tried may time to compile kernel with different options but I always receive this message!Please help!i'm using Slackware 10.2
10x in advance
 
Old 03-12-2006, 03:10 PM   #2
anti.corp
Member
 
Registered: Nov 2005
Location: Copenhagen
Distribution: Debian E, Vectorlinux 5.1std, Arch, Gentoo 2006.0
Posts: 576

Rep: Reputation: 30
Hi, and welcome to Linuxquestions.

Perhaps you just missed installing the new kernel to lilo - after compiling run this:
Code:
/sbin/lilo
If thats not it, it would be nice if you could post your lilo.conf and what type of filesystem you are runnig?

A wonderfull compilingguide can be found here:

http://www.linuxquestions.org/questi...d.php?t=127095

(it worked for me more than once )

For a more detailed howto I recommend:
http://www.digitalhermit.com/linux/K...ild-HOWTO.html

Sincerely, Jorgen
 
Old 03-12-2006, 03:18 PM   #3
PenguinPwrdBox
Member
 
Registered: Oct 2003
Posts: 568

Rep: Reputation: 30
You need to make a new initrd for this kernel, so that it is able to read the fs on your root disk:
Code:
mkinitrd /boot/newinitrdname kernel-version
so, for instance:
Code:
mkinitrd /boot/initrd-2.6.11-1_smp 2.6.11-1_smp
The second arg, "kernel-version" should be the exact name of a folder in /lib/modules/ - and - VERY IMPORTANT - be for the kernel you are going to try to use - in this case - the new one.

You must then add the initrd to lilo.conf, and rerun lilo. Just copy the entry for the other kernel, and change the name to be the name of the one you just created.

Good luck
 
Old 03-12-2006, 07:25 PM   #4
sundialsvcs
LQ Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 7,169

Rep: Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205
I notice that this message is coming from Linux. Okay, that tells me that your boot-loader (Grub or LILO) did run, did load a kernel, did start it running... But Linux could not take the "root=" specification on the kernel command-line and use it to find a useable root filesystem.

The most basic question, aside from "what changed?", is ... are you specifying the right drive? Don't assume: check! Usually it's "/dev/hda3." I've never had success identifying it by volume-label.

Check "/etc/fstab" and make sure that the proper filesystem-type has been specified there.

A more obscure possibility is that you've used a type of filesystem for that drive that isn't supported by any driver that's built-in to the kernel. (The "initramfs" suggestion listed earlier is pursuing that angle.)
 
Old 03-12-2006, 11:19 PM   #5
foo_bar_foo
Senior Member
 
Registered: Jun 2004
Posts: 2,553

Rep: Reputation: 52
something else to think about is
if you compile support for your basic hardware like hard drive into the kernel not as modules then no need for pesky initrd
 
Old 03-13-2006, 10:41 AM   #6
sundialsvcs
LQ Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 7,169

Rep: Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205Reputation: 2205
Quote:
Originally Posted by foo_bar_foo
something else to think about is
if you compile support for your basic hardware like hard drive into the kernel not as modules then no need for pesky initrd
Yeah, perhaps that should be expounded-upon just a little bit...

For your computer to be able to talk to a particular device, and how to interpret a particular hard-disk format, Linux must have a driver for it. As you can guess, this is a layer of code that accepts generic requests from other parts of the kernel and converts them to the hardware-specific commands and control signals that this device understands.

The trick, for any "distro" writer, is that you simply can't anticipate just what kinds of hardware might be installed! But the user expects to be able to drop in a CD-ROM, reboot, and "it just runs." So they have to provide a way to figure out what drivers are needed, on the fly, and to load those drivers so that the system can boot.

The method that Linux uses to do this is what's called an initial ram-disk ("initrd" or "initramfs"). This is a little bootable-filesystem that is loaded into memory by the boot-loader along with the Linux kernel. Linux attaches to this ram-disk image (notice that Linux didn't have to load anything -- the boot loader did it for us), mounts the image, and runs the programs that are thereupon. Voilá! A perfect place to put a splash-screen (so the user doesn't see confusing text flashing by), and to do hardware-detection.

The initial-ramdisk image comes with a variety of device-driver modules and it is able to install those into the Linux kernel. Once loaded, the driver becomes a part of the kernel in every way. Filesystem drivers are also included, and if your root-drive is formatted using a filesystem that is not built-in to the kernel image, the initial-ramdisk must load it at this time.

So far, so good?

Well, when you have your system installed and everything's up-and-running. You know what hardware you have .. no, you don't have a DecSystem Model BR-549 Token Ring Controller and you never will .. and maybe you just want it to boot faster. It is possible to determine what modules are actually loaded, and instead of loading them to put them directly into the kernel. The initial-ramdisk step can, if you play your cards right, be omitted altogether.

On my system, I still use kernel-modules for some things, but all of the software needed to control the permanent hardware devices, and to recognize the filesystems that I use, is built directly into the kernel. An initial-ramdisk is not used.

Hope this helps.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Kernel 2.4 in Zipslack (Waring: unable to open an initial console | Kernel Panic...) kurtamos Linux - General 2 05-10-2006 01:58 PM
kernel includes at /usr/src/linux/include do not match current kernel. blanny Red Hat 1 03-09-2006 08:53 AM
Kernel-Patch Debian Logo 2.6.2 not correctly working for custom kernel 2.6.11 smp deepclutch Debian 3 06-27-2005 04:59 AM
kernel panic: try passing init= option to kernel...installation with Red Hat 9 kergen Linux - Hardware 1 09-30-2004 04:28 AM
New FAQ topic: Should I edit my kernel configuration?/Should I build a custom kernel? chort *BSD 10 09-11-2004 12:15 AM


All times are GMT -5. The time now is 10:26 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration