48 lines
1.2 KiB
Bash
48 lines
1.2 KiB
Bash
|
#!/bin/sh
|
||
|
#
|
||
|
# FOR DEVELOPMENT ONLY!
|
||
|
#
|
||
|
# this script is used to prepare a chroot session for testing or configuring
|
||
|
#
|
||
|
# called by:
|
||
|
# - cbox-build.sh
|
||
|
#
|
||
|
# parameter: [commandline]
|
||
|
#
|
||
|
# if "commandline" is empty, "bash" will be used
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
MNT_SRC=/opt/dfsruntime/runtimerd
|
||
|
MNT_DST=/opt/dfsruntime/runtimemnt
|
||
|
# the directory /tmp/ can not be used, as it is still a broken link, too
|
||
|
TMP_DIR="/tmp-`basename $0`-$$"
|
||
|
|
||
|
|
||
|
cp -a "$MNT_SRC/." "$TMP_DIR"
|
||
|
mount -n --bind "$TMP_DIR" "$MNT_DST"
|
||
|
|
||
|
[ ! -e /dev/null ] && mknod "/dev/null" c 1 3 && chmod 666 "/dev/null"
|
||
|
[ ! -e /dev/urandom ] && mknod "/dev/urandom" c 1 9 && chmod 444 "/dev/urandom"
|
||
|
[ ! -e /dev/console ] && mknod "/dev/console" c 1 5 && chmod 660 "/dev/console"
|
||
|
|
||
|
# remember, if proc was mounted before (e.g. because of a running chroot)
|
||
|
PROC_WAS_MOUNTED=no
|
||
|
mount -n -t proc proc /proc 2>/dev/null || PROC_WAS_MOUNTED=yes
|
||
|
|
||
|
# default language setting - prevents dpkg error messages
|
||
|
export LANG=C
|
||
|
|
||
|
# set default terminal (good if you are running in a screen session)
|
||
|
export TERM=linux
|
||
|
|
||
|
# execute parameters as commandline
|
||
|
if [ $# -gt 0 ]
|
||
|
then "$@"
|
||
|
else bash
|
||
|
fi
|
||
|
|
||
|
umount -n "$MNT_DST"
|
||
|
[ "$PROC_WAS_MOUNTED" = "no" ] && umount -n proc
|
||
|
rm -r "$TMP_DIR"
|