#!/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 [ ! -d $ROOTFS_DIR/dev ]; then fatal "ERROR: There's no '/dev' on rootfs." fi info "Switching root to '$ROOTFS_DIR'..." debug "Moving basic mounts onto rootfs" for dir in `awk '/\/dev.* \/run\/media/{print $2}' /proc/mounts`; do # Parse any OCT or HEX encoded chars such as spaces # in the mount points to actual ASCII chars dir=`printf $dir` mkdir -p "${ROOTFS_DIR}/media/${dir##*/}" mount -n --move "$dir" "${ROOTFS_DIR}/media/${dir##*/}" done 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 }