LFS 6.8 not booting into right kernel

0

(Full disclosure: I am a no linux expert, but not a complete novice.)

I have been following along with Linux from Scratch 6.8 and everything has been going well. I got past an issue with GRUB (Ubuntu 11.04 uses a different version of GRUB than LFS so caused some issues).

Now when I boot into the Linux kernel recommended in the LFS book, 2.6.37, I get the following kernel panic: "VFS: Cannot open root device "sdf6" or unknown-block(0,0)". I'm sure this means that I didn't load the right drivers when I configured the kernel. But I went back in and recompiled and chose every SATA driver listed and I still got that error. It does let me boot into the kernel that Ubuntu used (2.6.38) so I guess I'm ok. I just want to know how to get the 2.6.37 to compile right.

Is there a way for me to see what is going wrong, or to compare what is in one version versus the other? I don't know what I should be looking for or where to look.

SuperBrian

Posted 2011-06-02T14:23:33.860

Reputation: 1

Answers

0

This might also be related to to missing file system support in your kernel. Make sure your kernel supports the file system you use on your root device (sdf6). Check with fdisk /dev/sdf which file system your sdf6 partition is using and make sure your kernel includes the appropriate drivers. Also make sure the required SATA and file system drivers are NOT compiled in as a module - else the kernel is unable to load the required driver from the root FS it just tries to mount.

I've also found this thread where a similar problem occurred due to initrd configuration. But you did not state anything about initrd. So you're probably not using one.

SkyBeam

Posted 2011-06-02T14:23:33.860

Reputation: 3 612

Thanks. I am assuming you meant fdisk and not fidisk? If you did mean fidisk, I don't have that program installed. So, the file system is ext3. I am relatively sure that I compiled in the drivers for that. It can read /boot right? and that's ext4.

Also, I think I compiled in the SATA drivers for everything that was listed. Is it possible that the drivers I need weren't there? Could I add them in some other way? – SuperBrian – 2011-06-02T14:49:46.973

Yes you're right. I meant fdisk of course. Having ext4 drivers does not mean that you have ext3 drivers too (however ext4 drivers can read ext3 drives as well). Maybe the type is specified wrongly in the partition table. Make sure type is set to "83, Linux" in fdisk and make sure ext3 + ext4 are enabled (CONFIG_EXT3_FS=y and CONFIG_EXT4_FS=y in your kernel config). – SkyBeam – 2011-06-02T14:53:31.327

Thanks. It's set right in fdisk (83, linux) and both of those options are enabled in the config. – SuperBrian – 2011-06-02T15:19:18.167

Did you read the thread I've linked? Do you use initrd? Maybe the issue could be there. What kind of hardware (SATA-controller) are you using? Are you sure the drivers are enabled too? – SkyBeam – 2011-06-02T15:29:42.477

Going through that thread now. however, I noticed the following: for the grub entry that works and loads the newer kernel, it uses initrd. For the one that doesn't, there is no initrd command. Should I try adding one in? – SuperBrian – 2011-06-02T15:52:06.647

Oh. That was a dumb question. I need to build the initrd file first... – SuperBrian – 2011-06-02T15:55:11.190

You only need an initrd if you have some files to be put there. For example an initrd might contain kernel modules required to access the root FS. If you embed all required drivers into the kernel there is no need for initrd as long as you don't want to store fancy sruff like boot splash or similar large things there. See http://en.wikipedia.org/wiki/Initrd

– SkyBeam – 2011-06-02T16:00:26.900

Ok. so back to the drawing board then. – SuperBrian – 2011-06-02T16:26:12.523

LSPCI lists it as an Intel 82801 SATA RAID controller. Kernel configuration lists only "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support", unless I'm looking in the wrong spot. – SuperBrian – 2011-06-02T18:14:21.730