That's if /linuxrc remains the initial process (which should in turn
exec /sbin/init, atleast according to my reading of the same document):
When finished with its duties, linuxrc typically changes the
root device and proceeds with starting the Linux system on the
"real" root device.
After it changes root (pivot_root):
Now, the initrd can be unmounted and the memory allocated by the
RAM disk can be freed:
# umount /initrd
# blockdev --flushbufs /dev/ram0 # /dev/rd/0 if using devfs
Then there's this note:
Note: if linuxrc or any program exec'ed from it terminates for
some reason, the old change_root mechanism is invoked (see
section "Obsolete root change mechanism").
The old mechanism is described as using /proc/sys/kernel/real-root-dev,
rdev or root= mechanisms.
Now, on 2.2, if any of those were empty (which is the case), it just
used the already mounted filesystem (the ramdisk). In 2.4 it assumes
that if initrd is enabled, and the root device string is empty, then
/dev/fd is the default device. Why this is done, I'm not sure.
Ben
-- .----------=======-=-======-=========-----------=====------------=-=-----. / Ben Collins -- Debian GNU/Linux \ ` bcollins@debian.org -- bcollins@openldap.org -- bcollins@linux.com ' `---=========------=======-------------=-=-----=-===-======-------=--=---' - 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/