Added mkroot.sh reference/builder

This commit is contained in:
itdominator 2021-08-31 20:01:19 -05:00
parent 5eab3d0867
commit e388e82b56
3 changed files with 85 additions and 1 deletions

View File

@ -5,6 +5,9 @@
# ---- Setup Variables ---- # # ---- Setup Variables ---- #
# Root filesystem path
ROOT="${CHROOT_PTH}"
# Resolution of Xephyr... ex: 1920x1080 or 1600x900, etc # Resolution of Xephyr... ex: 1920x1080 or 1600x900, etc
RESOLUTION="1920x1080" RESOLUTION="1920x1080"

81
src/mkroot.sh Normal file
View File

@ -0,0 +1,81 @@
#!/bin/bash
. CONFIG.sh
# set -o xtrace ## To debug scripts
# set -o errexit ## To exit on error
# set -o errunset ## To exit if a variable is referenced but not set
function create_file_init_and_configs() {
# Toy init system to look over eventually.
#
# cat > "$ROOT"/init << 'EOF' &&
# #!/bin/sh
# export HOME=/home
# export PATH=/bin:/sbin
# mountpoint -q proc || mount -t proc proc proc
# mountpoint -q sys || mount -t sysfs sys sys
# if ! mountpoint -q dev
# then
# mount -t devtmpfs dev dev || mdev -s
# mkdir -p dev/pts
# mountpoint -q dev/pts || mount -t devpts dev/pts dev/pts
# fi
# if [ $$ -eq 1 ]
# then
# # Don't allow deferred initialization to crap messages over the shell prompt
# echo 3 3 > /proc/sys/kernel/printk
# # Setup networking for QEMU (needs /proc)
# ifconfig eth0 10.0.2.15
# route add default gw 10.0.2.2
# [ "$(date +%s)" -lt 1000 ] && rdate 10.0.2.2 # or time-b.nist.gov
# [ "$(date +%s)" -lt 10000000 ] && ntpd -nq -p north-america.pool.ntp.org
# [ -z "$CONSOLE" ] &&
# CONSOLE="$(sed -rn 's@(.* |^)console=(/dev/)*([[:alnum:]]*).*@\3@p' /proc/cmdline)"
# [ -z "$HANDOFF" ] && HANDOFF=/bin/sh && echo Type exit when done.
# [ -z "$CONSOLE" ] && CONSOLE=console
# exec /sbin/oneit -c /dev/"$CONSOLE" $HANDOFF
# else
# /bin/sh
# umount /dev/pts /dev /sys /proc
# fi
# EOF
# chmod +x "$ROOT"/init &&
cat > "$ROOT"/etc/passwd << 'EOF' &&
root::0:0:root:/root:/bin/sh
guest:x:500:500:guest:/home/guest:/bin/sh
nobody:x:65534:65534:nobody:/proc/self:/dev/null
EOF
cat > "$ROOT"/etc/group << 'EOF' &&
root:x:0:
guest:x:500:
EOF
echo "nameserver 8.8.8.8" > "$ROOT"/etc/resolv.conf || exit 1
}
function create_file_structure() {
rm -rf "$ROOT" &&
mkdir -p "$ROOT"/{etc,tmp,proc,sys,dev,home,mnt,root,usr/{bin,sbin,lib},var} &&
chmod a+rwxt "$ROOT"/tmp &&
ln -s usr/bin "$ROOT/bin" &&
ln -s usr/sbin "$ROOT/sbin" &&
ln -s usr/lib "$ROOT/lib"
}
function main() {
SCRIPTPATH="$( cd "$(dirname "")" >/dev/null 2>&1 ; pwd -P )"
cd "${SCRIPTPATH}"
echo "Working Dir: " $(pwd)
create_file_structure
create_file_init_and_configs
}
main $@;

View File

@ -92,7 +92,7 @@ function sanity_check() {
# Note: Need to add arch/manjaro linux detection to run compatable commands. # Note: Need to add arch/manjaro linux detection to run compatable commands.
# # cdrkit has 'genisoimage' command # # cdrkit has 'genisoimage' command
# sudo pacman -Syy syslinux squashfs-tools cdrkit netpbm xorg-server-xephyr # sudo pacman -Syy syslinux squashfs-tools cdrkit netpbm xorg-server-xephyr
fi fi
if [[ "${ARCH}" == "" ]] || [[ "${RELEASE}" == "" ]]; then if [[ "${ARCH}" == "" ]] || [[ "${RELEASE}" == "" ]]; then