I ran into this problem several times before I finally figured out what
was happening. I was using a different distribution, but that's not
part of the issue.
When a kernel is created, it has some default values built into it. The
kernel can be loaded several different ways. One way is to write it in
binary mode to a floppy diskette. Another is to use a boot loader. The
boot loader allows you to choose what partition you are going to boot
and, if it's a good boot loader, like "lilo", will also allow you to
pass override parameters to the kernel.
Regardless of how the kernel is loaded, it has to know what device has
the root file system on it. Linux, like all *nix, has a single-rooted
file heirarchy. In DOS, you have drive A:, B:, ... Z: each of which
has its own root directory.
In Linux, there's only one "root directory". It's on the root device.
Various physical disks are grafted into a directory tree
at mount points. But the tree has to have a root somewhere. What's
happening with the kernel panic, is that the kernel is getting loaded
from the floppy, and it thinks the root directory (root device) is
supposed to be /dev/hda20 (3:20 = hda20?). When the kernel goes out
to mount the root file system, it doesn't find the root file system
(root directory) it wants and it goes into a "panic".
What you need to do now is to override the default setting in the
kernel so that it expects to find the root file system on the actual
device where you installed the root file system. Either that, or you
need to use a boot loader that allows you to pass parameters to the
kernel. Kernel parameters passed this way will override the default
parameters in the kernel. You can tell your boot loader to ignore the
root device pointed to by the kernel, and
to use the file system on /dev/hdb5. It will be
quite happy. Or you can boot with a kernel that has /dev/hdb5 set
for its default.
I don't know much about NT, but from what I've read, you can use
NT loader to boot Linux as well as NT. That would allow you to have
a boot menu started from the hard drive. Pretty nice, useable
solution. To make it work smoothest, modify the kernel to look for
the root file system on /dev/hdb5. That doesn't take a recompile.
There's a utility called "rdev" that changes the root device
pointer in the kernel. There are a couple other items you can
change in the kernel using this utility, so I recommend you use
"man rdev" to get the low-down on it.
Once you've used rdev to modify the root device pointer in the
kernel, you won't get kernel panic anymore. You will also want to
consider swapdev, etc. ("man rdev" explains this) and the other
kernel settings. With the proper minor adjustments, you will be
able to boot using any of the popular methods. (NT boot loader,
floppy with raw kernel, floppy with lilo, OS2 loader, loadlin, ...)
If you like booting from a floppy, you might consider installing
just the lilo boot loader on the floppy. It takes only a second to
load. Much faster than the 10-20 seconds it takes to load the
entire kernel from a floppy.
-- Gene Wiggins
Quote:> I installed RH 7.0, however I want to have this drive as a primary slave
> to my NT install which is on the primary master. When I use the boot
> disk it gives a kernel panic cannot mount 3:20 or something....
> Am I entering in the wrong parameters eg linux /dev/hdb5 upon boot?
> Do I have to edit the lilo.conf to reflect that it is now the primary
> Any ideas as to what I would have to add to the lilo.conf file?
> ps I want to continue to use ntloader. And use a boot disk when I want
> to use RH linux.
> Thanks for any assistance possible