Loading src/install.sh +51 −23 Original line number Diff line number Diff line Loading @@ -90,7 +90,8 @@ if [[ "${VERSION,,}" == "tiny10" ]]; then VERSION="https://archive.org/download/tiny-10-23-h2/tiny10%20x64%2023h2.iso" fi CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname custom.iso -printf "%f\n" | head -n 1) CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname windows.iso -printf "%f\n" | head -n 1) [ -z "$CUSTOM" ] && CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname custom.iso -printf "%f\n" | head -n 1) [ -z "$CUSTOM" ] && CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname boot.iso -printf "%f\n" | head -n 1) [ -z "$CUSTOM" ] && CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname custom.img -printf "%f\n" | head -n 1) Loading Loading @@ -256,8 +257,18 @@ finishInstall() { local iso="$1" local aborted="$2" if [ ! -s "$iso" ] || [ ! -f "$iso" ]; then error "Failed to find ISO: $iso" return 1 fi if [ -w "$iso" ] && [[ "$aborted" != [Yy1]* ]]; then # Mark ISO as prepared via magic byte printf '\x16' | dd of="$iso" bs=1 seek=0 count=1 conv=notrunc status=none if ! printf '\x16' | dd of="$iso" bs=1 seek=0 count=1 conv=notrunc status=none; then error "Failed to set magic byte!" return 1 fi fi rm -f "$STORAGE/windows.boot" cp /run/version "$STORAGE/windows.ver" Loading @@ -270,7 +281,10 @@ finishInstall() { # Enable secure boot + TPM on manual installs as Win11 requires if [[ "$MANUAL" == [Yy1]* ]] || [[ "$aborted" == [Yy1]* ]]; then [[ "${DETECTED,,}" == "win11"* ]] && BOOT_MODE="windows_secure" if [[ "${DETECTED,,}" == "win11"* ]]; then BOOT_MODE="windows_secure" echo "$BOOT_MODE" > "$STORAGE/windows.mode" fi fi rm -rf "$TMP" Loading @@ -282,10 +296,17 @@ abortInstall() { local iso="$1" if [[ "$iso" != "$STORAGE/$BASE" ]]; then mv -f "$iso" "$STORAGE/$BASE" if ! mv -f "$iso" "$STORAGE/$BASE"; then error "Failed to move ISO: $iso" exit 69 fi fi if ! finishInstall "$STORAGE/$BASE" "Y"; then error "Failed to finish installation!" exit 69 fi finishInstall "$STORAGE/$BASE" "Y" return 0 } Loading @@ -293,6 +314,8 @@ startInstall() { html "Starting Windows..." [ -z "$MANUAL" ] && MANUAL="N" if [ -f "$STORAGE/$CUSTOM" ]; then EXTERNAL="Y" Loading @@ -319,14 +342,8 @@ startInstall() { BASE=$(echo "$BASE" | sed -e 's/[^A-Za-z0-9._-]/_/g') fi [[ "${BASE,,}" == "boot."* ]] && BASE="windows.iso" [[ "${BASE,,}" == "custom."* ]] && BASE="windows.iso" fi [ -z "$MANUAL" ] && MANUAL="N" if [ -f "$STORAGE/$BASE" ]; then # Check if the ISO was already processed by our script Loading @@ -345,17 +362,13 @@ startInstall() { EXTERNAL="Y" CUSTOM="$BASE" else rm -f "$STORAGE/$BASE" fi if skipInstall; then BASE="" [ ! -f "$STORAGE/$BASE" ] && BASE="" return 1 fi fi rm -rf "$TMP" mkdir -p "$TMP" Loading Loading @@ -1109,6 +1122,14 @@ bootWindows() { MACHINE=$(<"$STORAGE/windows.old") [ -z "$MACHINE" ] && MACHINE="q35" BOOT_MODE="windows_legacy" rm -rf "$TMP" return 0 fi if [ -s "$STORAGE/windows.mode" ] && [ -f "$STORAGE/windows.mode" ]; then BOOT_MODE=$(<"$STORAGE/windows.mode") rm -rf "$TMP" return 0 fi local creation="1.10" Loading @@ -1123,6 +1144,7 @@ bootWindows() { if (( $(echo "$creation < $minimal" | bc -l) )); then if [[ "${BOOT_MODE,,}" == "windows" ]]; then BOOT_MODE="windows_secure" echo "$BOOT_MODE" > "$STORAGE/windows.mode" if [ -f "$STORAGE/windows.rom" ] && [ ! -f "$STORAGE/$BOOT_MODE.rom" ]; then mv "$STORAGE/windows.rom" "$STORAGE/$BOOT_MODE.rom" fi Loading @@ -1133,7 +1155,6 @@ bootWindows() { fi rm -rf "$TMP" return 0 } Loading Loading @@ -1175,14 +1196,21 @@ if ! updateImage "$ISO" "$DIR" "$XML"; then return 0 fi if ! rm -f "$ISO" 2> /dev/null; then BASE="windows.iso" ISO="$STORAGE/$BASE" rm -f "$ISO" fi if ! buildImage "$DIR"; then error "Failed to build image!" exit 65 fi finishInstall "$STORAGE/$BASE" "N" if ! finishInstall "$STORAGE/$BASE" "N"; then error "Failed to finish installation!" exit 69 fi html "Successfully prepared image for installation..." return 0 Loading
src/install.sh +51 −23 Original line number Diff line number Diff line Loading @@ -90,7 +90,8 @@ if [[ "${VERSION,,}" == "tiny10" ]]; then VERSION="https://archive.org/download/tiny-10-23-h2/tiny10%20x64%2023h2.iso" fi CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname custom.iso -printf "%f\n" | head -n 1) CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname windows.iso -printf "%f\n" | head -n 1) [ -z "$CUSTOM" ] && CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname custom.iso -printf "%f\n" | head -n 1) [ -z "$CUSTOM" ] && CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname boot.iso -printf "%f\n" | head -n 1) [ -z "$CUSTOM" ] && CUSTOM=$(find "$STORAGE" -maxdepth 1 -type f -iname custom.img -printf "%f\n" | head -n 1) Loading Loading @@ -256,8 +257,18 @@ finishInstall() { local iso="$1" local aborted="$2" if [ ! -s "$iso" ] || [ ! -f "$iso" ]; then error "Failed to find ISO: $iso" return 1 fi if [ -w "$iso" ] && [[ "$aborted" != [Yy1]* ]]; then # Mark ISO as prepared via magic byte printf '\x16' | dd of="$iso" bs=1 seek=0 count=1 conv=notrunc status=none if ! printf '\x16' | dd of="$iso" bs=1 seek=0 count=1 conv=notrunc status=none; then error "Failed to set magic byte!" return 1 fi fi rm -f "$STORAGE/windows.boot" cp /run/version "$STORAGE/windows.ver" Loading @@ -270,7 +281,10 @@ finishInstall() { # Enable secure boot + TPM on manual installs as Win11 requires if [[ "$MANUAL" == [Yy1]* ]] || [[ "$aborted" == [Yy1]* ]]; then [[ "${DETECTED,,}" == "win11"* ]] && BOOT_MODE="windows_secure" if [[ "${DETECTED,,}" == "win11"* ]]; then BOOT_MODE="windows_secure" echo "$BOOT_MODE" > "$STORAGE/windows.mode" fi fi rm -rf "$TMP" Loading @@ -282,10 +296,17 @@ abortInstall() { local iso="$1" if [[ "$iso" != "$STORAGE/$BASE" ]]; then mv -f "$iso" "$STORAGE/$BASE" if ! mv -f "$iso" "$STORAGE/$BASE"; then error "Failed to move ISO: $iso" exit 69 fi fi if ! finishInstall "$STORAGE/$BASE" "Y"; then error "Failed to finish installation!" exit 69 fi finishInstall "$STORAGE/$BASE" "Y" return 0 } Loading @@ -293,6 +314,8 @@ startInstall() { html "Starting Windows..." [ -z "$MANUAL" ] && MANUAL="N" if [ -f "$STORAGE/$CUSTOM" ]; then EXTERNAL="Y" Loading @@ -319,14 +342,8 @@ startInstall() { BASE=$(echo "$BASE" | sed -e 's/[^A-Za-z0-9._-]/_/g') fi [[ "${BASE,,}" == "boot."* ]] && BASE="windows.iso" [[ "${BASE,,}" == "custom."* ]] && BASE="windows.iso" fi [ -z "$MANUAL" ] && MANUAL="N" if [ -f "$STORAGE/$BASE" ]; then # Check if the ISO was already processed by our script Loading @@ -345,17 +362,13 @@ startInstall() { EXTERNAL="Y" CUSTOM="$BASE" else rm -f "$STORAGE/$BASE" fi if skipInstall; then BASE="" [ ! -f "$STORAGE/$BASE" ] && BASE="" return 1 fi fi rm -rf "$TMP" mkdir -p "$TMP" Loading Loading @@ -1109,6 +1122,14 @@ bootWindows() { MACHINE=$(<"$STORAGE/windows.old") [ -z "$MACHINE" ] && MACHINE="q35" BOOT_MODE="windows_legacy" rm -rf "$TMP" return 0 fi if [ -s "$STORAGE/windows.mode" ] && [ -f "$STORAGE/windows.mode" ]; then BOOT_MODE=$(<"$STORAGE/windows.mode") rm -rf "$TMP" return 0 fi local creation="1.10" Loading @@ -1123,6 +1144,7 @@ bootWindows() { if (( $(echo "$creation < $minimal" | bc -l) )); then if [[ "${BOOT_MODE,,}" == "windows" ]]; then BOOT_MODE="windows_secure" echo "$BOOT_MODE" > "$STORAGE/windows.mode" if [ -f "$STORAGE/windows.rom" ] && [ ! -f "$STORAGE/$BOOT_MODE.rom" ]; then mv "$STORAGE/windows.rom" "$STORAGE/$BOOT_MODE.rom" fi Loading @@ -1133,7 +1155,6 @@ bootWindows() { fi rm -rf "$TMP" return 0 } Loading Loading @@ -1175,14 +1196,21 @@ if ! updateImage "$ISO" "$DIR" "$XML"; then return 0 fi if ! rm -f "$ISO" 2> /dev/null; then BASE="windows.iso" ISO="$STORAGE/$BASE" rm -f "$ISO" fi if ! buildImage "$DIR"; then error "Failed to build image!" exit 65 fi finishInstall "$STORAGE/$BASE" "N" if ! finishInstall "$STORAGE/$BASE" "N"; then error "Failed to finish installation!" exit 69 fi html "Successfully prepared image for installation..." return 0