LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Kernel (https://www.linuxquestions.org/questions/linux-kernel-70/)
-   -   Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) (https://www.linuxquestions.org/questions/linux-kernel-70/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block-0-0-a-458751/)

OR13 06-27-2006 08:37 AM

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
 
Hello! :)
I executed the following steps:
1) Download kernel 2.6.16 (FC5's 2.6.16-1.2122) from the distribution's SRPM folder.
2) Unzip source-RPM, etc...
3) Configure with 'make gconfig' (Here is my .config file).
4) make, make modules, make install, make modules_install.

Everything seemed to work fine, and I was happy with my configuration. But then, when I booted the new kernel, I got the infamous message saying "Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)".
I've googled this message maybe a 100 times, and looked through this very forum. Many solutions were suggested, but none helped me. I think I compiled this kernel about 15 times...

First, most of the solutions are distribution-specific, and do not help me with Fedora Core 5.
Second, almost all of the people who had this problem use lilo, and had some mistake with the lilo configuration. I use grub, and beside the fact that I let 'make install' configure it for me (which usually works perfectly on FC), I checked, double checked and triple checked the grub configuration file. If this is not enough :p, here it is. The second kernel (Fedora Core (2.6.16-1.2133_FC5)) is my default kernel, I didn't compile it but rather installed it from RPM, and it works perfectly.

More information I can think of:
1) My Linux drive is regular IDE hard-drive, it's dev is /dev/hdb (I think /boot is /dev/hdb1 and / is /dev/hdb2). Linux (FC3, to be exact) partitioned it.
2) Both /boot and / are ext3 (see kernel .config file above for detail about my configuration - ext3 is compiled into the kernel).
3) mkinitrd works fine. I even tried to create a new initrd file instead of the one that 'make install' creates - just in case... It had the same problem.
4) I have gcc 4.1.1. I've had problems in the past with programs that require gcc 3.x and are compiled with gcc 4.x. Can this possibly be a cause of trouble with the kernel? Though this seems almost impossible, I have to point this out...
5) When booting, I received no further error messages beside the kernel panic. I saw in several places references to other error messages (such as "Replace root= line" or similar), but I received none.
6) This is the first time I'm compiling a kernel, so it is possible that I made some kind of mistake with the configuration... This is why I gave a link to it above.

If there is any more information you need in order to understand this problem, I'd be happy to submit.


Thank you very very much! :D
O.R. :jawa:

sundialsvcs 06-27-2006 09:16 AM

Here's an explanation of the problem, step by step:

"Kernel panic - " The computer has reached a point where it is unable to continue; it has no choice but to halt.

"- not syncing" "The good news is, I wasn't in the middle of trying to write un-saved changes to disk when I died." Linux tries to do this ("to sync the filesystem") just before it halts, and it's telling you .. albeit in a backwards sort of way .. that it succeeded in doing that.

"Unable to mount root filesystem" One of the first things that the kernel must do is to "mount" (make available) the "root" (that is, "/") file system. It could not do that.

"On unknown block(0,0)" This is the device-number (0) and the partition-number (0) of the device where the kernel expects the root filesystem to be.

Probable causes: (in order)
  1. The most likely cause is that the root= parameter, which must be specified in the boot-loader's kernel command line, is incorrect or specifies the wrong device. You're supposed to be able to identify the device by label; I've never gotten that to work. I use something like root=/dev/hda1.
  2. Boot-loaders like Grub may count partitions starting from #0; Linux counts them from #1.
  3. Some distros use a complicated "initrd" mechanism to load disk drivers. If this process isn't working for your particular device, there can be grief.

OR13 06-27-2006 01:02 PM

sundialsvcs:
First of all, thank you. But (there's always a but, huh?)...

Here is the configuration (from the previously linked menu.lst - grub configuration) for:

A) My default, working, kernel:
Quote:

title Fedora Core (2.6.16-1.2133_FC5)
root (hd1,0)
kernel /vmlinuz-2.6.16-1.2133_FC5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.16-1.2133_FC5.img
B) My new, compiled, non-working :tisk:, kernel:
Quote:

title Fedora Core (2.6.16-060604)
root (hd1,0)
kernel /vmlinuz-2.6.16-060604 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.16-060604.img
They are the same... How come one works and the other doesn't???

