[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: nfs-root booting works for 2.2.* client, but not 2.4.19

> > I presume you're getting a can't find init message or a panic about
> > the root device.
> Something like that. Retyping from the screen next to me:
> All well until including to
> hda: ...
> hdb: ...
> Uniform CD-ROM driver Rev....
> Partition check:
>  hda:
> and the trouble starts on that last line with
>   <1>Unable to handle kernel paging request at virtual address 22c476e8
>   printing eip
>   [ screenful of gooblygoo relating to the registers, stack and trace ]
>   <0>Kernel panic: Attempted to kill init!

This is a bit confusing. This is neither a fail-to-mount-root panic nor a
cant-find-init panic, it's an Ooops, a processing error within the kernel.
The partition check is before mounting the root and before init comes in.
Here is the sequence from my box, with 2.4.19:

Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
 hdb: hdb1
 hdc: hdc1
 hdd: hdd1 hdd2
	<yours crashes here, right?>
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 2048 buckets, 16Kbytes
TCP: Hash tables configured (established 16384 bind 16384)
Linux IP multicast router 0.06 plus PIM-SM
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
	<root mounted, init come in below>

Looks like the problem is with setting up the network. The message looks
like a memory problem. Are you sure the kernel is guessing the correct
amount of RAM? In any case, here is a method we use here which will allow
you to cut-and-paste the kernel boot messages into an email message. It is
a bit complicated but usefull for a lot of things: use a serial console.

1) Enable the serial console on the kernel, boot with the parameter
   console=ttyS0,9600 (or some other speed that works for you).

2) Have available some other machine with X11 running. Run seyon in an X11
   session, attached to some serial port. Configure seyon for the correct
   speed, 1 bit, no parity, CR translations, etc. You can test this using
   it as a terminal in some working machine where you put a getty in one
   of the serial ports. You have to change /etc/inittab for this:

# Example of how to put a getty on a serial line (for a terminal)
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

3) Build a simple 3-wire crossed serial cable and interconnect the two
   ports. Boot the node, you will be able to see the whole kernel boot
   procedure within you X11 seyon window. Just cut and paste...

Note that your X11 session could be anywhere, not necessarily in the
console of the machine with the serial port connected to the node. You log
into the machine via the network and open the seyon window anywhere. Lilo
and Etherboot also can be configured to use the serial port. You can use
seyon as a terminal, reboot a node in the server root and look at the
whole boot process (except the node's hardware cycling, of course) from
the confort of your office.

        Jorge L. deLyra,  Associate Professor of Physics
            The University of Sao Paulo,  IFUSP-DFMA
       For more information: finger delyra@latt.if.usp.br

Reply to: