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

Re: kernel problem: Booting with initrd and init fails



Petr Cech <cech@atrey.karlin.mff.cuni.cz> writes:

> On Sun, Oct 24, 1999 at 09:11:47PM +0200 , Goswin Brederlow wrote:
> > I have the following entry in my syslinux.cfg:
> > 
> > LABEL demo
> >         APPEND vga=0x791 load_ramdisk=1 initrd=root.bin init=/bin/ash
> >         KERNEL linux
> > 
> > That should load a ramdisk during boot but startx /bin/ash instead of
> > /sbin/init or /linuxrc. Instead it will startx /linuxrc and if that
> 
> see /usr/src/linux/init/main.c do_linuxrc() and and relevant part of
> start_kerenl() - it runs do_linuxrc with /linuxrc as a parameter.

I will look at those, thanks.

> > and /sbin/init are missing it tries to remount / as specified in the
> > kernel.
> > 
> > Does anyone know if thats normal behaviour or just some unthpught
> > collision of boot parameters?
> 
> it's normal behaviour. In initrd it runs /linuxrc and then tries to remount
> root.

It still looks strange. From "man ootparam": (look for noinitrd)

                                    These days it is possible  to
       compile  the  kernel  to use initrd.  When this feature is
       enabled, the boot process will load the kernel and an ini­
       tial ramdisk; then the kernel converts initrd into a "nor­
       mal" ramdisk, which is mounted read-write as root  device;
       then /linuxrc is executed; afterwards the "real" root file
       system is mounted, and the initrd filesystem is moved over
       to  /initrd; finally the usual boot sequence (e.g. invoca­
       tion of /sbin/init) is performed.

If I understand that right, the initrd feature will execute /linuxrc
and if thats done will continue booting as if no ramdisk where present
(well, not exactly but from the point of starting init). Therefore my
above settings should first start /linuxrc from the ramdisk, then
remount the real root device and start /bin/ash. But it will start
/sbin/init just as if no init= where given.

Looks like a bug in the kernel or the manpage.

Would it make sense to introduce a variable called "linuxrc" to change 
what gets started when an initial ramdisk is used or should init
change that behaviour? What do you think?

May the Source be with you.
			Goswin


Reply to: