From 33ae437b5b82b7f83ef6a221b9a0d1a839752adb Mon Sep 17 00:00:00 2001 From: nmemmert <67961292+nmemmert@users.noreply.github.com> Date: Thu, 23 Jul 2026 15:51:44 -0400 Subject: [PATCH] Fix installer copy step; fix stale skyinstall references MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Installer copy (installer/orioninstall): - Root cause: rsync -ax / /mnt/ copies the overlayfs live root, which is slow, unpredictable, and hangs in VMs with overlapping filesystems - Fix: copy from /run/archiso/airootfs instead (the squashfs is already mounted there on every archiso live boot). This is the clean base system, avoids the cow layer entirely, and is significantly faster. - Added -H -A -X -S flags for proper hard-link, ACL, xattr, sparse-file handling - Fallback to live-root rsync if the squashfs mount isn't present - Also renamed EFI partition label SKYEFI → ORIONEFI Discoverability (deskbar + wm): - deskbar "Install OrionOS" was calling 'sudo skyinstall' (old name) — fixed to 'sudo orioninstall-gui || sudo orioninstall' with GUI-first fallback - Right-click desktop menu now also has "Install OrionOS" entry (was only in the deskbar hamburger menu before) Co-Authored-By: Claude Sonnet 4.6 --- deskbar/src/deskbar.c | 2 +- installer/orioninstall | 27 +++++++++++++++++++++++---- wm/src/menu.c | 1 + 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/deskbar/src/deskbar.c b/deskbar/src/deskbar.c index 0da5c48..61df494 100644 --- a/deskbar/src/deskbar.c +++ b/deskbar/src/deskbar.c @@ -572,7 +572,7 @@ static const char *S1_CMD[] = { #define NS1 5 static const MI MENU[] = { - { "Install OrionOS...", "alacritty -e bash -c 'sudo skyinstall; exec bash' &", 0, 0,-1 }, + { "Install OrionOS...", "alacritty -e bash -c 'sudo orioninstall-gui 2>/dev/null || sudo orioninstall; exec bash' &", 0, 0,-1 }, { NULL, NULL, 1, 0,-1 }, { "Applications", NULL, 0, 1, 0 }, { "Settings", NULL, 0, 1, 1 }, diff --git a/installer/orioninstall b/installer/orioninstall index 27d6c97..7b36793 100644 --- a/installer/orioninstall +++ b/installer/orioninstall @@ -141,7 +141,7 @@ ok "Partitioned." progress 10 "Formatting partitions…" info "Formatting..." if [[ "$BOOT_MODE" == "uefi" ]]; then - mkfs.fat -F32 -n SKYEFI "$EFI_PART" + mkfs.fat -F32 -n ORIONEFI "$EFI_PART" ok "EFI: FAT32 ($EFI_PART)" fi mkfs.ext4 -L OrionOS "$ROOT_PART" @@ -160,9 +160,28 @@ ok "Mounted." # ── 4. Copy live system ─────────────────────────────────────────────── progress 18 "Copying live system (this takes a few minutes)…" info "Copying live system to disk..." -rsync -ax \ - --exclude={/proc,/sys,/dev,/run,/mnt,/media,/tmp,/lost+found} \ - / /mnt/ + +# On archiso live systems the squashfs is already mounted at +# /run/archiso/airootfs. Copy from there: it's the clean base system +# (no live-session overlay junk) and it's much faster and more reliable +# than rsyncing the overlayfs root. +SFS_ROOT="/run/archiso/airootfs" +if [[ -d "$SFS_ROOT" ]] && [[ -f "$SFS_ROOT/etc/os-release" ]]; then + info "Copying from squashfs mount at $SFS_ROOT..." + rsync -axHAXS "$SFS_ROOT/" /mnt/ +else + info "Squashfs not found; falling back to live root copy..." + rsync -axHAXS \ + --exclude=/proc/ \ + --exclude=/sys/ \ + --exclude=/dev/ \ + --exclude=/run/ \ + --exclude=/mnt/ \ + --exclude=/media/ \ + --exclude=/tmp/ \ + --exclude=/lost+found \ + / /mnt/ +fi ok "Files copied." # ── 5. fstab ───────────────────────────────────────────────────────── diff --git a/wm/src/menu.c b/wm/src/menu.c index 6066907..080f17f 100644 --- a/wm/src/menu.c +++ b/wm/src/menu.c @@ -18,6 +18,7 @@ static const MenuItem MENU_ITEMS[] = { { "Display Settings", "arandr &" }, { "──────────────────", NULL }, { "Change Wallpaper", "orionwallpaper --reset &" }, + { "Install OrionOS", "alacritty -e bash -c 'sudo orioninstall-gui 2>/dev/null || sudo orioninstall; exec bash' &" }, { "──────────────────", NULL }, { "Restart OrionWM", "pkill orionwm; sleep 0.2; orionwm &" }, { "Quit OrionOS", "pkill orionwm" },