#!/bin/bash cd "$(dirname "$0")" SCRIPT_DIR="$(pwd)" read -p "Enter Mount Point [/mnt/sysroot]: " TARGET_SYSROOT TARGET_SYSROOT=${TARGET_SYSROOT:-"/mnt/sysroot"} if [ "$TARGET_SYSROOT" == "/mnt/sysroot" ]; then if [ ! -f "$TARGET_SYSROOT/.linuxnt" ]; then INSTALL_SYSTEM=1 fi fi # ----------------------------------------------------------------------------- dossetup() { read -p "Press enter to prep the virtual filesystems..." mkdir -pv {$TARGET_SYSROOT/dev/pts,$TARGET_SYSROOT/dev/shm,$TARGET_SYSROOT/etc,$TARGET_SYSROOT/proc,$TARGET_SYSROOT/run,$TARGET_SYSROOT/sys} cp -v /etc/resolv.conf $TARGET_SYSROOT/etc/resolv.conf } dosconfig() { echo "Mounting virtual filesystems..." mount -v --bind /dev $TARGET_SYSROOT/dev mount -vt devpts devpts -o gid=5,mode=0620 $TARGET_SYSROOT/dev/pts mount -vt proc proc $TARGET_SYSROOT/proc mount -vt sysfs sysfs $TARGET_SYSROOT/sys mount -vt tmpfs tmpfs $TARGET_SYSROOT/run if [ -h $TARGET_SYSROOT/dev/shm ]; then install -v -d -m 1777 $TARGET_SYSROOT$(realpath /dev/shm) else mount -vt tmpfs -o nosuid,nodev tmpfs $TARGET_SYSROOT/dev/shm fi } winnt32() { read -p "Press enter to begin the installation." dnf4 install --installroot=$TARGET_SYSROOT --releasever=42 --setopt=install_weak_deps=False --setopt=keepcache=False --nodocs --refresh \ @custom-environment \ bc \ dbus-daemon \ curl \ htop \ nano \ python2* \ rsyslog \ traceroute \ unzip \ wget \ zip \ screen \ net-tools \ dos2unix \ rsync \ time \ tree \ whois \ git \ curl \ wimlib* \ cracklib-dicts \ -x ccache \ -x plymouth* \ -x audit \ -x abrt* \ -x firewall* \ -x vim* \ -x audit \ -x zram* touch $TARGET_SYSROOT/.linuxnt read -p "Install either worked or it didn't. Press enter to continue." } ntldr() { echo -e "\nEntering $TARGET_SYSROOT..." echo -e "\n================================================================================" echo -e "\nOpen Source Linux NT [Version $(uname -r)]\n$(uname -v)\n" chroot "$TARGET_SYSROOT" /usr/bin/env -i \ HOME=/root \ TERM="$TERM" \ PS1="(Linux NT) \u:\w \$ " \ PATH=/bin:/usr/bin:/usr/sbin \ MAKEFLAGS="-j$(nproc)" \ TESTSUITEFLAGS="-j$(nproc)" \ /bin/bash --login echo -e "\n================================================================================\n" } dosexit() { echo "Unmounting virtual filesystems..." umount -v $TARGET_SYSROOT/dev/pts mountpoint -q $TARGET_SYSROOT/dev/shm && umount -v $TARGET_SYSROOT/dev/shm umount -v $TARGET_SYSROOT/dev umount -v $TARGET_SYSROOT/run umount -v $TARGET_SYSROOT/proc umount -v $TARGET_SYSROOT/sys } # ----------------------------------------------------------------------------- # Setup filesystem if [ -n "$INSTALL_SYSTEM" ]; then dossetup fi # Mount virtual filesystems dosconfig # Install system if [ -n "$INSTALL_SYSTEM" ]; then winnt32 fi # Chroot to system ntldr # Unmount virtual filesystems dosexit