From e88b241519088255537746b689b12f0d7023dc0d Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 7 Nov 2025 14:40:46 +0000 Subject: [PATCH] fix: Restructure containers - aios contains child containers internally Changed from 3 separate containers to 1 container with child containers inside: - /var/lib/machines/aios/ (main container) - /var/lib/machines/restore-img/ (child container) - /var/lib/machines/workspace/ (child container) ai user operates child containers from within aios using machinectl. --- build.zsh | 19 ++++++++++++++----- cfg/aios-ctl.zsh | 4 ++-- cfg/install.sh | 38 ++++---------------------------------- 3 files changed, 20 insertions(+), 41 deletions(-) diff --git a/build.zsh b/build.zsh index 83ce025..86a4b4c 100755 --- a/build.zsh +++ b/build.zsh @@ -101,16 +101,25 @@ echo "=== Finalizing ===" # Copy aios-ctl.zsh for host machine control cp -rf ./cfg/aios-ctl.zsh root.x86_64/var/lib/machines/arch/opt/aios-ctl.zsh -# Create backup and workspace containers -echo "Creating aiosback and workspace containers..." -cp -a root.x86_64/var/lib/machines/arch root.x86_64/var/lib/machines/aiosback -cp -a root.x86_64/var/lib/machines/arch root.x86_64/var/lib/machines/workspace +# Create child containers inside aios (not separate containers) +echo "Creating child containers inside aios..." +mkdir -p root.x86_64/var/lib/machines/arch/var/lib/machines + +# Copy the base system to temporary location to avoid recursion +cp -a root.x86_64/var/lib/machines/arch /tmp/aios-base-$$ + +# Create child containers inside aios +cp -a /tmp/aios-base-$$ root.x86_64/var/lib/machines/arch/var/lib/machines/restore-img +cp -a /tmp/aios-base-$$ root.x86_64/var/lib/machines/arch/var/lib/machines/workspace + +# Cleanup temporary +rm -rf /tmp/aios-base-$$ # Copy install script cp -rf ./cfg/install.sh ./install.sh chmod +x ./install.sh -# Create tarball with all containers +# Create tarball with aios (contains child containers inside) echo "Creating tarball..." tar -zcvf aios-bootstrap.tar.gz root.x86_64/ install.sh diff --git a/cfg/aios-ctl.zsh b/cfg/aios-ctl.zsh index 41cfd30..05bef2b 100644 --- a/cfg/aios-ctl.zsh +++ b/cfg/aios-ctl.zsh @@ -21,9 +21,9 @@ function aios-shell() { sudo machinectl shell $NAME } -# Login to aios container +# Login to aios container as ai user function aios-login() { - sudo machinectl login $NAME + sudo machinectl shell $NAME /bin/su - ai } # Create backup of current aios diff --git a/cfg/install.sh b/cfg/install.sh index f912950..5319014 100644 --- a/cfg/install.sh +++ b/cfg/install.sh @@ -27,19 +27,17 @@ fi echo "1. Extracting $TARBALL..." tar xf "$TARBALL" -# Move all containers to /var/lib/machines/ -echo "2. Installing containers to /var/lib/machines/..." -rm -rf /var/lib/machines/$NAME /var/lib/machines/$BACKUP /var/lib/machines/workspace +# Install aios (contains child containers inside) +echo "2. Installing aios to /var/lib/machines/..." +rm -rf /var/lib/machines/$NAME mkdir -p /var/lib/machines mv root.x86_64/var/lib/machines/arch /var/lib/machines/$NAME -mv root.x86_64/var/lib/machines/aiosback /var/lib/machines/$BACKUP -mv root.x86_64/var/lib/machines/workspace /var/lib/machines/workspace # Copy nspawn configuration echo "3. Installing systemd-nspawn configuration..." mkdir -p /etc/systemd/nspawn -# Create aios.nspawn +# Create aios.nspawn (only one container needed) cat > /etc/systemd/nspawn/$NAME.nspawn <<'EOF' [Exec] Boot=yes @@ -53,34 +51,6 @@ Bind=/root/.config/syui/ai:/root/.config/syui/ai VirtualEthernet=no EOF -# Create aiosback.nspawn -cat > /etc/systemd/nspawn/$BACKUP.nspawn <<'EOF' -[Exec] -Boot=yes -PrivateUsers=pick -ResolvConf=copy-host - -[Files] -Bind=/root/.config/syui/ai:/root/.config/syui/ai - -[Network] -VirtualEthernet=no -EOF - -# Create workspace.nspawn -cat > /etc/systemd/nspawn/workspace.nspawn <<'EOF' -[Exec] -Boot=yes -PrivateUsers=pick -ResolvConf=copy-host - -[Files] -Bind=/root/.config/syui/ai:/root/.config/syui/ai - -[Network] -VirtualEthernet=no -EOF - # Create bind mount directory mkdir -p /root/.config/syui/ai