mirror of
https://github.com/dockur/windows.git
synced 2024-06-03 15:25:21 +02:00
Compare commits
3 Commits
fd1fd1c48f
...
5a000c1f9e
Author | SHA1 | Date | |
---|---|---|---|
|
5a000c1f9e | ||
|
3b7e2373f7 | ||
|
8bbd87df40 |
13
readme.md
13
readme.md
|
@ -291,6 +291,19 @@ docker run -it --rm --name windows -p 8006:8006 --device=/dev/kvm --cap-add NET_
|
|||
|
||||
Please note that in this mode, the container and Windows will each have their own separate IPs. The container will keep the macvlan IP, and Windows will use the DHCP IP.
|
||||
|
||||
* ### How do I add multiple disks?
|
||||
|
||||
To create additional disks, modify your compose file like this:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
DISK2_SIZE: "32G"
|
||||
DISK3_SIZE: "64G"
|
||||
volumes:
|
||||
- /home/example:/storage2
|
||||
- /mnt/data/example:/storage3
|
||||
```
|
||||
|
||||
* ### How do I pass-through a disk?
|
||||
|
||||
It is possible to pass-through disk devices directly by adding them to your compose file in this way:
|
||||
|
|
|
@ -41,14 +41,14 @@ parseVersion() {
|
|||
;;
|
||||
"7" | "7e" | "win7" | "win7e" | "windows7" | "windows 7" )
|
||||
VERSION="win7${PLATFORM,,}"
|
||||
DETECTED="win7${PLATFORM,,}-enterprise"
|
||||
[ -z "$DETECTED" ] && DETECTED="win7${PLATFORM,,}-enterprise"
|
||||
;;
|
||||
"7u" | "win7u" | "windows7u" | "windows 7u" )
|
||||
VERSION="win7${PLATFORM,,}-ultimate"
|
||||
;;
|
||||
"vista" | "winvista" | "windowsvista" | "windows vista" )
|
||||
VERSION="winvista${PLATFORM,,}"
|
||||
DETECTED="winvista${PLATFORM,,}-enterprise"
|
||||
[ -z "$DETECTED" ] && DETECTED="winvista${PLATFORM,,}-enterprise"
|
||||
;;
|
||||
"vistu" | "winvistu" | "windowsvistu" | "windows vistu" )
|
||||
VERSION="winvista${PLATFORM,,}-ultimate"
|
||||
|
@ -76,27 +76,27 @@ parseVersion() {
|
|||
;;
|
||||
"core11" | "core 11" )
|
||||
VERSION="core11"
|
||||
DETECTED="win11${PLATFORM,,}"
|
||||
[ -z "$DETECTED" ] && DETECTED="win11${PLATFORM,,}"
|
||||
;;
|
||||
"tiny11" | "tiny 11" )
|
||||
VERSION="tiny11"
|
||||
DETECTED="win11${PLATFORM,,}"
|
||||
[ -z "$DETECTED" ] && DETECTED="win11${PLATFORM,,}"
|
||||
;;
|
||||
"tiny10" | "tiny 10" )
|
||||
VERSION="tiny10"
|
||||
DETECTED="win10${PLATFORM,,}-ltsc"
|
||||
[ -z "$DETECTED" ] && DETECTED="win10${PLATFORM,,}-ltsc"
|
||||
;;
|
||||
"iot11" | "11iot" | "win11-iot" | "win11${PLATFORM,,}-iot" | "win11${PLATFORM,,}-enterprise-iot-eval" )
|
||||
DETECTED="win11${PLATFORM,,}-iot"
|
||||
VERSION="win11${PLATFORM,,}-enterprise-iot-eval"
|
||||
[ -z "$DETECTED" ] && DETECTED="win11${PLATFORM,,}-iot"
|
||||
;;
|
||||
"iot10" | "10iot" | "win10-iot" | "win10${PLATFORM,,}-iot" | "win10${PLATFORM,,}-enterprise-iot-eval" )
|
||||
DETECTED="win10${PLATFORM,,}-iot"
|
||||
VERSION="win10${PLATFORM,,}-enterprise-iot-eval"
|
||||
[ -z "$DETECTED" ] && DETECTED="win10${PLATFORM,,}-iot"
|
||||
;;
|
||||
"ltsc10" | "10ltsc" | "win10-ltsc" | "win10${PLATFORM,,}-ltsc" | "win10${PLATFORM,,}-enterprise-ltsc-eval" )
|
||||
DETECTED="win10${PLATFORM,,}-ltsc"
|
||||
VERSION="win10${PLATFORM,,}-enterprise-ltsc-eval"
|
||||
[ -z "$DETECTED" ] && DETECTED="win10${PLATFORM,,}-ltsc"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
|
@ -33,8 +33,6 @@ startInstall() {
|
|||
|
||||
html "Starting Windows..."
|
||||
|
||||
[ -z "$MANUAL" ] && MANUAL="N"
|
||||
|
||||
if [ -n "$CUSTOM" ]; then
|
||||
|
||||
ISO="$CUSTOM"
|
||||
|
@ -62,10 +60,13 @@ startInstall() {
|
|||
if [ -f "$ISO" ] && [ -s "$ISO" ]; then
|
||||
|
||||
# Check if the ISO was already processed by our script
|
||||
local magic=""
|
||||
local magic
|
||||
local byte="16"
|
||||
[[ "$MANUAL" == [Yy1]* ]] && byte="17"
|
||||
magic=$(dd if="$ISO" seek=0 bs=1 count=1 status=none | tr -d '\000')
|
||||
magic="$(printf '%s' "$magic" | od -A n -t x1 -v | tr -d ' \n')"
|
||||
[[ "$magic" == "16" ]] && return 1
|
||||
|
||||
[[ "$magic" == "$byte" ]] && return 1
|
||||
|
||||
fi
|
||||
|
||||
|
@ -106,7 +107,9 @@ finishInstall() {
|
|||
|
||||
if [ -w "$iso" ] && [[ "$aborted" != [Yy1]* ]]; then
|
||||
# Mark ISO as prepared via magic byte
|
||||
if ! printf '\x16' | dd of="$iso" bs=1 seek=0 count=1 conv=notrunc status=none; then
|
||||
local byte="16"
|
||||
[[ "$MANUAL" == [Yy1]* ]] && byte="17"
|
||||
if ! printf '%b' "\x$byte" | dd of="$iso" bs=1 seek=0 count=1 conv=notrunc status=none; then
|
||||
error "Failed to set magic byte in ISO file: $iso" && return 1
|
||||
fi
|
||||
fi
|
||||
|
@ -279,7 +282,7 @@ verifyFile() {
|
|||
local check="$4"
|
||||
|
||||
if [ -n "$size" ] && [[ "$total" != "$size" ]] && [[ "$size" != "0" ]]; then
|
||||
warn "The downloaded file has an invalid size: $total bytes, while expected value was: $size bytes. Please report this at $SUPPORT/issues"
|
||||
warn "The downloaded file has an unexpected size: $total bytes, while expected value was: $size bytes. Please report this at $SUPPORT/issues"
|
||||
fi
|
||||
|
||||
local hash=""
|
||||
|
@ -431,10 +434,9 @@ downloadImage() {
|
|||
tried="y"
|
||||
|
||||
if getESD "$TMP/esd" "$version"; then
|
||||
local prev="$ISO"
|
||||
ISO="${ISO%.*}.esd"
|
||||
downloadFile "$ISO" "$ESD" "$ESD_SUM" "$ESD_SIZE" "$desc" && return 0
|
||||
ISO="$prev"
|
||||
ISO="$iso"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
@ -663,41 +665,27 @@ selectVersion() {
|
|||
detectVersion() {
|
||||
|
||||
local xml="$1"
|
||||
local id=""
|
||||
local arch=""
|
||||
local id arch
|
||||
local tag="ARCH"
|
||||
local platform="x64"
|
||||
local compat="$platform"
|
||||
|
||||
arch=$(sed -n "/$tag/{s/.*<$tag>\(.*\)<\/$tag>.*/\1/;p}" <<< "$xml")
|
||||
|
||||
case "${arch,,}" in
|
||||
"0" )
|
||||
platform="x86"
|
||||
if [[ "${PLATFORM,,}" != "x64" ]]; then
|
||||
error "You cannot boot $platform images on a $PLATFORM cpu!" && exit 67
|
||||
fi
|
||||
;;
|
||||
"9" )
|
||||
platform="x64"
|
||||
if [[ "${PLATFORM,,}" != "x64" ]]; then
|
||||
error "You cannot boot $platform images on a $PLATFORM cpu!" && exit 67
|
||||
fi
|
||||
;;
|
||||
"12" )
|
||||
platform="arm64"
|
||||
if [[ "${PLATFORM,,}" != "arm64" ]]; then
|
||||
error "You cannot boot ${platform^^} images on a $PLATFORM cpu!" && exit 67
|
||||
fi
|
||||
;;
|
||||
"0" ) platform="x86"; compat="x64" ;;
|
||||
"9" ) platform="x64"; compat="$platform" ;;
|
||||
"12" )platform="arm64"; compat="$platform" ;;
|
||||
esac
|
||||
|
||||
|
||||
if [[ "${compat,,}" != "${PLATFORM,,}" ]]; then
|
||||
error "You cannot boot ${platform^^} images on a $PLATFORM cpu!"
|
||||
exit 67
|
||||
fi
|
||||
|
||||
id=$(selectVersion "DISPLAYNAME" "$xml" "$platform")
|
||||
[ -n "$id" ] && [[ "${id,,}" != *"unknown"* ]] && echo "$id" && return 0
|
||||
|
||||
id=$(selectVersion "PRODUCTNAME" "$xml" "$platform")
|
||||
[ -n "$id" ] && [[ "${id,,}" != *"unknown"* ]] && echo "$id" && return 0
|
||||
|
||||
id=$(selectVersion "NAME" "$xml" "$platform")
|
||||
[ -z "$id" ] && id=$(selectVersion "PRODUCTNAME" "$xml" "$platform")
|
||||
[ -z "$id" ] && id=$(selectVersion "NAME" "$xml" "$platform")
|
||||
[ -n "$id" ] && [[ "${id,,}" != *"unknown"* ]] && echo "$id" && return 0
|
||||
|
||||
return 0
|
||||
|
@ -711,8 +699,8 @@ detectImage() {
|
|||
|
||||
XML=""
|
||||
|
||||
if [ -z "$DETECTED" ] && [[ "${version,,}" != "http"* ]]; then
|
||||
[ -z "$CUSTOM" ] && DETECTED="$version"
|
||||
if [ -z "$DETECTED" ] && [ -z "$CUSTOM" ]; then
|
||||
[[ "${version,,}" != "http"* ]] && DETECTED="$version"
|
||||
fi
|
||||
|
||||
if [ -n "$DETECTED" ]; then
|
||||
|
|
Loading…
Reference in New Issue
Block a user