chroot management tasks added to makefile
This commit is contained in:
62
make.project/arm_chroot.sh
Executable file
62
make.project/arm_chroot.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
APPNAME="CHROOT VFS SETUP"
|
||||
T_SYSROOT=${dir_sysroot}
|
||||
|
||||
assert_zero() {
|
||||
if [[ "$1" -eq 0 ]]; then
|
||||
return
|
||||
else
|
||||
exit $1
|
||||
fi
|
||||
}
|
||||
|
||||
# ISO 8601 variation
|
||||
TIMESTAMP="$(date +%Y-%m-%d_%H:%M:%S)"
|
||||
|
||||
LOG_DIR="${dir_logs}/${APPNAME}-${TIMESTAMP}"
|
||||
|
||||
# the file to log to
|
||||
LOGFILE="${APPNAME}.log"
|
||||
|
||||
logprint() {
|
||||
mkdir -p "${LOG_DIR}"
|
||||
echo "[$(date +%Y-%m-%d_%H:%M:%S)] [${APPNAME}] $1" \
|
||||
| tee -a "${LOG_DIR}/${LOGFILE}"
|
||||
}
|
||||
|
||||
is_mounted() {
|
||||
findmnt $1 &> /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
/usr/bin/false
|
||||
else
|
||||
logprint "Already mounted, skipping."
|
||||
/usr/bin/true
|
||||
fi
|
||||
}
|
||||
|
||||
logprint "CHROOT VFS SETUP"
|
||||
|
||||
mkdir -pv ${T_SYSROOT}/{dev,proc,sys,run}
|
||||
assert_zero $?
|
||||
|
||||
logprint "Bind mounting /dev from host to chroot sysroot..."
|
||||
is_mounted ${T_SYSROOT}/dev || mount -v --bind /dev ${T_SYSROOT}/dev
|
||||
assert_zero $?
|
||||
|
||||
logprint "Bind mounting /dev/pts from host to chroot sysroot..."
|
||||
is_mounted ${T_SYSROOT}/dev/pts || mount -v --bind /dev/pts ${T_SYSROOT}/dev/pts
|
||||
assert_zero $?
|
||||
|
||||
logprint "mounting proc filesystem from to chroot sysroot..."
|
||||
is_mounted ${T_SYSROOT}/proc || mount -v -t proc proc ${T_SYSROOT}/proc
|
||||
assert_zero $?
|
||||
|
||||
# not a symlink on ubuntu
|
||||
if [ -h ${T_SYSROOT}/dev/shm ]; then
|
||||
mkdir -vp ${T_SYSROOT}/$(readlink ${T_SYSROOT})/dev/shm
|
||||
assert_zero $?
|
||||
else
|
||||
mount -t tmpfs -o nosuid,nodev tmpfs ${T_SYSROOT}/dev/shm
|
||||
fi
|
||||
|
||||
|
||||
54
make.project/disarm_chroot.sh
Executable file
54
make.project/disarm_chroot.sh
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
APPNAME="CHROOT VKFS SETUP"
|
||||
|
||||
# ISO 8601 variation
|
||||
TIMESTAMP="$(date +%Y-%m-%d_%H:%M:%S)"
|
||||
T_SYSROOT=${dir_sysroot}
|
||||
LOG_DIR="${dir_logs}/${APPNAME}-${TIMESTAMP}"
|
||||
|
||||
# the file to log to
|
||||
LOGFILE="${APPNAME}.log"
|
||||
|
||||
assert_zero() {
|
||||
if [[ "$1" -eq 0 ]]; then
|
||||
return
|
||||
else
|
||||
exit $1
|
||||
fi
|
||||
}
|
||||
|
||||
logprint() {
|
||||
mkdir -p "${LOG_DIR}"
|
||||
echo "[$(date +%Y-%m-%d_%H:%M:%S)] [${APPNAME}] $1" \
|
||||
| tee -a "${LOG_DIR}/${LOGFILE}"
|
||||
}
|
||||
|
||||
is_mounted() {
|
||||
findmnt $1 &> /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
logprint "Not mounted, skipping."
|
||||
/usr/bin/false
|
||||
else
|
||||
/usr/bin/true
|
||||
fi
|
||||
}
|
||||
|
||||
logprint "Unmounting CHROOT VFKS mounts"
|
||||
|
||||
logprint "Unmounting ${T_SYSROOT}/dev"
|
||||
is_mounted ${T_SYSROOT}/dev && umount -l ${T_SYSROOT}/dev
|
||||
|
||||
logprint "Unmounting ${T_SYSROOT}/dev/pts"
|
||||
is_mounted ${T_SYSROOT}/dev/pts && umount -l ${T_SYSROOT}/dev/pts
|
||||
|
||||
logprint "Unmounting ${T_SYSROOT}/proc"
|
||||
is_mounted ${T_SYSROOT}/proc && umount -l ${T_SYSROOT}/proc
|
||||
|
||||
# not a symlink on ubuntu
|
||||
logprint "Unmounting ${T_SYSROOT}/dev/shm"
|
||||
ismounted ${T_SYSROOT}/dev/shm && umount -l {${T_SYSROOT}/dev/shm
|
||||
|
||||
echo
|
||||
logprint "You can now safely delete the chroot."
|
||||
echo
|
||||
|
||||
32
make.project/enter_chroot.sh
Executable file
32
make.project/enter_chroot.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
APPNAME="CHROOT VFS SETUP"
|
||||
T_SYSROOT=${dir_sysroot}
|
||||
|
||||
assert_zero() {
|
||||
if [[ "$1" -eq 0 ]]; then
|
||||
return
|
||||
else
|
||||
exit $1
|
||||
fi
|
||||
}
|
||||
|
||||
# ISO 8601 variation
|
||||
TIMESTAMP="$(date +%Y-%m-%d_%H:%M:%S)"
|
||||
|
||||
LOG_DIR="${dir_logs}/${APPNAME}-${TIMESTAMP}"
|
||||
|
||||
# the file to log to
|
||||
LOGFILE="${APPNAME}.log"
|
||||
|
||||
logprint() {
|
||||
mkdir -p "${LOG_DIR}"
|
||||
echo "[$(date +%Y-%m-%d_%H:%M:%S)] [${APPNAME}] $1" \
|
||||
| tee -a "${LOG_DIR}/${LOGFILE}"
|
||||
}
|
||||
|
||||
/usr/sbin/chroot "${T_SYSROOT}" /usr/bin/env -i \
|
||||
HOME=/root \
|
||||
TERM="$TERM" \
|
||||
PS1='\n(dark horse linux) [ \u @ \H ] << \w >>\n\n[- ' \
|
||||
PATH=/usr/bin:/usr/sbin \
|
||||
/bin/bash --login
|
||||
Reference in New Issue
Block a user