From e9908ef0222f316d756592485d84737a63a95861 Mon Sep 17 00:00:00 2001 From: "Vladyslav M." Date: Fri, 2 Oct 2026 16:36:55 +0300 Subject: [PATCH] fix: update no longer deletes ISOs and other user files The updater mirrored the whole staging directory onto the root of the data partition with `rsync --delete`, excluding only config_priv and tools_priv. Since the staged ISOs/ directory is empty, every image in ISOs/ was removed, along with anything else the user kept on the data partition outside MultiOS-USB/. Mirror only MultiOS-USB/ into MultiOS-USB/ instead, and anchor the excludes so they match just the top-level config_priv and tools_priv. Regression from 532bd52 (first released in v0.14.0). Co-Authored-By: Claude Opus 5.5 --- multios-usb.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/multios-usb.sh b/multios-usb.sh index 7735c89..f6e0c9d 100755 --- a/multios-usb.sh +++ b/multios-usb.sh @@ -327,8 +327,10 @@ if [[ $updateOnly == yes ]]; then mkdir -p "$data_stage" build_data_stage "$data_stage" "no" - # Fully mirror everything EXCEPT config_priv and tools_priv - rsync -rlptD --no-owner --no-group --checksum --delete --exclude='config_priv' --exclude='tools_priv' "$data_stage"/ "${part_data}"/ + # Fully mirror the MultiOS-USB directory EXCEPT config_priv and tools_priv. Only that + # directory is synced - ISOs and any other user files on the data partition are left alone + mkdir -p "${part_data}/ISOs" + rsync -rlptD --no-owner --no-group --checksum --delete --exclude='/config_priv' --exclude='/tools_priv' "$data_stage/MultiOS-USB"/ "${part_data}/MultiOS-USB"/ echo "Updating config_priv (existing user files are preserved, never deleted)..." if [ -d "config_priv" ]; then