SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I have been trying to compile a kernel from the 2.6.9, and while the kernel appears to compile successfully, when I boot with it, I get the following error message:
VFS: Cannot open root device "303" or hda3
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount fs on hda3.
I have done a fairly exhaustive search on google (exhausting me, anyway), and although I have found other cases with similar problems, none of them seem to have provided a solution that has worked for me.
I have done the following:
- used the provided generic 2.6.7 kernel provided with Slackware v10, but that gave me the same error message, which is why I tried the 2.6.9 source in the first place
- made sure that ext2 is compiled into the kernel, and not as a module.
- I have selected "Advanced partition selection", as well as disabled it in another compile (following conflictive advice).
- I have edited lilo.conf, and made sure that it pointing to the correct path, i.e. /dev/hda3, which is an ext2 partition, and the one that I have been successfully running 2.4.26 on.
- I have further edited lilo.conf, using "append="root=303", because originally the error message gave me just "303" and not "hda3" as well.
- I have made sure that all the IDE controllers and whatnot that I need are included in the kernel (I think.)
- I have made an attempt at using mkinitrd, but I couldn't get it to work. (I didn't really know what to do with it, and I from what I read it seemed unnecessary anyway.)
- I have made about five, maybe more by now, compiles, fiddling with different settings, importing the generic ones, like barei's, and the generic 2.6.7 kernel's .config and then using make oldconfig.
I have tried to read everything I can that could give me some enlightenment, but I have found nothing that has worked so far.
Can anyone help me?
(By the way, I'm really glad that I chose Slackware as my starting distribution. "Everyone" says that it is really tough for newbies, but I think that the support for newbies from the Slackware community is really great, especially on LQ!)
Thanks for the reply! I meant to put that on my long list of things that I have done, but forgot. After editing lilo.conf, I did run lilo, and there were no errors.
looks oke . well , then there must be smth. wrong in the kernel.
did you try compiling the new kernel with the "config " -file of the 2.4.26 kernel as a starting-piont, ( it will give some errors when starting "xconfig" ,
because some things have changed, but the essentials will be ok. )
i did that when i first compiled a 2.6.x kernel.
My / partition is ext2, and it has been compiled into the kernel. I think usually the case with an error like mine seems to be people compiling the filesystem types as modules instead of into the kernel. In one of the compiles I did, in desperation I compiled support for basically *all* the available filesystems, but it didn't work :-(
If your root fs is ext2 and it is compiled in the kernel that should be okay I assume. You said in your opening post that you compiled in ext2 but didn't mention that you're actually using it on your root fs.
Next probable cause:
What hardware (IDE controller) are you using ?
well..,the only thread i found with the same problem ended with:
quote KMcD /
actully got bored, followed cedrick's advice, used slackware config, made no changes (except to directly include ext3 in the kernel) and now it works. So thanks for all the help. Will back up this kernel and it's modules and try to figure what out caused the problem./ end quote.
I checked, and my controller is an "Intel PIIX4 Ultra 33 chipset". Or at least I think that's my controller. It's what I get when I cat /proc/ide/piix.
Anyway, I compiled it in, and I got the same message as before:-(
I'm going to play around some more tonight, and see what I can come up with.
I selected the options below in menuconfig (Device drivers-->ATA/ATAPI/MFM/RLL support) (I have a PIIX as well) :
Code:
<*> ATA/ATAPI/MFM/RLL support
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
<*> Include IDE/ATA-2 DISK support[*] Use multi-mode by default
<*> Include IDE/ATAPI CDROM support[*] IDE Taskfile Access [*] IDE Taskfile IO (EXPERIMENTAL)
<*> generic/default IDE chipset support[*] PCI IDE chipset suppor[*] Sharing PCI IDE interrupts support
<*> Generic PCI IDE Chipset Support[*] Generic PCI bus-master DMA support [*] Use PCI DMA by default when available
<*> Intel PIIXn chipsets support
Never had any problems with this controller with the settings above using a number of 2.6 kernels.
Did you already try adding the append parameter in both images with the value = "ide-reverse"?
Quote:
# Linux bootable partition config begins
image = /boot/vmlinuz
append="ide=reverse"
root = /dev/hda3
label = Linux
read-only
# Windows bootable partition config begins
other = /dev/hda1
label = Windows
table = /dev/hda
# Old Linux kernel config begins
image = /boot/vmlinuz.old
append="ide=reverse"
root = /dev/hda3
label = slack.old
read-only
As the SATA ROM was disabled in BIOS while I was installing Mandrake, the system assigned weird letters to my partitions: hde1, instead of hda1; hdg1, instead of hdc1. And so on. When I tried to run Slackware (which is in hdc1), its kernel gave me the same message you're seeing. So in the lilo.conf of Mandrake I appended the "ide=reverse" parameter and re-enabled SATA support in BIOS. Everything is ok now. Lilo is passing the "right" values to Slack's kernel.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.