Kernel panic: Attempted to kill init!

Cef cef at optus.net
Tue Mar 29 00:46:06 UTC 2005


On Tue, 29 Mar 2005 06:41, Duncan Lithgow wrote:
> First here is the output I'm getting:
> =======================
> Starting Ubuntu...
> VFS: Can't find ext3 filesystem on dev hda5.
> modprobe: FATAL: Could not open
> '/lib/module/2.6.8.1-3-386/kernel/fs/nls/nls_cp437.ko': No such file or
> directory

Of this, the important line is:

> VFS: Can't find ext3 filesystem on dev hda5.

The boot process is looking for an ext3 filesystem in hda5, and it can't find 
it. But there is more:

> FAT: codepage cp437 not found
> pivot_root: No such file or directory
> /sbin/init:429 cannot open dev/console: No such file
> Kernel panic: Attempted to kill init!
> =======================

Of that, here is the line that is most important:

> pivot_root: No such file or directory

Basically, the initrd.img is found, but it cannot change to the real root 
filesystem during the boot process. Since just before this the system could 
not find a root filesystem on hda5, it's most likely expecting the root 
filesystem to be on hda5.

If the rootfs is not on hda5, you need to change your bootloader (eg: grub, 
lilo) to point at the real root filesystem. If it is, you may need to fix the 
filesystem at hda5. It's also possible that your filesystem resides on a 
device that has not had it's module loaded (for whatever reason), and/or the 
filesystems are appearing out of order. This could (I'm guessing) also happen 
if your SATA controllers are now appearing at /dev/sd* instead of /dev/hd*

Note that the reason it can't open dev/console is because it cannot pivot_root 
to the real rootfs, which should have it's own dev/console entry, and so it 
fails and spits out that error.

A quick coverage of the boot process, which may help you to diagnose the 
problem:

At boot, the bootloader loads the kernel and the initrd.img into memory. The 
initrd.img is a small root filesystem (with kernel modules and 
scripts/programs) that is used to get the system running. The bootloader then 
runs the kernel, and points it at the initrd.img in memory. The kernel mounts 
this image as filesystem, and runs the init scripts on the initrd, which in 
turn loads any modules that are required to access the real rootfs. Once this 
is done, the real rootfs is mounted, and then the kernel is told to 
'pivot_root', which changes the root mount point to the new root filesystem. 
The system then loads the real init processes and then goes through all it's 
usual startup processes.

I personally think it would be really nice if there was a little more friendly 
message here in the case of failure. I've encountered this a number of times 
(for a number of reasons), and each time the message bugs me as being too 
technical for many people. It should be possible to detect, before the system 
gets to the pivot_root stage, that the real rootfs is not there, and to pop 
up a better message, and possibly let the user get some diagnostic output to 
help solve the problem.

-- 
 Stuart Young - aka Cefiar - cef at optus.net




More information about the ubuntu-users mailing list