Re: initrd, reboot makes kernel panic
Ignore my last mail.
Ironic, 2 days troubleshooting and 2h after mailing this list and the
problem solves. ;)
FYI, according to Documentation/initrd.txt you should(?) have a pivot_root
and a chroot in your /linuxrc (initrd-image). This is not so, works better
without them. The kernel already knows where to mount '/' (pivot_root not
needed) and it knows which 'init' to load (chroot not needed). Mounts root
and starts init automatically.
On Thu, 18 Aug 2005 email@example.com wrote:
Subject: initrd, reboot makes kernel panic
I've got an IDE-raid card (Promise SX6000) which is causing some problems
when I reboot my linux. As the kernel does not support this card (and promise
only support 2.4 kernel modules) I've got an 2.4.31 kernel and an initrd
loading the promise module (pti_st.o). And this works fine. It boots up,
mounts the ide-raid as '/' and works pretty good.
The problem is when I reboot my system, init jumps into runlevel 6 and starts
executing all the /etc/rc6.d things. When it gets to the last it prints:
Kernel panic: VFS: Unable to mount root fs on 08:02
Very strange that it tries to _mount_ something when it should reboot...
I've looked in /etc/rc6.d and I dont see anyting there about mounting.
I've been testing different things in /linuxrc-script but cant figure this
one out, really strange. If I instead if 'init' run 'sh' in /linuxrc I get
the 'sh' prompt and from there I can do 'reboot' without any complaints - so
it should be something with 'init' ...
Any ideas greatfully accepted (including troubleshooting ideas) =)
My linuxrc script is basically:
insmod -k /modules/pti_st.o
mount -o ro /dev/sda2 /mnt/root # ro/rw makes no diff
umount /proc 2> /dev/null || error "unmounting proc filesystem failed"
pivot_root . initrd || error "changing to new root failed"
#exec /usr/sbin/chroot . /sbin/init 2 # does not work, compl. /dev/initctl
#exec /usr/sbin/chroot . /sbin/init -i
#exec /usr/sbin/chroot . /bin/sh -c '/bin/umount /initrd; exec /sbin/init -i'
<dev/console >dev/console 2>&1
exec /usr/sbin/chroot . /bin/sh <dev/console >dev/console 2>&1