Re: [Q] pivot_root and initrd

Andreas Schwab (schwab@suse.de)
05 Nov 2001 22:52:18 +0100


kaih@khms.westfalen.de (Kai Henningsen) writes:

|> ebrower@usa.net (Eric) wrote on 17.10.01 in <3BCDCF1D.6030202@usa.net>:
|>
|> > You are simply doing the following, I assume with success:
|>
|> > exec /sbin/init "$@"
|>
|> > whereas I am doing something like the following:
|>
|> > exec chroot . sh -c 'umount $OLDROOT; exec -a init.new /sbin/init
|> > $INITARGS' <dev/console >dev/console 2>&1
|>
|> > I am mystified that the call to 'exec /sbin/init' works if you are using
|> > the standard (you mention "based on RedHat7.1" util-linux") /sbin/init
|> > proggie, and that a standard RH7.1 initscripts would not complain when
|> > the root filesystem is already mounted r/w.
|>
|> It works because the PID is 1, of course.
|>
|> /linuxrc (or however you call it) runs with PID=1, so when it exec's /sbin/
|> init, the PID is still 1.
|>
|> OTOH, you have chroot run a shell as a child, which therefore does *not*
|> have PID=1.

linuxrc does 'exec chroot', chroot does 'exec sh', sh does 'exec init'.
Thus init should end up with the same pid as linuxrc.

Andreas.

-- 
Andreas Schwab                                  "And now for something
Andreas.Schwab@suse.de				completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/