#!/bin/sh OLDPWD="$PWD" cd "$(dirname "$0")" BUSYBOX_FS="$(realpath ../busybox/rootfs)" OVERLAY_FS="$(realpath ../rootfs)" cd "$OLDPWD" # change into the (mounted) target rootfs folder cd "$1" # scaffold folders for dir in bin dev etc home lib mnt opt proc root run sbin srv sys tmp usr var ; do mkdir -p "$dir" done # create special devices ! [ -c dev/mem ] && mknod dev/mem c 1 1 ! [ -c dev/null ] && mknod dev/null c 1 3 ! [ -c dev/random ] && mknod dev/random c 1 8 ! [ -c dev/urandom ] && mknod dev/urandom c 1 9 ! [ -c dev/zero ] && mknod dev/zero c 1 5 # copy busybox files and overlay files CPFLAGS='--no-dereference --recursive --preserve=mode,timestamps,links --no-preserve=owner' cp $CPFLAGS "$BUSYBOX_FS/." . cp $CPFLAGS "$OVERLAY_FS/." . # setuid busybox chmod a=xrs,u+w bin/busybox # # create /etc/passwd # if ! [ -e etc/passwd ] ; then # # TODO: add root to a group # echo "root:x:0:0::/root:/bin/sh" > etc/passwd # fi # # and /etc/shadow # if ! [ -e etc/shadow ] ; then # echo "root:$(mkpasswd alpine):::::::" > etc/shadow # fi #