feat: Add Windows NT 4 support (#2049)

This commit is contained in:
Kroese
2026-08-05 05:56:14 +02:00
committed by GitHub
parent 089d9dd98a
commit 9c90ccc636
3 changed files with 16 additions and 13 deletions
+1
View File
@@ -417,6 +417,7 @@ printVersion() {
"win9x"* ) desc="Windows ME" ;; "win9x"* ) desc="Windows ME" ;;
"win98"* ) desc="Windows 98" ;; "win98"* ) desc="Windows 98" ;;
"win95"* ) desc="Windows 95" ;; "win95"* ) desc="Windows 95" ;;
"winnt4"* ) desc="Windows NT 4" ;;
"win2k"* ) desc="Windows 2000" ;; "win2k"* ) desc="Windows 2000" ;;
"winvista"* ) desc="Windows Vista" ;; "winvista"* ) desc="Windows Vista" ;;
"win2019-hv"* ) desc="Hyper-V Server" ;; "win2019-hv"* ) desc="Hyper-V Server" ;;
+8 -8
View File
@@ -1753,13 +1753,6 @@ buildImage() {
error "Failed to locate file \"$ETFS\" in ISO image!" && return 1 error "Failed to locate file \"$ETFS\" in ISO image!" && return 1
fi fi
if [[ "${BOOT_MODE,,}" == "windows_legacy" &&
"${DETECTED,,}" != "win9"* &&
-z "${BOOT_LOAD_SIZE:-}" ]]; then
error "Failed to determine the boot image load size!"
return 1
fi
if ! size=$(du -b --max-depth=0 "$dir" | cut -f1); then if ! size=$(du -b --max-depth=0 "$dir" | cut -f1); then
error "Failed to calculate the size of directory \"$dir\"!" error "Failed to calculate the size of directory \"$dir\"!"
return 1 return 1
@@ -1767,6 +1760,13 @@ buildImage() {
checkFreeSpace "$TMP" "$size" || return 1 checkFreeSpace "$TMP" "$size" || return 1
if [[ "${BOOT_MODE,,}" == "windows_legacy" ]] && [ -z "${BOOT_LOAD_SIZE:-}" ]; then
if [[ "${DETECTED,,}" != "win9"* && "${DETECTED,,}" != "winnt4" ]]; then
error "Failed to determine the boot image load size!"
return 1
fi
fi
/run/progress.sh "$out" "$size" "$msg ([P])..." & /run/progress.sh "$out" "$size" "$msg ([P])..." &
local -a args=( local -a args=(
@@ -1816,7 +1816,7 @@ buildImage() {
"${name_args[@]}" "${name_args[@]}"
) ;; ) ;;
"win9"* ) "win9"* | "winnt4" )
args+=( args+=(
-J -J
+7 -5
View File
@@ -923,8 +923,10 @@ prepareImage() {
desc=$(printVariant "$DETECTED" "$DETECTED") desc=$(printVariant "$DETECTED" "$DETECTED")
# Legacy rebuilt media must retain the source ISO's El Torito boot-load size. # Legacy rebuilt media must retain the source ISO's El Torito boot-load size.
if [[ "${BOOT_MODE,,}" == "windows_legacy" && "${DETECTED,,}" != "win9"* ]]; then if [[ "${BOOT_MODE,,}" == "windows_legacy" ]]; then
getBootLoadSize "$iso" "$dir" "$desc" || return 1 if [[ "${DETECTED,,}" != "win9"* && "${DETECTED,,}" != "winnt4" ]]; then
getBootLoadSize "$iso" "$dir" "$desc" || return 1
fi
fi fi
supportsXML "$DETECTED" || return 0 supportsXML "$DETECTED" || return 0
@@ -1586,7 +1588,7 @@ setMachine() {
case "${id,,}" in case "${id,,}" in
"win9"* ) "win9"* | "winnt4" )
writeState "usb" "N" || return 1 writeState "usb" "N" || return 1
writeState "net" "pcnet" || return 1 writeState "net" "pcnet" || return 1
@@ -1626,7 +1628,7 @@ setMachine() {
case "${id,,}" in case "${id,,}" in
"win9"* | "win2k"* | *"x86"* | "reactos" ) "win9"* | "winnt4" | "win2k"* | *"x86"* | "reactos" )
# Legacy 32-bit Windows may enter an incompatible PAE/DEP path when the # Legacy 32-bit Windows may enter an incompatible PAE/DEP path when the
# NX flag is exposed, causing installation failures or repeated resets. # NX flag is exposed, causing installation failures or repeated resets.
@@ -1637,7 +1639,7 @@ setMachine() {
case "${id,,}" in case "${id,,}" in
"win9"* | "win2k"* | "winxp"* | "win2003"* | \ "win9"* | "winnt4" | "win2k"* | "winxp"* | "win2003"* | \
"winvistax86"* | "win7x86"* | "reactos" ) "winvistax86"* | "win7x86"* | "reactos" )
if isQ35 "$MACHINE"; then if isQ35 "$MACHINE"; then