mirror of
https://github.com/dockur/windows.git
synced 2025-04-30 13:34:31 +01:00
feat: Additional download mirrors (#1212)
This commit is contained in:
parent
366305a4b1
commit
338d857e56
@ -24,7 +24,7 @@ RUN set -eu && \
|
|||||||
COPY --chmod=755 ./src /run/
|
COPY --chmod=755 ./src /run/
|
||||||
COPY --chmod=755 ./assets /run/assets
|
COPY --chmod=755 ./assets /run/assets
|
||||||
|
|
||||||
ADD --chmod=664 https://github.com/qemus/virtiso-whql/releases/download/v1.9.45-0/virtio-win-1.9.45.tar.xz /drivers.txz
|
ADD --chmod=664 https://github.com/qemus/virtiso-whql/releases/download/v1.9.45-0/virtio-win-1.9.45.tar.xz /var/drivers.txz
|
||||||
|
|
||||||
FROM dockurr/windows-arm:${VERSION_ARG} AS build-arm64
|
FROM dockurr/windows-arm:${VERSION_ARG} AS build-arm64
|
||||||
FROM build-${TARGETARCH}
|
FROM build-${TARGETARCH}
|
||||||
|
@ -16,7 +16,7 @@ set -Eeuo pipefail
|
|||||||
: "${USERNAME:=""}"
|
: "${USERNAME:=""}"
|
||||||
: "${PASSWORD:=""}"
|
: "${PASSWORD:=""}"
|
||||||
|
|
||||||
MIRRORS=3
|
MIRRORS=4
|
||||||
|
|
||||||
parseVersion() {
|
parseVersion() {
|
||||||
|
|
||||||
@ -1050,6 +1050,49 @@ getLink2() {
|
|||||||
|
|
||||||
getLink3() {
|
getLink3() {
|
||||||
|
|
||||||
|
local id="$1"
|
||||||
|
local lang="$2"
|
||||||
|
local ret="$3"
|
||||||
|
local url=""
|
||||||
|
local sum=""
|
||||||
|
local size=""
|
||||||
|
local host="https://nixsys.com/drivers"
|
||||||
|
|
||||||
|
[[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-us" ]] && return 0
|
||||||
|
|
||||||
|
case "${id,,}" in
|
||||||
|
"win7x64" | "win7x64-ultimate" )
|
||||||
|
size=3319478272
|
||||||
|
sum="3286963e1476082ba882a5058c205c264772bead9e99e15cd1cb255f04b72900"
|
||||||
|
url="WINDOWS764_EN_DVD.iso"
|
||||||
|
;;
|
||||||
|
"win7x86" | "win7x86-ultimate" )
|
||||||
|
size=2564784128
|
||||||
|
sum="bd4c03c917d00a40222d92a6fab04981a7bd46140bda1888eb961a322e3c5d89"
|
||||||
|
url="WINDOWS732_EN_DVD.iso"
|
||||||
|
;;
|
||||||
|
"winxpx86" )
|
||||||
|
size=618065920
|
||||||
|
sum="8177d0137dfe4e8296a85793f140806c9250a5992c8e0e50158c742767ad1182"
|
||||||
|
url="WinXPsp3.iso"
|
||||||
|
;;
|
||||||
|
"win2kx86" )
|
||||||
|
size=387424256
|
||||||
|
sum="08b11c3897eb38d1e6566a17cec5cdf2b3c620444e160e3db200a7e223aabbd8"
|
||||||
|
url="Windows_2000_SP4.iso"
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "${ret,,}" in
|
||||||
|
"sum" ) echo "$sum" ;;
|
||||||
|
"size" ) echo "$size" ;;
|
||||||
|
*) [ -n "$url" ] && echo "$host/$url";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
getLink4() {
|
||||||
|
|
||||||
local id="$1"
|
local id="$1"
|
||||||
local lang="$2"
|
local lang="$2"
|
||||||
local ret="$3"
|
local ret="$3"
|
||||||
@ -1251,6 +1294,7 @@ addFolder() {
|
|||||||
|
|
||||||
prepareInstall() {
|
prepareInstall() {
|
||||||
|
|
||||||
|
local pid=""
|
||||||
local dir="$2"
|
local dir="$2"
|
||||||
local desc="$3"
|
local desc="$3"
|
||||||
local driver="$4"
|
local driver="$4"
|
||||||
@ -1278,7 +1322,7 @@ prepareInstall() {
|
|||||||
rm -rf "$drivers"
|
rm -rf "$drivers"
|
||||||
mkdir -p "$drivers"
|
mkdir -p "$drivers"
|
||||||
|
|
||||||
if ! bsdtar -xf /drivers.txz -C "$drivers"; then
|
if ! bsdtar -xf /var/drivers.txz -C "$drivers"; then
|
||||||
error "Failed to extract drivers!" && return 1
|
error "Failed to extract drivers!" && return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1337,27 +1381,32 @@ prepareInstall() {
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local pid file setup
|
local setup
|
||||||
setup=$(find "$target" -maxdepth 1 -type f -iname setupp.ini -print -quit)
|
setup=$(find "$target" -maxdepth 1 -type f -iname setupp.ini -print -quit)
|
||||||
|
|
||||||
if [ -n "$setup" ]; then
|
if [ -n "$setup" ]; then
|
||||||
|
|
||||||
pid=$(<"$setup")
|
pid=$(<"$setup")
|
||||||
|
pid="${pid%$'\r'}"
|
||||||
|
|
||||||
|
case "$pid" in
|
||||||
|
*"000" | *"270" | *"OEM" ) ;;
|
||||||
|
* ) warn "unknown PID found in image: \"${pid:(-3)}\"" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
if [[ "$driver" == "2k" ]]; then
|
if [[ "$driver" == "2k" ]]; then
|
||||||
|
|
||||||
echo "${pid:0:$((${#pid})) - 4}270" > "$setup"
|
echo "${pid:0:$((${#pid})) - 3}270" > "$setup"
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
pid="${pid:(-4)}"
|
if [[ "$pid" != *"270" ]]; then
|
||||||
|
echo "${pid:0:$((${#pid})) - 3}000" > "$setup"
|
||||||
if [[ "${pid:0:3}" == "270" ]]; then
|
else
|
||||||
warn "this version of $desc requires a volume license key (VLK), it will ask for one during installation."
|
warn "this version of $desc requires a volume license key (VLK), it will ask for one during installation."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$dir/\$OEM\$"
|
mkdir -p "$dir/\$OEM\$"
|
||||||
@ -1388,36 +1437,34 @@ prepareInstall() {
|
|||||||
local ip="20.20.20.1"
|
local ip="20.20.20.1"
|
||||||
[ -n "${VM_NET_IP:-}" ] && ip="${VM_NET_IP%.*}.1"
|
[ -n "${VM_NET_IP:-}" ] && ip="${VM_NET_IP%.*}.1"
|
||||||
|
|
||||||
|
if [ -z "$KEY" ] && [[ "$pid" != *"270" ]]; then
|
||||||
|
|
||||||
# These are not pirated keys, they come from the official MS documentation.
|
# These are not pirated keys, they come from the official MS documentation.
|
||||||
case "${driver,,}" in
|
case "${driver,,}" in
|
||||||
"xp" )
|
"xp" )
|
||||||
|
|
||||||
if [[ "${arch,,}" == "x86" ]]; then
|
if [[ "${arch,,}" == "x86" ]]; then
|
||||||
# Windows XP Professional x86 generic key (no activation, trial-only)
|
# Windows XP Professional x86 generic key (no activation, trial-only)
|
||||||
[ -z "$KEY" ] && KEY="DR8GV-C8V6J-BYXHG-7PYJR-DB66Y"
|
KEY="DR8GV-C8V6J-BYXHG-7PYJR-DB66Y"
|
||||||
else
|
else
|
||||||
# Windows XP Professional x64 generic key (no activation, trial-only)
|
# Windows XP Professional x64 generic key (no activation, trial-only)
|
||||||
[ -z "$KEY" ] && KEY="B2RBK-7KPT9-4JP6X-QQFWM-PJD6G"
|
KEY="B2RBK-7KPT9-4JP6X-QQFWM-PJD6G"
|
||||||
fi ;;
|
fi ;;
|
||||||
|
|
||||||
"2k3" )
|
"2k3" )
|
||||||
|
|
||||||
if [[ "${arch,,}" == "x86" ]]; then
|
if [[ "${arch,,}" == "x86" ]]; then
|
||||||
# Windows Server 2003 Standard x86 generic key (no activation, trial-only)
|
# Windows Server 2003 Standard x86 generic key (no activation, trial-only)
|
||||||
[ -z "$KEY" ] && KEY="QKDCQ-TP2JM-G4MDG-VR6F2-P9C48"
|
KEY="QKDCQ-TP2JM-G4MDG-VR6F2-P9C48"
|
||||||
else
|
else
|
||||||
# Windows Server 2003 Standard x64 generic key (no activation, trial-only)
|
# Windows Server 2003 Standard x64 generic key (no activation, trial-only)
|
||||||
[ -z "$KEY" ] && KEY="P4WJG-WK3W7-3HM8W-RWHCK-8JTRY"
|
KEY="P4WJG-WK3W7-3HM8W-RWHCK-8JTRY"
|
||||||
fi ;;
|
fi ;;
|
||||||
|
|
||||||
"2k" )
|
|
||||||
|
|
||||||
KEY="" ;;
|
|
||||||
|
|
||||||
* ) error "Unknown version: \"$driver\"" && return 1 ;;
|
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
[ -n "$KEY" ] && KEY="ProductID=$KEY"
|
[ -n "$KEY" ] && KEY="ProductID=$KEY"
|
||||||
|
|
||||||
find "$target" -maxdepth 1 -type f -iname winnt.sif -exec rm {} \;
|
find "$target" -maxdepth 1 -type f -iname winnt.sif -exec rm {} \;
|
||||||
|
@ -834,7 +834,7 @@ addDrivers() {
|
|||||||
warn "Windows version unknown, falling back to Windows 11 drivers..."
|
warn "Windows version unknown, falling back to Windows 11 drivers..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! bsdtar -xf /drivers.txz -C "$drivers"; then
|
if ! bsdtar -xf /var/drivers.txz -C "$drivers"; then
|
||||||
error "Failed to extract drivers from archive!" && return 1
|
error "Failed to extract drivers from archive!" && return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user