[plug] cant boot system any longer

Tomasz Grzegurzko tomasz89 at gmail.com
Sat May 27 10:33:30 WST 2006


If you're statically compiling your own kernel, you won't need an
initrd at all. The initrd serves to register modules after the kernel
has finished its cycle. This is a more flexible approach, allowing me
for example to use the same kernel for two very different machines,
say one with SATA and one with SCSI. One alternative is to compile all
the modules statically in the kernel, leading to kernel bloat. The
initrd approach is to load only those drivers in a post-kernel but
pre-boot initrd image that will load only those modules which I need
on _this_ system to find my root device.

What are you not understanding?
Kernel panic - can't find root on (blah, blah) is the most common boot
error and refers to the fact that the kernel has looked for
/dev/whatever and can't mount that filesystem. If for example you've
formatted your hard drive as ext2 and don't have the ext2 module
loaded (or statically compiled in the kernel), how CAN it be mounted
as root? The (blah blah) refers to the device node minor/major rather
than the name of the device.
# ls -al /dev/hda
brw-rw---- 1 root root 3, 0 /dev/hda
The 3,0 is the blah blah. If you are trying to mount /dev/hda1, you'd get
brw-rw---- 1 root root 3, 1 /dev/hda1
And /dev/sda would be 8,0, while /dev/sda3 would be 8,3.

These are the major and minor numbers the kernel spits out when it
can't boot off a particular device. They are your interface to the
driver. The stuff in /dev merely points to a place "in the kernel"
that you can know what you're talking to, and you'll notice that
they're all unique.

What is the error message you're getting? What distro are you using?
What modules are being included in the initrd? What commands are you
issuing to generate the initrd? I'd suggest checking mkinitrd for
syntax also as it can leave behind the temporary directory made so you
can browse the list of included modules. If you _all_ of the modules
like your HDD controller, your root fs type (ext2, reiserfs...), you
won't be able to boot.

Does that clear it up for the non-able-to-booters? This was probably
something I got seriously stumped on when I first started Linux so
don't be frustrated... Once you interpret the errors though, it starts
to makes sense -- what the system is trying to tell you I mean.

Tomasz

On 5/26/06, Rob Dunne <rob.dunne at gmail.com> wrote:
> Hi list,
>
>
> W.Kenworthy wrote:
>  > Coming to the thread late: Ive had two sata boards now that renumber the
>  > sata drives differently depending if you boot from the disk, or a
>  > livecd.  If you look at the grub mapping when running from the livecd,
>  > and set the root to this map, the bios renumbers things when you try and
>  > boot from the sata drive, and of course cant find the kernel etc.
>
>
> It could. We suspected something like the kernel not being on
> /dev/sda2 -- althought I tried every other name I could think of except
> /dev/random
>
> Then after a bit of hunting around we decided that the problem might be
> with the initrd. Some things in it looked wrong so we upgraded
> from  mkinitrd-3.5.13.6-1 to mkinitrd-4.2.15-1.src.rpm (compiled with
> the installed gcc 3.2.3)
>
> Now the machine crashes much earlier in the boot cycle!
>
>
> By the way. The thread title is misleading. I dashed off the first
> message in a bit of a panic. I can boot the machine by selecting an
> older kernel in the grub menu.
>
> I think we may have to install a new distribution on a spare disk and
> try that. We keep running into things we cant understand. The page I
> used for information on kernal upgrading
> (  http://kerneltrap.org/node/799 )
> dosent mention mkinitrd at all.
>
> Bye
> Rob
>
> _______________________________________________
> PLUG discussion list: plug at plug.org.au
> http://www.plug.org.au/mailman/listinfo/plug
> Committee e-mail: committee at plug.linux.org.au
>



More information about the plug mailing list