mirror of
https://github.com/dockur/windows.git
synced 2026-01-13 14:35:27 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff55f843bd | ||
|
|
edb300dfec | ||
|
|
9db3651654 | ||
|
|
0dabce04a6 | ||
|
|
5f4c0938ac | ||
|
|
94a84b0c2d |
@@ -448,7 +448,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>23</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -451,7 +451,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>23</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -61,12 +61,6 @@
|
||||
</DiskConfiguration>
|
||||
<ImageInstall>
|
||||
<OSImage>
|
||||
<InstallFrom>
|
||||
<MetaData wcm:action="add">
|
||||
<Key>/image/index</Key>
|
||||
<Value>2</Value>
|
||||
</MetaData>
|
||||
</InstallFrom>
|
||||
<InstallTo>
|
||||
<DiskID>0</DiskID>
|
||||
<PartitionID>3</PartitionID>
|
||||
@@ -87,7 +81,7 @@
|
||||
<FullName>Docker</FullName>
|
||||
<Organization>Windows for Docker</Organization>
|
||||
<ProductKey>
|
||||
<Key />
|
||||
<Key>CGK42-GYN6Y-VD22B-BX98W-J8JXD</Key>
|
||||
</ProductKey>
|
||||
</UserData>
|
||||
<EnableFirewall>false</EnableFirewall>
|
||||
@@ -457,7 +451,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>23</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -61,12 +61,6 @@
|
||||
</DiskConfiguration>
|
||||
<ImageInstall>
|
||||
<OSImage>
|
||||
<InstallFrom>
|
||||
<MetaData wcm:action="add">
|
||||
<Key>/image/index</Key>
|
||||
<Value>1</Value>
|
||||
</MetaData>
|
||||
</InstallFrom>
|
||||
<InstallTo>
|
||||
<DiskID>0</DiskID>
|
||||
<PartitionID>3</PartitionID>
|
||||
@@ -87,7 +81,7 @@
|
||||
<FullName>Docker</FullName>
|
||||
<Organization>Windows for Docker</Organization>
|
||||
<ProductKey>
|
||||
<Key />
|
||||
<Key>M7XTQ-FN8P6-TTKYV-9D4CC-J462D</Key>
|
||||
</ProductKey>
|
||||
</UserData>
|
||||
<EnableFirewall>false</EnableFirewall>
|
||||
@@ -457,7 +451,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>23</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -451,7 +451,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>23</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -342,7 +342,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>22</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -345,7 +345,7 @@
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
<Order>22</Order>
|
||||
<CommandLine>rd /q c:\Windows.old 2>nul</CommandLine>
|
||||
<CommandLine>cmd /C rd /q C:\Windows.old</CommandLine>
|
||||
<Description>Remove empty Windows.old folder</Description>
|
||||
</SynchronousCommand>
|
||||
<SynchronousCommand wcm:action="add">
|
||||
|
||||
@@ -16,7 +16,6 @@ Windows inside a Docker container.
|
||||
|
||||
## Features ✨
|
||||
|
||||
- Multi-language
|
||||
- ISO downloader
|
||||
- KVM acceleration
|
||||
- Web-based viewer
|
||||
|
||||
@@ -1665,7 +1665,10 @@ prepareInstall() {
|
||||
local arch="$4"
|
||||
local key="$5"
|
||||
local driver="$6"
|
||||
local drivers="$TMP/drivers"
|
||||
local drivers="/run/shm/drivers"
|
||||
|
||||
rm -rf "$drivers"
|
||||
mkdir -p "$drivers"
|
||||
|
||||
ETFS="[BOOT]/Boot-NoEmul.img"
|
||||
|
||||
@@ -1676,8 +1679,6 @@ prepareInstall() {
|
||||
local msg="Adding drivers to image..."
|
||||
info "$msg" && html "$msg"
|
||||
|
||||
mkdir -p "$drivers"
|
||||
|
||||
if ! tar -xf /drivers.txz -C "$drivers" --warning=no-timestamp; then
|
||||
error "Failed to extract drivers!" && return 1
|
||||
fi
|
||||
|
||||
@@ -561,7 +561,7 @@ detectImage() {
|
||||
|
||||
if [[ "${LANGUAGE,,}" != "en" ]] && [[ "${LANGUAGE,,}" != "en-"* ]]; then
|
||||
language=$(getLanguage "$LANGUAGE" "desc")
|
||||
desc=+" ($language)"
|
||||
desc+=" ($language)"
|
||||
fi
|
||||
|
||||
info "Detected: $desc"
|
||||
@@ -712,18 +712,20 @@ addDriver() {
|
||||
addDrivers() {
|
||||
|
||||
local src="$1"
|
||||
local file="$2"
|
||||
local index="$3"
|
||||
local version="$4"
|
||||
local tmp="$2"
|
||||
local file="$3"
|
||||
local index="$4"
|
||||
local version="$5"
|
||||
local drivers="$tmp/drivers"
|
||||
|
||||
rm -rf "$drivers"
|
||||
mkdir -p "$drivers"
|
||||
|
||||
local msg="Adding drivers to image..."
|
||||
info "$msg" && html "$msg"
|
||||
|
||||
local drivers="$TMP/drivers"
|
||||
mkdir -p "$drivers"
|
||||
|
||||
if ! tar -xf /drivers.txz -C "$drivers" --warning=no-timestamp; then
|
||||
error "Failed to extract driver!" && return 1
|
||||
error "Failed to extract drivers from archive!" && return 1
|
||||
fi
|
||||
|
||||
local target="\$WinPEDriver\$"
|
||||
@@ -738,8 +740,8 @@ addDrivers() {
|
||||
addDriver "$version" "$drivers" "$target" "smbus"
|
||||
addDriver "$version" "$drivers" "$target" "qxldod"
|
||||
addDriver "$version" "$drivers" "$target" "viorng"
|
||||
addDriver "$version" "$drivers" "$target" "viomem"
|
||||
addDriver "$version" "$drivers" "$target" "viostor"
|
||||
addDriver "$version" "$drivers" "$target" "viomem"
|
||||
addDriver "$version" "$drivers" "$target" "NetKVM"
|
||||
addDriver "$version" "$drivers" "$target" "Balloon"
|
||||
addDriver "$version" "$drivers" "$target" "vioscsi"
|
||||
@@ -797,6 +799,7 @@ updateImage() {
|
||||
local dir="$1"
|
||||
local asset="$2"
|
||||
local language="$3"
|
||||
local tmp="/run/shm/img"
|
||||
local file="autounattend.xml"
|
||||
local org="${file//.xml/.org}"
|
||||
local dat="${file//.xml/.dat}"
|
||||
@@ -812,6 +815,9 @@ updateImage() {
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -rf "$tmp"
|
||||
mkdir -p "$tmp"
|
||||
|
||||
src=$(find "$dir" -maxdepth 1 -type d -iname sources | head -n 1)
|
||||
|
||||
if [ ! -d "$src" ]; then
|
||||
@@ -832,7 +838,7 @@ updateImage() {
|
||||
index="2"
|
||||
fi
|
||||
|
||||
if ! addDrivers "$src" "$wim" "$index" "$DETECTED"; then
|
||||
if ! addDrivers "$src" "$tmp" "$wim" "$index" "$DETECTED"; then
|
||||
error "Failed to add drivers to image!" && return 1
|
||||
fi
|
||||
|
||||
@@ -840,17 +846,14 @@ updateImage() {
|
||||
error "Failed to add OEM folder to image!" && return 1
|
||||
fi
|
||||
|
||||
if wimlib-imagex extract "$wim" "$index" "/$file" "--dest-dir=$TMP" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex extract "$wim" "$index" "/$dat" "--dest-dir=$TMP" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex extract "$wim" "$index" "/$org" "--dest-dir=$TMP" >/dev/null 2>&1; then
|
||||
if wimlib-imagex extract "$wim" "$index" "/$file" "--dest-dir=$tmp" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex extract "$wim" "$index" "/$dat" "--dest-dir=$tmp" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex extract "$wim" "$index" "/$org" "--dest-dir=$tmp" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex update "$wim" "$index" --command "rename /$file /$org" > /dev/null; then
|
||||
warn "failed to backup original answer file ($file)."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
rm -f "$TMP/$dat"
|
||||
rm -f "$TMP/$org"
|
||||
rm -f "$TMP/$file"
|
||||
fi
|
||||
|
||||
if [[ "$MANUAL" != [Yy1]* ]]; then
|
||||
@@ -858,7 +861,7 @@ updateImage() {
|
||||
xml=$(basename "$asset")
|
||||
info "Adding $xml for automatic installation..."
|
||||
|
||||
local answer="$TMP/$xml"
|
||||
local answer="$tmp/$xml"
|
||||
cp "$asset" "$answer"
|
||||
updateXML "$answer" "$language"
|
||||
|
||||
@@ -869,22 +872,18 @@ updateImage() {
|
||||
wimlib-imagex update "$wim" "$index" --command "add $answer /$dat" > /dev/null || true
|
||||
fi
|
||||
|
||||
rm -f "$answer"
|
||||
|
||||
fi
|
||||
|
||||
if [[ "$MANUAL" == [Yy1]* ]]; then
|
||||
|
||||
wimlib-imagex update "$wim" "$index" --command "delete --force /$file" > /dev/null || true
|
||||
|
||||
if wimlib-imagex extract "$wim" "$index" "/$org" "--dest-dir=$TMP" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex update "$wim" "$index" --command "add $TMP/$org /$file" > /dev/null; then
|
||||
if wimlib-imagex extract "$wim" "$index" "/$org" "--dest-dir=$tmp" >/dev/null 2>&1; then
|
||||
if ! wimlib-imagex update "$wim" "$index" --command "add $tmp/$org /$file" > /dev/null; then
|
||||
warn "failed to restore original answer file ($org)."
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f "$TMP/$org"
|
||||
|
||||
fi
|
||||
|
||||
local find="$file"
|
||||
@@ -899,6 +898,7 @@ updateImage() {
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -rf "$tmp"
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
57
src/mido.sh
57
src/mido.sh
@@ -309,7 +309,7 @@ getWindows() {
|
||||
info "$msg" && html "$msg"
|
||||
|
||||
case "${version,,}" in
|
||||
"win2008r2" | "win81${PLATFORM,,}-enterprise-eval" | "win11${PLATFORM,,}-enterprise-iot-eval" )
|
||||
"win2008r2" | "win81${PLATFORM,,}-enterprise"* | "win11${PLATFORM,,}-enterprise-iot"* | "win11${PLATFORM,,}-enterprise-ltsc"* )
|
||||
if [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-"* ]]; then
|
||||
error "No download in the $language language available for $edition!"
|
||||
MIDO_URL="" && return 1
|
||||
@@ -317,8 +317,8 @@ getWindows() {
|
||||
esac
|
||||
|
||||
case "${version,,}" in
|
||||
"win11${PLATFORM,,}-enterprise-iot-eval" ) ;;
|
||||
"win11${PLATFORM,,}-enterprise-ltsc-eval" ) ;;
|
||||
"win11${PLATFORM,,}-enterprise-iot"* ) ;;
|
||||
"win11${PLATFORM,,}-enterprise-ltsc"* ) ;;
|
||||
* )
|
||||
if [[ "${PLATFORM,,}" != "x64" ]]; then
|
||||
error "No download for the ${PLATFORM^^} platform available for $edition!"
|
||||
@@ -336,15 +336,56 @@ getWindows() {
|
||||
"win2025-eval" | "win2022-eval" | "win2019-eval" | "win2016-eval" | "win2012r2-eval" )
|
||||
download_windows_eval "$version" "$lang" "$edition" && return 0
|
||||
;;
|
||||
"win81${PLATFORM,,}-enterprise-eval" )
|
||||
MIDO_URL="https://download.microsoft.com/download/B/9/9/B999286E-0A47-406D-8B3D-5B5AD7373A4A/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_ENTERPRISE_EVAL_EN-US-IR3_CENA_X64FREE_EN-US_DV9.ISO" && return 0
|
||||
;;
|
||||
"win2008r2" )
|
||||
MIDO_URL="https://download.microsoft.com/download/4/1/D/41DEA7E0-B30D-4012-A1E3-F24DC03BA1BB/7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso" && return 0
|
||||
"win81${PLATFORM,,}-enterprise"* | "win2008r2" )
|
||||
;;
|
||||
* ) error "Invalid VERSION specified, value \"$version\" is not recognized!" ;;
|
||||
esac
|
||||
|
||||
if [[ "${PLATFORM,,}" != "x64" ]]; then
|
||||
MIDO_URL=""
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-"* ]]; then
|
||||
MIDO_URL=""
|
||||
return 1
|
||||
fi
|
||||
|
||||
case "${version,,}" in
|
||||
"win81${PLATFORM,,}-enterprise"* )
|
||||
MIDO_URL="https://download.microsoft.com/download/B/9/9/B999286E-0A47-406D-8B3D-5B5AD7373A4A/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_ENTERPRISE_EVAL_EN-US-IR3_CENA_X64FREE_EN-US_DV9.ISO"
|
||||
return 0
|
||||
;;
|
||||
"win11${PLATFORM,,}-enterprise-iot"* | "win11${PLATFORM,,}-enterprise-ltsc"* )
|
||||
MIDO_URL="https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/26100.1.240331-1435.ge_release_CLIENT_IOT_LTSC_EVAL_x64FRE_en-us.iso"
|
||||
return 0
|
||||
;;
|
||||
"win2025-eval" )
|
||||
MIDO_URL="https://software-static.download.prss.microsoft.com/dbazure/888969d5-f34g-4e03-ac9d-1f9786c66749/26100.1.240331-1435.ge_release_SERVER_EVAL_x64FRE_en-us.iso"
|
||||
return 0
|
||||
;;
|
||||
"win2022-eval" )
|
||||
MIDO_URL="https://software-static.download.prss.microsoft.com/sg/download/888969d5-f34g-4e03-ac9d-1f9786c66749/SERVER_EVAL_x64FRE_en-us.iso"
|
||||
return 0
|
||||
;;
|
||||
"win2019-eval" )
|
||||
MIDO_URL="https://software-download.microsoft.com/download/pr/17763.737.190906-2324.rs5_release_svc_refresh_SERVER_EVAL_x64FRE_en-us_1.iso"
|
||||
return 0
|
||||
;;
|
||||
"win2016-eval" )
|
||||
MIDO_URL="https://software-download.microsoft.com/download/pr/Windows_Server_2016_Datacenter_EVAL_en-us_14393_refresh.ISO"
|
||||
return 0
|
||||
;;
|
||||
"win2012r2-eval" )
|
||||
MIDO_URL="https://download.microsoft.com/download/6/2/A/62A76ABB-9990-4EFC-A4FE-C7D698DAEB96/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_EN-US-IR3_SSS_X64FREE_EN-US_DV9.ISO"
|
||||
return 0
|
||||
;;
|
||||
"win2008r2" )
|
||||
MIDO_URL="https://download.microsoft.com/download/4/1/D/41DEA7E0-B30D-4012-A1E3-F24DC03BA1BB/7601.17514.101119-1850_x64fre_server_eval_en-us-GRMSXEVAL_EN_DVD.iso"
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
MIDO_URL=""
|
||||
return 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user