Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
2.6 KiB
Pygos Boot Process
The boot loader of the board loads the Linux kernel (and possibly device tree files) into memory and jumps into the kernel.
The Linux kernel of the Pygos system has an initial ram disk built in with a small setup script that mounts the actual root file system, an overlay filesystem and does a switch_root.
Filesystem Setup
The init script processes the following parameters from the kernel command line to set up the VFS root:
root
the path to a device file containing the root filesystem image. This parameter is mandatory.root_sfs
the path to a Squashfs image on theroot
device. If this parameter is missing, theroot
partition is mounted to the VFS root instead of the Squashfs image.overlay_dev
the path to a device file containing the overlay filesystem. The device is mounted to/cfg/overlay
and an overlay mount to/etc
is created with the lower directory in/cfg/preserve/etc
and the upper in/cfg/overlay/etc
. If theoverlay_dev
parameter is omitted, a bind mount to/cfg/preserve/etc
is created instead.
The additional parameters root_type
and overlay_type
can be used to specify
additional mount options for the boot and overlay partitions respectively.
The following type options are currently supported:
hwdevice
(default if the option is missing). Wait in a loop until the specified device special file exists, then attempt to mount it and let the kernel auto-detect the filesystem.qemu
specifies that the device is actually a mount tag for a virtio connected 9p network filesystem.- Every other option is passed to the
mount
command as filesystem type without waiting for the device file to be present.
After mounting the overlay_dev
device, the script populates the mount point
with expected default directories, so even a freshly formatted filesystem
partition can be used without further preparation.
Examples
The following kernel command line mounts a the Squashfs image rootfs.img
stored on /dev/sda1
to the filesystem root with a tmpfs
overlay:
root=/dev/sda1 root_sfs=rootfs.img overlay_dev=none overlay_type=tmpfs
For a Qemu virtual machine, the following command line mounts a virtio attached disk to the filesystem root and attaches as overlay device a directory on the host system via a virtio attached 9p network mount:
root=/dev/vda1 overlay_dev=ovdef overlay_type=qemu
Switchroot Transition
Once the setup script completes, it switches to the newly mounted and configured filesystem root.
If the option singleuser
is present on the kernel command line, it executes
a shell, otherwise it launches the init system.