Michael Mol wrote:
On Sat, Sep 17, 2011 at 6:27 PM, Dale<rdalek1...@gmail.com>  wrote:
Mark Knecht wrote:
I think there are only a few that has that flag, at least that I would put
in the init thingy anyway.  Maybe this is something that the devs will work
on if it can be done.  May be a big if there.

That is the guide I am trying to go by but I think I am missing something.
  This is the script they have posted:

#!/bin/busybox sh

# Mount the /proc and /sys filesystems.
mount -t proc none /proc
mount -t sysfs none /sys

# Do your stuff here.
echo "This script mounts rootfs and boots it up, nothing more!"

# Mount the root filesystem.
mount -o ro /dev/sda1 /mnt/root

# Clean up.
umount /proc
umount /sys

# Boot the real thing.
exec switch_root /mnt/root /sbin/init

That doesn't really make much sense to me.  First it mounts the stuff then
umounts it right after that.  Huh?  Is the relevant part the "mount -o ro
/dev/sda1 /mnt/root" ?  Then the exec switch_root part after that?  The rest
seems to cancel each other out.

Looking forward to that light bulb moment here.  ;-)
Here's how I read it.

First, it mounts /proc and /sys, since just about anything is going to
need at least one of those.

Second, it mounts your (desired) / filesystem at /mnt/root.

Third, it unmounts /proc and /sys.

Fourth, it switches out / with the filesystem it already mounted at
/mnt/root. This is similar (idential) to chroot. At the _same_ time,
it launches your init script.

Your init script launches and sees a / without a /proc or a /sys. The
/ it sees is what _was_ /mnt/root only moments before. The stuff that
was originally at / is no longer accessible. (Which, incidentally, is
why you unmount /proc and /sys; nothing would be able to get to those
particular mounted filesystems, since everything else gets to see the
world with /mnt/root/ as the /.

Your init script (the one at /sbin/init), seeing itself in a fresh,
needs-to-be-booted system, mounts /proc, /sys, etc...everything the
init script is configured to do.


Ahhhhh. I see now. So, it mounts proc and sys but that is in the init then it mounts the real root outside the init. Then it umounts the proc and sys under the init and then switches to the real root and starts init there.

Where does /usr and /var come in here? Isn't the init supposed to mount that too? Do I add that myself? If so, when to fsck get ran?

Dale

:-)  :-)

Reply via email to