mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-25 17:37:19 +00:00
Simplify: Remove complex ISO build, use GitHub Actions verification only
This commit is contained in:
parent
570fede433
commit
833aa2e3a2
4 changed files with 12 additions and 479 deletions
100
.github/workflows/build-iso.yml
vendored
100
.github/workflows/build-iso.yml
vendored
|
|
@ -1,26 +1,16 @@
|
||||||
name: Build AeThex Linux ISO
|
name: Build & Verify AeThex
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
build_type:
|
|
||||||
description: 'Build type'
|
|
||||||
required: true
|
|
||||||
default: 'iso'
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- iso
|
|
||||||
- test
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-iso:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
timeout-minutes: 90
|
timeout-minutes: 30
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
@ -31,80 +21,14 @@ jobs:
|
||||||
node-version: '20'
|
node-version: '20'
|
||||||
cache: 'npm'
|
cache: 'npm'
|
||||||
|
|
||||||
- name: Install Rust
|
- name: Install dependencies
|
||||||
uses: dtolnay/rust-toolchain@stable
|
run: npm ci
|
||||||
|
|
||||||
- name: Install system dependencies
|
- name: Type check
|
||||||
run: |
|
run: npm run check
|
||||||
sudo apt-get update -qq
|
|
||||||
sudo apt-get install -y -qq \
|
|
||||||
debootstrap \
|
|
||||||
squashfs-tools \
|
|
||||||
xorriso \
|
|
||||||
grub-pc-bin \
|
|
||||||
grub-efi-amd64-bin \
|
|
||||||
mtools \
|
|
||||||
dosfstools \
|
|
||||||
isolinux \
|
|
||||||
syslinux-common \
|
|
||||||
libwebkit2gtk-4.1-dev \
|
|
||||||
build-essential \
|
|
||||||
curl \
|
|
||||||
wget \
|
|
||||||
file \
|
|
||||||
libxdo-dev \
|
|
||||||
libssl-dev \
|
|
||||||
libayatana-appindicator3-dev \
|
|
||||||
librsvg2-dev
|
|
||||||
|
|
||||||
- name: Install Node dependencies
|
|
||||||
run: npm ci --prefer-offline
|
|
||||||
|
|
||||||
- name: Build client
|
- name: Build client
|
||||||
run: npm run build
|
run: npm run build
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Build Tauri app
|
- name: ✅ Build complete
|
||||||
run: npm run build:tauri
|
run: echo "AeThex-OS verified and built successfully"
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Build AeThex Linux ISO
|
|
||||||
run: sudo bash script/build-linux-iso.sh
|
|
||||||
continue-on-error: true
|
|
||||||
|
|
||||||
- name: Check for ISO
|
|
||||||
id: check-iso
|
|
||||||
run: |
|
|
||||||
if [ -f ~/aethex-linux-build/AeThex-Linux-*.iso ]; then
|
|
||||||
echo "iso_exists=true" >> $GITHUB_OUTPUT
|
|
||||||
ls -lh ~/aethex-linux-build/AeThex-Linux-*.iso
|
|
||||||
else
|
|
||||||
echo "iso_exists=false" >> $GITHUB_OUTPUT
|
|
||||||
echo "ISO file not found - build may have failed"
|
|
||||||
ls -lh ~/aethex-linux-build/ 2>/dev/null || echo "Build directory not found"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Upload ISO as artifact
|
|
||||||
if: steps.check-iso.outputs.iso_exists == 'true'
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: AeThex-Linux-ISO
|
|
||||||
path: ~/aethex-linux-build/AeThex-Linux-*.iso*
|
|
||||||
retention-days: 90
|
|
||||||
|
|
||||||
- name: Report Status
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
echo "## Build Status" >> $GITHUB_STEP_SUMMARY
|
|
||||||
if [ "${{ steps.check-iso.outputs.iso_exists }}" == "true" ]; then
|
|
||||||
echo "✅ ISO build successful - check artifacts" >> $GITHUB_STEP_SUMMARY
|
|
||||||
else
|
|
||||||
echo "⚠️ ISO build incomplete - check logs above" >> $GITHUB_STEP_SUMMARY
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Debug Info
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
echo "Build completed at: $(date)"
|
|
||||||
echo "Checking build directory..."
|
|
||||||
ls -la ~/aethex-linux-build/ 2>/dev/null || echo "Build directory does not exist yet"
|
|
||||||
|
|
|
||||||
|
|
@ -1,220 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# AeThex Linux - ISO Builder Script (Proof of Concept)
|
|
||||||
# Builds a bootable Ubuntu-based ISO with AeThex Desktop Environment
|
|
||||||
|
|
||||||
VERSION="1.0.0-alpha"
|
|
||||||
BUILD_DIR="$HOME/aethex-linux-build"
|
|
||||||
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
||||||
ISO_NAME="AeThex-Linux-${VERSION}-amd64.iso"
|
|
||||||
|
|
||||||
echo "======================================"
|
|
||||||
echo " AeThex Linux ISO Builder"
|
|
||||||
echo " Version: ${VERSION}"
|
|
||||||
echo "======================================"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Check for root
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
|
||||||
echo "This script must be run as root (sudo)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install dependencies
|
|
||||||
echo "[1/10] Installing build dependencies..."
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get install -y \
|
|
||||||
debootstrap \
|
|
||||||
squashfs-tools \
|
|
||||||
xorriso \
|
|
||||||
grub-pc-bin \
|
|
||||||
grub-efi-amd64-bin \
|
|
||||||
mtools \
|
|
||||||
dosfstools \
|
|
||||||
isolinux \
|
|
||||||
syslinux-common \
|
|
||||||
> /dev/null 2>&1
|
|
||||||
|
|
||||||
echo "[2/10] Creating build directory..."
|
|
||||||
mkdir -p "${BUILD_DIR}"/{chroot,iso,iso/boot/{grub,isolinux}}
|
|
||||||
cd "${BUILD_DIR}"
|
|
||||||
|
|
||||||
# Bootstrap Ubuntu base system
|
|
||||||
echo "[3/10] Bootstrapping Ubuntu 24.04 base system (this may take 5-10 minutes)..."
|
|
||||||
if [ ! -d "chroot/bin" ]; then
|
|
||||||
debootstrap --arch=amd64 noble chroot http://archive.ubuntu.com/ubuntu/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Chroot configuration
|
|
||||||
echo "[4/10] Configuring base system..."
|
|
||||||
cat > chroot/etc/apt/sources.list << 'EOF'
|
|
||||||
deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse
|
|
||||||
deb http://archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
|
|
||||||
deb http://archive.ubuntu.com/ubuntu noble-security main restricted universe multiverse
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Install packages in chroot
|
|
||||||
echo "[5/10] Installing system packages..."
|
|
||||||
chroot chroot /bin/bash -c "
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get install -y \
|
|
||||||
linux-image-generic \
|
|
||||||
linux-headers-generic \
|
|
||||||
grub-efi-amd64 \
|
|
||||||
grub-pc-bin \
|
|
||||||
systemd \
|
|
||||||
network-manager \
|
|
||||||
pulseaudio \
|
|
||||||
mesa-utils \
|
|
||||||
xorg \
|
|
||||||
lightdm \
|
|
||||||
openbox \
|
|
||||||
wget \
|
|
||||||
curl \
|
|
||||||
git \
|
|
||||||
sudo \
|
|
||||||
> /dev/null 2>&1
|
|
||||||
"
|
|
||||||
|
|
||||||
echo "[6/10] Building AeThex Desktop binary..."
|
|
||||||
cd "${REPO_DIR}"
|
|
||||||
if [ ! -f "src-tauri/target/release/aethex-os" ]; then
|
|
||||||
echo "Building Tauri app (this may take a few minutes)..."
|
|
||||||
npm run tauri:build || {
|
|
||||||
echo "ERROR: Tauri build failed. Make sure Rust and dependencies are installed."
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy AeThex Desktop to chroot
|
|
||||||
echo "[7/10] Installing AeThex Desktop..."
|
|
||||||
cp "${REPO_DIR}/src-tauri/target/release/aethex-os" "${BUILD_DIR}/chroot/usr/bin/aethex-desktop"
|
|
||||||
chmod +x "${BUILD_DIR}/chroot/usr/bin/aethex-desktop"
|
|
||||||
|
|
||||||
# Copy assets if they exist
|
|
||||||
if [ -d "${REPO_DIR}/dist/public" ]; then
|
|
||||||
mkdir -p "${BUILD_DIR}/chroot/usr/share/aethex-desktop"
|
|
||||||
cp -r "${REPO_DIR}/dist/public"/* "${BUILD_DIR}/chroot/usr/share/aethex-desktop/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create desktop session
|
|
||||||
echo "[8/10] Configuring desktop environment..."
|
|
||||||
mkdir -p "${BUILD_DIR}/chroot/usr/share/xsessions"
|
|
||||||
cat > "${BUILD_DIR}/chroot/usr/share/xsessions/aethex.desktop" << 'EOF'
|
|
||||||
[Desktop Entry]
|
|
||||||
Name=AeThex OS
|
|
||||||
Comment=AeThex Desktop Environment
|
|
||||||
Exec=/usr/bin/aethex-desktop
|
|
||||||
Type=Application
|
|
||||||
DesktopNames=AeThex
|
|
||||||
X-Ubuntu-Gettext-Domain=aethex-session
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Create default user
|
|
||||||
chroot chroot /bin/bash -c "
|
|
||||||
useradd -m -s /bin/bash aethex || true
|
|
||||||
echo 'aethex:aethex' | chpasswd
|
|
||||||
usermod -aG sudo,audio,video,plugdev aethex
|
|
||||||
"
|
|
||||||
|
|
||||||
# Configure auto-login
|
|
||||||
cat > "${BUILD_DIR}/chroot/etc/lightdm/lightdm.conf" << 'EOF'
|
|
||||||
[Seat:*]
|
|
||||||
autologin-user=aethex
|
|
||||||
autologin-user-timeout=0
|
|
||||||
user-session=aethex
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Configure hostname
|
|
||||||
echo "aethex-linux" > "${BUILD_DIR}/chroot/etc/hostname"
|
|
||||||
|
|
||||||
# Create systemd service
|
|
||||||
mkdir -p "${BUILD_DIR}/chroot/etc/systemd/system"
|
|
||||||
cat > "${BUILD_DIR}/chroot/etc/systemd/system/aethex-desktop.service" << 'EOF'
|
|
||||||
[Unit]
|
|
||||||
Description=AeThex Desktop Environment
|
|
||||||
After=graphical.target network.target
|
|
||||||
Wants=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=aethex
|
|
||||||
Environment=DISPLAY=:0
|
|
||||||
ExecStart=/usr/bin/aethex-desktop
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=5
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=graphical.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chroot chroot systemctl enable lightdm aethex-desktop || true
|
|
||||||
|
|
||||||
# Create GRUB config
|
|
||||||
echo "[9/10] Configuring bootloader..."
|
|
||||||
cat > "${BUILD_DIR}/iso/boot/grub/grub.cfg" << 'EOF'
|
|
||||||
set default="0"
|
|
||||||
set timeout=10
|
|
||||||
|
|
||||||
menuentry "AeThex Linux (Live)" {
|
|
||||||
linux /boot/vmlinuz boot=casper quiet splash
|
|
||||||
initrd /boot/initrd
|
|
||||||
}
|
|
||||||
|
|
||||||
menuentry "AeThex Linux (Install)" {
|
|
||||||
linux /boot/vmlinuz boot=casper only-ubiquity quiet splash
|
|
||||||
initrd /boot/initrd
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Copy kernel and initrd
|
|
||||||
echo "[10/10] Creating ISO image..."
|
|
||||||
cp "${BUILD_DIR}/chroot/boot/vmlinuz-"* "${BUILD_DIR}/iso/boot/vmlinuz"
|
|
||||||
cp "${BUILD_DIR}/chroot/boot/initrd.img-"* "${BUILD_DIR}/iso/boot/initrd"
|
|
||||||
|
|
||||||
# Create squashfs
|
|
||||||
mksquashfs "${BUILD_DIR}/chroot" "${BUILD_DIR}/iso/live/filesystem.squashfs" \
|
|
||||||
-comp xz -e boot || {
|
|
||||||
echo "ERROR: Failed to create squashfs"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create ISO
|
|
||||||
cd "${BUILD_DIR}"
|
|
||||||
xorriso -as mkisofs \
|
|
||||||
-iso-level 3 \
|
|
||||||
-full-iso9660-filenames \
|
|
||||||
-volid "AETHEX_LINUX" \
|
|
||||||
-appid "AeThex Linux ${VERSION}" \
|
|
||||||
-publisher "AeThex Corporation" \
|
|
||||||
-eltorito-boot boot/grub/grub.cfg \
|
|
||||||
-eltorito-catalog boot/grub/boot.cat \
|
|
||||||
-no-emul-boot \
|
|
||||||
-boot-load-size 4 \
|
|
||||||
-boot-info-table \
|
|
||||||
-eltorito-alt-boot \
|
|
||||||
-e EFI/efiboot.img \
|
|
||||||
-no-emul-boot \
|
|
||||||
-isohybrid-gpt-basdat \
|
|
||||||
-output "${ISO_NAME}" \
|
|
||||||
iso/ 2>&1 | grep -v "NOTE: The file is larger" || true
|
|
||||||
|
|
||||||
# Generate checksum
|
|
||||||
sha256sum "${ISO_NAME}" > "${ISO_NAME}.sha256"
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "======================================"
|
|
||||||
echo " Build Complete!"
|
|
||||||
echo "======================================"
|
|
||||||
echo ""
|
|
||||||
echo "ISO Location: ${BUILD_DIR}/${ISO_NAME}"
|
|
||||||
echo "ISO Size: $(du -h "${BUILD_DIR}/${ISO_NAME}" | cut -f1)"
|
|
||||||
echo "Checksum: ${BUILD_DIR}/${ISO_NAME}.sha256"
|
|
||||||
echo ""
|
|
||||||
echo "Next steps:"
|
|
||||||
echo " 1. Test in VM: sudo bash script/test-in-vm.sh"
|
|
||||||
echo " 2. Write to USB: sudo dd if=${ISO_NAME} of=/dev/sdX bs=4M status=progress"
|
|
||||||
echo " 3. Boot from USB on real hardware"
|
|
||||||
echo ""
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# AeThex Linux - Create Bootable USB Drive
|
|
||||||
# Usage: sudo bash create-usb.sh /dev/sdX
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
|
||||||
echo "This script must be run as root (sudo)"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
|
||||||
echo "Usage: sudo bash create-usb.sh /dev/sdX"
|
|
||||||
echo ""
|
|
||||||
echo "Available devices:"
|
|
||||||
lsblk -d -o NAME,SIZE,TYPE,MOUNTPOINT | grep disk
|
|
||||||
echo ""
|
|
||||||
echo "Example: sudo bash create-usb.sh /dev/sdb"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DEVICE=$1
|
|
||||||
BUILD_DIR="$HOME/aethex-linux-build"
|
|
||||||
ISO_FILE="${BUILD_DIR}/AeThex-Linux-1.0.0-alpha-amd64.iso"
|
|
||||||
|
|
||||||
# Check if ISO exists
|
|
||||||
if [ ! -f "$ISO_FILE" ]; then
|
|
||||||
echo "ERROR: ISO not found at $ISO_FILE"
|
|
||||||
echo "Build it first: sudo bash script/build-linux-iso.sh"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Confirm device
|
|
||||||
echo "WARNING: This will ERASE all data on ${DEVICE}"
|
|
||||||
echo "Device info:"
|
|
||||||
lsblk "${DEVICE}" || exit 1
|
|
||||||
echo ""
|
|
||||||
read -p "Are you sure you want to continue? (yes/no): " -r
|
|
||||||
if [[ ! $REPLY =~ ^[Yy][Ee][Ss]$ ]]; then
|
|
||||||
echo "Cancelled."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Unmount if mounted
|
|
||||||
echo "Unmounting ${DEVICE}..."
|
|
||||||
umount ${DEVICE}* 2>/dev/null || true
|
|
||||||
|
|
||||||
# Write ISO to USB
|
|
||||||
echo "Writing ISO to ${DEVICE}..."
|
|
||||||
echo "This may take 5-10 minutes..."
|
|
||||||
dd if="${ISO_FILE}" of="${DEVICE}" bs=4M status=progress oflag=sync
|
|
||||||
|
|
||||||
# Sync to ensure all data is written
|
|
||||||
sync
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Success! USB drive is ready."
|
|
||||||
echo "You can now:"
|
|
||||||
echo " 1. Remove the USB drive safely"
|
|
||||||
echo " 2. Boot from it on any PC"
|
|
||||||
echo " 3. Default login: aethex / aethex"
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# AeThex Linux - VM Testing Script
|
|
||||||
# Automatically creates and launches a VirtualBox VM with the AeThex Linux ISO
|
|
||||||
|
|
||||||
VM_NAME="AeThex-Linux-Test"
|
|
||||||
BUILD_DIR="$HOME/aethex-linux-build"
|
|
||||||
ISO_PATH="${BUILD_DIR}/AeThex-Linux-1.0.0-alpha-amd64.iso"
|
|
||||||
MEMORY_MB=4096
|
|
||||||
VRAM_MB=128
|
|
||||||
DISK_SIZE_MB=20480 # 20GB
|
|
||||||
|
|
||||||
echo "======================================"
|
|
||||||
echo " AeThex Linux VM Testing"
|
|
||||||
echo "======================================"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Check for VirtualBox
|
|
||||||
if ! command -v VBoxManage &> /dev/null; then
|
|
||||||
echo "ERROR: VirtualBox not found"
|
|
||||||
echo "Install with: sudo apt install virtualbox"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for ISO
|
|
||||||
if [ ! -f "${ISO_PATH}" ]; then
|
|
||||||
echo "ERROR: ISO not found at ${ISO_PATH}"
|
|
||||||
echo "Build it first with: sudo bash script/build-linux-iso.sh"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove existing VM if present
|
|
||||||
echo "[1/5] Cleaning up existing VM..."
|
|
||||||
VBoxManage unregistervm "${VM_NAME}" --delete 2>/dev/null || true
|
|
||||||
|
|
||||||
# Create new VM
|
|
||||||
echo "[2/5] Creating virtual machine..."
|
|
||||||
VBoxManage createvm \
|
|
||||||
--name "${VM_NAME}" \
|
|
||||||
--ostype "Ubuntu_64" \
|
|
||||||
--register
|
|
||||||
|
|
||||||
# Configure VM
|
|
||||||
echo "[3/5] Configuring VM settings..."
|
|
||||||
VBoxManage modifyvm "${VM_NAME}" \
|
|
||||||
--memory ${MEMORY_MB} \
|
|
||||||
--vram ${VRAM_MB} \
|
|
||||||
--cpus 2 \
|
|
||||||
--audio pulse \
|
|
||||||
--audiocontroller ac97 \
|
|
||||||
--boot1 dvd \
|
|
||||||
--boot2 disk \
|
|
||||||
--nic1 nat \
|
|
||||||
--graphicscontroller vmsvga \
|
|
||||||
--accelerate3d on
|
|
||||||
|
|
||||||
# Create storage controllers
|
|
||||||
VBoxManage storagectl "${VM_NAME}" \
|
|
||||||
--name "SATA" \
|
|
||||||
--add sata \
|
|
||||||
--controller IntelAhci
|
|
||||||
|
|
||||||
# Create and attach virtual hard disk
|
|
||||||
echo "[4/5] Creating virtual disk..."
|
|
||||||
VBoxManage createhd \
|
|
||||||
--filename "${HOME}/VirtualBox VMs/${VM_NAME}/${VM_NAME}.vdi" \
|
|
||||||
--size ${DISK_SIZE_MB}
|
|
||||||
|
|
||||||
VBoxManage storageattach "${VM_NAME}" \
|
|
||||||
--storagectl "SATA" \
|
|
||||||
--port 0 \
|
|
||||||
--device 0 \
|
|
||||||
--type hdd \
|
|
||||||
--medium "${HOME}/VirtualBox VMs/${VM_NAME}/${VM_NAME}.vdi"
|
|
||||||
|
|
||||||
# Attach ISO
|
|
||||||
VBoxManage storageattach "${VM_NAME}" \
|
|
||||||
--storagectl "SATA" \
|
|
||||||
--port 1 \
|
|
||||||
--device 0 \
|
|
||||||
--type dvddrive \
|
|
||||||
--medium "${ISO_PATH}"
|
|
||||||
|
|
||||||
# Enable EFI (optional, for UEFI boot testing)
|
|
||||||
# VBoxManage modifyvm "${VM_NAME}" --firmware efi
|
|
||||||
|
|
||||||
echo "[5/5] Starting VM..."
|
|
||||||
VBoxManage startvm "${VM_NAME}" --type gui
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "======================================"
|
|
||||||
echo " VM Launched Successfully!"
|
|
||||||
echo "======================================"
|
|
||||||
echo ""
|
|
||||||
echo "Test checklist:"
|
|
||||||
echo " [ ] System boots to AeThex desktop"
|
|
||||||
echo " [ ] Window manager responds (drag/drop)"
|
|
||||||
echo " [ ] Terminal opens and functions"
|
|
||||||
echo " [ ] File manager shows directories"
|
|
||||||
echo " [ ] Network connectivity works"
|
|
||||||
echo " [ ] Applications launch correctly"
|
|
||||||
echo ""
|
|
||||||
echo "Login credentials:"
|
|
||||||
echo " Username: aethex"
|
|
||||||
echo " Password: aethex"
|
|
||||||
echo ""
|
|
||||||
echo "To stop VM: VBoxManage controlvm '${VM_NAME}' poweroff"
|
|
||||||
echo "To delete VM: VBoxManage unregistervm '${VM_NAME}' --delete"
|
|
||||||
echo ""
|
|
||||||
Loading…
Reference in a new issue