From 0b47630db47abbb595dfb11deff142fce3cd9e71 Mon Sep 17 00:00:00 2001 From: Daveswo <969dwi@gmail.com> Date: Tue, 18 Aug 2026 01:09:04 +0100 Subject: [PATCH] Add AdaptiveOS builder script (16GB RAM disk edition) --- basher.sh | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 basher.sh diff --git a/basher.sh b/basher.sh new file mode 100644 index 0000000..4f56ea9 --- /dev/null +++ b/basher.sh @@ -0,0 +1,109 @@ +#!/bin/bash +# ========================================== +# AdaptiveOS Builder v6 (16GB RAM Disk Edition) +# ========================================== + +# 1. Setup 16GB RAM Disk (tmpfs) on the HOST for the build process +RAMDISK="/tmp/adaptive-build" +echo "[0/8] Creating 16GB RAM disk at $RAMDISK..." +sudo mkdir -p "$RAMDISK" +sudo umount "$RAMDISK" 2>/dev/null +# Mount 16GB of RAM as a filesystem +sudo mount -t tmpfs -o size=16G tmpfs "$RAMDISK" +cd "$RAMDISK" + +set -e +ALPINE_VERSION="3.19.1" +ISO_NAME="alpine-virt-${ALPINE_VERSION}-x86_64.iso" +ISO_URL="https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/x86_64/${ISO_NAME}" + +echo "[1/8] Downloading Alpine..." +wget -nc "$ISO_URL" + +echo "[2/8] Extracting ISO..." +mkdir -p alpine-custom alpine-initrd +sudo mount -o loop "${ISO_NAME}" /mnt +cp -a /mnt/. alpine-custom/ +sudo umount /mnt + +echo "[3/8] Unpacking initramfs..." +cd alpine-initrd +zcat ../alpine-custom/boot/initramfs-virt | sudo cpio -idm > /dev/null 2>&1 + +echo "[4/8] Injecting Learning Loop & 16GB RAM Workspace..." +sudo mkdir -p etc/profile.d +sudo tee etc/profile.d/adaptive-loop.sh > /dev/null << 'EOF' +#!/bin/sh +# 1. Create a 16GB RAM workspace inside the booted OS +mkdir -p /mnt/ramdisk +mount -t tmpfs -o size=16G tmpfs /mnt/ramdisk 2>/dev/null + +f() { + # 2. Store learned fixes in the RAM disk for maximum speed + touch /mnt/ramdisk/.f + FIX=$(awk -v k="$*" 'substr($0, 1, length(k)+1) == k"=" {print substr($0, length(k)+2); exit}' /mnt/ramdisk/.f) + + until { eval "$FIX" 2>/dev/null; "$@"; }; do + printf "\n[ADAPTIVE LOOP] Command failed. Enter fix: " + read n + if [ -n "$n" ]; then + echo "$*=$n" >> /mnt/ramdisk/.f + FIX="$n" + eval "$FIX" + else + return 1 + fi + done +} +echo "=========================================" +echo " Welcome to the Adaptive Governance OS " +echo " 16GB RAM Disk Mounted: /mnt/ramdisk " +echo " Persistent Learning Loop Initialized. " +echo " Usage: f " +echo "=========================================" +EOF +sudo chmod +x etc/profile.d/adaptive-loop.sh + +echo "[5/8] Repacking initramfs..." +sudo find . | sudo cpio -o -H newc > ../alpine-custom/boot/initramfs-virt.tmp 2>/dev/null +gzip -9 < ../alpine-custom/boot/initramfs-virt.tmp > ../alpine-custom/boot/initramfs-virt +rm ../alpine-custom/boot/initramfs-virt.tmp +cd .. + +echo "[6/8] Ensuring Bootloader Paths Exist..." +# Dynamically find the bootloader so xorriso doesn't fail on hardcoded paths +ISOLINUX_BIN=$(find alpine-custom/boot -name "isolinux.bin" | head -n 1) +ISOLINUX_BIN_REL=${ISOLINUX_BIN#alpine-custom/} +BOOT_DIR_REL=$(dirname "$ISOLINUX_BIN_REL") + +mkdir -p alpine-custom/boot/syslinux +if [ "$BOOT_DIR_REL" != "boot/syslinux" ]; then + # Create a symlink so xorriso's hardcoded -c boot/syslinux/boot.cat works + ln -sfn $(basename "$BOOT_DIR_REL") alpine-custom/boot/syslinux +fi + +echo "[7/8] Compiling Bootable ISO..." +wget -q "https://repo.or.cz/syslinux.git/blob_plain/HEAD:/mbr/isohdpfx.bin" -O isohdpfx.bin || true + +XORRISO_CMD=(xorriso -as mkisofs -o adaptive-os.iso -V "AdaptiveOS" -c boot/syslinux/boot.cat -b "$ISOLINUX_BIN_REL" -no-emul-boot -boot-load-size 4 -boot-info-table) + +if [ -f "isohdpfx.bin" ]; then + XORRISO_CMD+=(-isohybrid-mbr "isohdpfx.bin") +fi +XORRISO_CMD+=(alpine-custom) +"${XORRISO_CMD[@]}" + +echo "[8/8] Moving ISO to Host and Cleaning Up..." +cp adaptive-os.iso ~/ +cd ~ +sudo umount "$RAMDISK" +sudo rmdir "$RAMDISK" + +echo "" +echo "=========================================" +echo " SUCCESS: Bootable ISO created in RAM!" +echo " File: ~/adaptive-os.iso" +echo "=========================================" +echo "" +echo "To boot the VM and allocate 16GB of RAM to the OS, run:" +echo "qemu-system-x86_64 -cdrom ~/adaptive-os.iso -m 16G"