Skip to content

The Windows11 ARM is stuck at "start boot option" #1548

@LinkMaq

Description

@LinkMaq

Operating system

OS: openEuler 22.03 (LTS-SP4)

Kernel: 5.10.0-281.0.0.184.oe2203sp4.aarch64

root@windows-7dffb8f54c-vc9j5:/# kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used

Description

I am running dockurr/windows on the aarch64 version of Kubernetes, and whether it's Win10 or Win11, it gets stuck at "start boot option." I tried asking ChatGPT, and it told me that the issue might require replacing the standard qemu-efi-aarch64 firmware. How can I replace the default UEFI image in dockurr, or do you have any other suggestions?

Docker compose

spec:
  replicas: 1
  selector:
    matchLabels:
      app: windows
  template:
    metadata:      
      labels:
        app: windows
    spec:
      volumes:
        - name: storage
          persistentVolumeClaim:
            claimName: windows-pvc
        - name: dev-kvm
          hostPath:
            path: /dev/kvm
            type: ''
        - name: dev-tun
          hostPath:
            path: /dev/net/tun
            type: CharDevice
      containers:
        - name: windows
          image: dockurr/windows:5.12
          ports:
            - name: http
              containerPort: 8006
              protocol: TCP
            - name: rdp
              containerPort: 3389
              protocol: TCP
            - name: udp
              containerPort: 3389
              protocol: UDP
            - name: vnc
              containerPort: 5900
              protocol: TCP
          env:
            - name: VERSION
              value: 11e
            - name: DISK_SIZE
              value: 64G
            - name: RAM_SIZE
              value: 32G
            - name: CPU_CORES
              value: '16'
            - name: DEBUG
              value: 'Y'
          resources: {}
          volumeMounts:
            - name: storage
              mountPath: /storage
            - name: dev-kvm
              mountPath: /dev/kvm
            - name: dev-tun
              mountPath: /dev/net/tun
          imagePullPolicy: Always
          securityContext:
            capabilities:
              add:
                - NET_ADMIN
            privileged: true
      restartPolicy: Always
      dnsPolicy: ClusterFirst
      serviceAccountName: default
      serviceAccount: default
      securityContext: {}
      schedulerName: default-scheduler

Docker log

❯ Starting Windows for Docker v5.12...
❯ For support visit https://github.com/dockur/windows-arm
❯ CPU: TaiShan v110 | RAM: 1 TB/2 TB | DISK: 1 TB (ext4) | KERNEL: 5.10.0-281.0.0.184.oe2203sp4.aarch64...

Initializing disks...
Initializing network...
�[1;34m❯ �[1;36mHost: windows-7dffb8f54c-vc9j5  IP: 100.112.199.177  Gateway: 169.254.1.1  Interface: eth0  MAC: 02:0B:B9:D1:CE:7E  MTU: 1480�[0m
�[1;34m❯ �[1;36mNameservers: 10.96.0.10�[0m

�[1;34m❯ �[1;36mLingering interface will be removed...�[0m
Configuring NAT networking...
RTNETLINK answers: File exists
�[1;31m❯ Warning: failed to create bridge. Please add the following setting to your container: --cap-add NET_ADMIN�[0m
Configuring user-mode networking...
Passt arguments:

-4
-a 100.112.199.177
-g 100.112.199.1
-n 255.255.255.0
-t %eth0/3389
-u %eth0/3389
-H Windows
-M 02:69:19:7d:3f:e5
-P /var/run/passt.pid
-l /var/log/passt.log
-q
--runas 0:0

passt 2025_09_19.623dbf6: /usr/bin/passt (278)

Starting dnsmasq daemon...
Dnsmasq arguments:

--interface=lo
--bind-interfaces
--address=/host.lan/100.112.199.1
--resolv-file=/etc/resolv.dnsmasq
--log-facility=/var/log/dnsmasq.log

�[1;34m❯ �[1;36mNotice: because user-mode networking is active, when you need to forward custom ports to Windows, add them to the "USER_PORTS" variable.�[0m
Starting Samba daemon...
Configuring boot...
Configuring KVM...
Checking memory...
Configuring QEMU...
QEMU arguments:

-nodefaults
-cpu host
-smp 16,sockets=1,dies=1,cores=16,threads=1
-m 32G
-machine type=virt,secure=off,gic-version=max,dump-guest-core=off,accel=kvm
-enable-kvm
-smbios type=1,serial=2102314QUA10PC100083
-display vnc=:0,websocket=5700
-device ramfb
-monitor telnet:localhost:7100,server,nowait,nodelay
-daemonize
-D /run/shm/qemu.log
-pidfile /run/shm/qemu.pid
-name windows,process=windows,debug-threads=on
-serial pty
-device qemu-xhci,id=xhci,p2=7,p3=7
-device usb-kbd
-device usb-tablet
-netdev stream,id=hostnet0,server=off,addr.type=unix,addr.path=/tmp/passt_1.socket
-device virtio-net-pci,id=net0,netdev=hostnet0,romfile=,mac=02:0B:B9:D1:CE:7E,host_mtu=1480
-drive file=/storage/win11arm64-enterprise-eval.iso,id=cdrom9,format=raw,cache=unsafe,readonly=on,media=cdrom,if=none
-device usb-storage,drive=cdrom9,bootindex=9,removable=on
-drive file=/storage/data.img,id=data3,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on,if=none
-device virtio-scsi-pci,id=data3b,bus=pcie.0,addr=0xa,iothread=io2
-device scsi-hd,drive=data3,bus=data3b.0,channel=0,scsi-id=0,lun=0,rotation_rate=1,bootindex=3
-object iothread,id=io2
-rtc base=localtime
-drive file=/storage/windows.rom,if=pflash,unit=0,format=raw,readonly=on
-drive file=/storage/windows.vars,if=pflash,unit=1,format=raw
-object rng-random,id=objrng0,filename=/dev/urandom
-device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0 

�[1;34m❯ �[1;36mBooting Windows using QEMU v10.0.3...�[0m
BdsDxe: skipped Boot0002 "UEFI QEMU QEMU HARDDISK " from PciRoot(0x0)/Pci(0xA,0x0)/Scsi(0x0,0x0)
BdsDxe: loading Boot0001 "UEFI QEMU QEMU USB HARDDRIVE 1-0000:00:01.0-3" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x2,0x0)
BdsDxe: starting Boot0001 "UEFI QEMU QEMU USB HARDDRIVE 1-0000:00:01.0-3" from PciRoot(0x0)/Pci(0x1,0x0)/USB(0x2,0x0)
�[1;34m❯ �[1;36mWindows started successfully, visit http://127.0.0.1:8006/ to view the screen...�[0m

Screenshots (optional)

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions