mirror of
git://git.yoctoproject.org/poky
synced 2026-09-06 17:58:15 +00:00
It can be useful for debugging to override the default /sbin/init. This is something typically done via the init boot parameter which then gets interpreted by the kernel. But when using an initramfs, it is the initramfs which must react to the option. (From OE-Core rev: dfd6d4c765924f472ac2df724342547b5c15249a) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
61 lines
1.5 KiB
Bash
Executable File
61 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (C) 2011 O.S. Systems Software LTDA.
|
|
# Licensed on MIT
|
|
|
|
finish_enabled() {
|
|
return 0
|
|
}
|
|
|
|
finish_run() {
|
|
if [ -n "$ROOTFS_DIR" ]; then
|
|
if [ -n "$bootparam_rootdelay" ]; then
|
|
debug "Sleeping for $rootdelay second(s) to wait root to settle..."
|
|
sleep $bootparam_rootdelay
|
|
fi
|
|
|
|
if [ -n "$bootparam_root" ]; then
|
|
debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..."
|
|
|
|
if [ "`echo ${bootparam_root} | cut -c1-5`" = "UUID=" ]; then
|
|
root_uuid=`echo $bootparam_root | cut -c6-`
|
|
bootparam_root="/dev/disk/by-uuid/$root_uuid"
|
|
fi
|
|
|
|
if [ -e "$bootparam_root" ]; then
|
|
flags=""
|
|
if [ -n "$bootparam_ro" ]; then
|
|
if [ -n "$bootparam_rootflags" ]; then
|
|
bootparam_rootflags="$bootparam_rootflags,"
|
|
fi
|
|
bootparam_rootflags="${bootparam_rootflags}ro"
|
|
fi
|
|
if [ -n "$bootparam_rootflags" ]; then
|
|
flags="$flags -o$bootparam_rootflags"
|
|
fi
|
|
if [ -n "$bootparam_rootfstype" ]; then
|
|
flags="$flags -t$bootparam_rootfstype"
|
|
fi
|
|
mount $flags $bootparam_root $ROOTFS_DIR
|
|
else
|
|
debug "root '$bootparam_root' doesn't exist."
|
|
fi
|
|
fi
|
|
|
|
if [ ! -d $ROOTFS_DIR/dev ]; then
|
|
fatal "ERROR: There's no '/dev' on rootfs."
|
|
fi
|
|
|
|
info "Switching root to '$ROOTFS_DIR'..."
|
|
|
|
debug "Moving /dev, /proc and /sys onto rootfs..."
|
|
mount --move /dev $ROOTFS_DIR/dev
|
|
mount --move /proc $ROOTFS_DIR/proc
|
|
mount --move /sys $ROOTFS_DIR/sys
|
|
|
|
cd $ROOTFS_DIR
|
|
exec switch_root -c /dev/console $ROOTFS_DIR ${bootparam_init:-/sbin/init}
|
|
else
|
|
debug "No rootfs has been set"
|
|
fi
|
|
}
|