OR13 06-29-2006 09:51 AM

Any other ideas? Please???
I've tried using the other kernel's initrd file, I changed the "/dev/VolGroup00/LogVol00" to "/dev/hdb2" (which is my root filesystem), I don't know what else I can do..!

Any ideas?

Thank you,
O.R.

android_online 06-29-2006 10:25 AM

What kind of hard drive you have. You sure you have the required drivers compiled in? If still it doesn't work - boot up the working kernel, run dmesg, compare the section where it's mounting '/' with the corresponding section just before the panic msg with the new kernel.
Hope that helps.

silmaril8n 06-29-2006 03:16 PM

I'm having the same types of issues that I'm reading about in various posts here.

When I boot up with 2.4.31 (default Slackware 10.2) and run "dmesg | grep vfs" I see: "VFS: Mounted root (ext3 filesystem) readonly." Is there a better phrase to look for there?

I've made sure the compile ext3 into the kernel (3 times) but it has changed nothing. Any more ideas on this matter?

android_online 06-29-2006 04:02 PM

grep for hda if you have IDE drive or sda for SCSI in dmesg. You should be getting at least 3 matches; type of your drive, nr of sectors, and nr of partitions. Before the FS the kernel need to find the drivers for your hard drive. Include the drivers from the Block Device section of the config menu.

If you can't figure that out compare the .config from the running kernel with the 1 in new kernel. Look out for differences in 'Block Device' section.

silmaril8n 06-29-2006 04:34 PM

"dmesg | grep hda" brought up nothing at all.

I compared the two .config and there were too many differences (even in the Block Device section) to try to discern anything. Maybe this was a bad idea, but what I did was load the 2.4.31 .config file through "make menuconfig" (2.6.17), and then I went through there and turned off what I was absolutely sure wasn't needed. It's a pretty bloated kernel from what I was making before, but maybe it will do the trick? I can recompile it again later if there is an issue. More to come...

silmaril8n 06-29-2006 05:33 PM

Wow. The kernel took an extra 10 minutes to compile from all the extra stuff in it and it still crashed at the same exact spot. I'm not sure where else to go with it...

android_online 06-29-2006 07:08 PM

I can have a look at it if you want. Send the dmesg o/p from the working kernel and .config from the new one.

w3bd3vil 06-29-2006 07:12 PM

why dont you download the rpm file and update your kernel through that.

silmaril8n 06-29-2006 08:06 PM

Quote:

Originally Posted by android_online
I can have a look at it if you want. Send the dmesg o/p from the working kernel and .config from the new one.

Thanks for the offer! I'm trying one more shot out right now of using the stock 2.6.13 kernel on the Slackware CD as a base config. If that doesn't work (compiling modules right now) then I'll get those outputs into here.

silmaril8n 06-29-2006 08:09 PM

Quote:

Originally Posted by w3bd3vil
why dont you download the rpm file and update your kernel through that.

I appreciate the tip but for one Slackware isn't an RPM based distro (although I hear rpm2tgz works ok). Beyond that, I'm trying to get Slackware to run on my IBM Thinkpad R40 which needs several special items compiled into the kernel for wireless to work and other features. Stock kernels seem to work fine but I can't use the laptop to it's fullest.

silmaril8n 06-30-2006 12:41 PM

Here are the files:
config-2.6.13 (stock Slackware testing kernel)
dmesg-2.6.13

config-2.6.17 (recent one based off of 2.6.13 config)

OR13 06-30-2006 01:55 PM

I solved my problem (with a little help from a friend)!
Three things I had to compile into the kernel for it to work w/o the above error:
Code:

Device Drivers->Multi-device support (RAID and LVM)
Device Drivers->Multi-device support (RAID and LVM)->Device mapper support
Device Drivers->Block devices->RAM disk support->Initial RAM disk (initrd) support

@ silmaril8n: I can see that all of the above are Y in the 2.6.13 kernel, but the two LVM options that you need in order to get rid of the above error, are not set in the config file for 2.6.17. Try Setting them to Y.
Good luck! :)

O.R.


All times are GMT -5. The time now is 04:38 PM.