How to run Windows 10 Server ARM64

Discuss Windows Vista/Server 2008 to Windows 10.
BetaNewbie
Posts: 215
Joined: Sun Jul 21, 2013 7:38 am

Re: How to run Windows 10 Server ARM64

Post by BetaNewbie »

it seems that I can get a USB Mass Storage Device to work, hmm...

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -M virt -bios QEMU_EFI.fd -device VGA -device ich9-usb-ehci1 -device usb-kbd -device usb-tablet -hda d:\hdd.vhd -drive if=none,id=usbstick,file=d:\usb.vhd -device usb-storage,drive=usbstick -rtc base="2016-04-15",clock=vm

BTW, you will need a USBMassStorageDxe driver in order to access the drive in EFI....
And hdd.vhd is for the driver only, since you need to put the file somewhere where EFI can access...

the driver: http://pan.baidu.com/s/1qXQYivy
Extracted from some other ARM EFI firmware, use "load filename.efi" to load it, then map -r to refresh the device map so that you can access the USB flash drive.
ARM64 is tested, the ARM one is not.

Trying to get a Windows to Go installation working...

EDIT: a quick update...
Image

Windows Server for ARM64.... interesting
Image

EULA ID:
Image

ARM64 emulation + Windows to Go on a USB 2.0 flash drive = HOURS of installation... :?
Tried those XHCI stuff that QEMU offers, and Windows does not like it (INACCESSABLE_BOOT_DEVICE).

The longest Login I have ever seen...
Image

And yes, it worked.
Image
Image

ovctvct
Posts: 1058
Joined: Fri Apr 25, 2014 6:19 pm

Re: How to run Windows 10 Server ARM64

Post by ovctvct »

Driver reupload possible?

DiaoSlime
Posts: 117
Joined: Tue Apr 21, 2015 2:50 pm
Location: Hong Kong

Re: How to run Windows 10 Server ARM64

Post by DiaoSlime »

BetaNewbie wrote:it seems that I can get a USB Mass Storage Device to work, hmm...

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -M virt -bios QEMU_EFI.fd -device VGA -device ich9-usb-ehci1 -device usb-kbd -device usb-tablet -hda d:\hdd.vhd -drive if=none,id=usbstick,file=d:\usb.vhd -device usb-storage,drive=usbstick -rtc base="2016-04-15",clock=vm

BTW, you will need a USBMassStorageDxe driver in order to access the drive in EFI....
And hdd.vhd is for the driver only, since you need to put the file somewhere where EFI can access...

the driver: http://pan.baidu.com/s/1qXQYivy
Extracted from some other ARM EFI firmware, use "load filename.efi" to load it, then map -r to refresh the device map so that you can access the USB flash drive.
ARM64 is tested, the ARM one is not.

Trying to get a Windows to Go installation working...

EDIT: a quick update...
Image

Windows Server for ARM64.... interesting
Image

EULA ID:
Image

ARM64 emulation + Windows to Go on a USB 2.0 flash drive = HOURS of installation... :?
Tried those XHCI stuff that QEMU offers, and Windows does not like it (INACCESSABLE_BOOT_DEVICE).

The longest Login I have ever seen...
Image

And yes, it worked.
Image
Image
Nice work.but why did MS create a server build that runs in arm?

我從使用 Tapatalk 的 LG-D722 發送

Wheatley
User avatar
Donator
Posts: 1839
Joined: Thu Oct 25, 2012 8:19 pm
Location: shell32.dll

Re: How to run Windows 10 Server ARM64

Post by Wheatley »

DiaoSlime wrote: Nice work.but why did MS create a server build that runs in arm?

我從使用 Tapatalk 的 LG-D722 發送
So they could have Windows Server running on ARM64 server hardware. Isn't that fairly obvious?
Windows Defender for great justice! Bugs are an international trading company. I need to defeat the anti-debugging and obfuscation methods. It wasn't for Intel's absurd ability to load in ie6. Why even waste time with people in an envelope?

DiaoSlime
Posts: 117
Joined: Tue Apr 21, 2015 2:50 pm
Location: Hong Kong

Re: How to run Windows 10 Server ARM64

Post by DiaoSlime »

Wheatley wrote:
DiaoSlime wrote: Nice work.but why did MS create a server build that runs in arm?

我從使用 Tapatalk 的 LG-D722 發送
So they could have Windows Server running on ARM64 server hardware. Isn't that fairly obvious?
Servers using ARM?Any server?

我從使用 Tapatalk 的 LG-D722 發送

louisw3
User avatar
Posts: 1490
Joined: Wed Dec 31, 2008 7:29 pm
Location: SE Asia

Re: How to run Windows 10 Server ARM64

Post by louisw3 »

DiaoSlime wrote: Nice work.but why did MS create a server build that runs in arm?
power consumption and size. SOC's are tiny. In a 1u formfactor you could get quite a few 'server' boards in there. Not to mention the possibility of putting servers into all kinds of devices, and or applications.

Apple has been rumoured for quite some time about shifting away from x86 to arm on the desktop, and while NT has had it's fill of MIPS/PowerPC/Dec Alpha/Itanium why not ARM?

Compared to the half hearted attempt with RT, at least they are finally being serious by offering a proper workstation & server offering. It'll just encourage VARS/ISV's to compile for arm.
"Those who don't understand UNIX are condemned to reinvent it, poorly." – Henry Spencer

BoyLoveGirl
Donator
Posts: 131
Joined: Sat Mar 16, 2013 3:08 pm
Location: Hong Kong, Republic of China

Re: How to run Windows 10 Server ARM64

Post by BoyLoveGirl »

Maybe some problems should blame the hardware. I tried some cpus to run Windows RT, and all failed with a BSOD of 0x000000C4

Image


BTW: Only 14282 can boot. :cry:
Image

DiaoSlime
Posts: 117
Joined: Tue Apr 21, 2015 2:50 pm
Location: Hong Kong

Re: How to run Windows 10 Server ARM64

Post by DiaoSlime »

How you set windows to go?

AS95678
Posts: 115
Joined: Sat Jan 16, 2016 5:06 pm

Re: How to run Windows 10 Server ARM64

Post by AS95678 »

Why hasn't anyone tried to run it on a Surface 2 RT

AlphaBeta
User avatar
Donator
Posts: 2437
Joined: Sun Aug 12, 2012 4:33 pm
Location: Czechia

Re: How to run Windows 10 Server ARM64

Post by AlphaBeta »

AS95678 wrote:Why hasn't anyone tried to run it on a Surface 2 RT
Because the Surface RTs aren't ARM64.
AlphaBeta, stop brainwashing me immediately!

Image

whistler2250
User avatar
Posts: 214
Joined: Wed Aug 09, 2017 1:08 am

Re: How to run Windows 10 Server ARM64

Post by whistler2250 »

Can't seem to get past here:
Image
Pseudo-localized builds are awesome!

Googulator
Posts: 82
Joined: Thu Oct 12, 2017 3:46 pm

Re: How to run Windows 10 Server ARM64

Post by Googulator »

https://github.com/Googulator/edk2/releases/tag/NonKVM

This is a newer version of the Linaro QEMU UEFI image, in which I restored some features removed for being "incompatible with KVM". As it turns out, these are necessary for booting Windows.

With this version, build 14324 now boots. Still no luck with 14901 or 16299. 14901 and newer builds require qemu v2.11-rc1 or later to boot.
Last edited by Googulator on Fri Nov 17, 2017 5:23 pm, edited 1 time in total.

Googulator
Posts: 82
Joined: Thu Oct 12, 2017 3:46 pm

Re: How to run Windows 10 Server ARM64

Post by Googulator »

Instructions for running either 14282 or 14324 under qemu:

1. Create a 50GB VHDX using Disk Manager.
2. Open an elevated cmd or PowerShell, and launch diskpart.
3. Execute the following diskpart commands:

Code: Select all

list disk
select disk X (X is the numeric ID of the virtual disk from the prevous command)
clean
convert gpt
select partition 1
delete partition override
create partition primary size=500
format quick fs=ntfs label="Recovery"
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
gpt attributes=0x0000000000000001
assign letter="T"
create partition efi size=100
format quick fs=fat32 label="ESP"
assign letter="S"
create partition msr size=128
create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"
exit
3. Mount or extract the install.wim file from the ISO, then from the elevated prompt, run:

Code: Select all

dism /apply-image /imagefile:C:\path\to\install.wim /index:1 /applydir:W:\ /EA
This will extract the wim file to the Windows partition inside the VHDX.
4. Set up the EFI system partition: from elevated prompt, run:

Code: Select all

bcdboot W:\Windows /s S: /f UEFI
5. Open diskpart again, and run:

Code: Select all

select disk X (same X as in previous run)
select partition 1
remove letter=T
select partition 2
remove letter=S
select partition 4
remove letter=W
exit
6. Unmount the VHDX using Disk Manager. It's recommended to make a backup of the VHDX at this point, as qemu has a propensity to crash while Windows is installing drivers on its first boot, which will cause a "Setup was unsuccessful" reboot loop if the image is booted up again. If qemu does crash, simply restore from the backup, and try again - after 1 or 2 tries, it will succeed.
7. Install qemu (e.g. from https://qemu.weilnetz.de/w64/ if you have a Windows host), and download the QEMU_EFI.fd and QEMU_VARS.fd files from my GitHub page. (Linaro 16.02 will work for 14282, but not 14324.)
8. Pad both QEMU_EFI.fd and QEMU_VARS.fd to 64 mebibytes (64*1024*1024 bytes) each, using e.g. a hex editor.
9. Run qemu from command line as follows:

Code: Select all

qemu-system-aarch64 -M virt -m 3072 -device VGA -device ich9-usb-ehci2,id=ehci2 -device ich9-usb-ehci1,id=ehci -device usb-kbd,bus=ehci.0 -device usb-tablet,bus=ehci.0 -cpu cortex-a57 -drive file=C:\path\to\the.vhdx,if=none,id=windows -device usb-storage,bus=ehci2.0,drive=windows -monitor stdio -rtc base="2016-04-20",clock=vm -pflash C:\path\to\QEMU_EFI.fd -pflash C:\path\to\QEMU_VARS.fd
  • Tip: Add -smp=N to the above command line to let qemu use more than one CPU core (set N to the number of cores you want to emulate - recommended no more than your host machine's logical CPU count)
Wait until Windows boots, and walk through the OOBE setup.
10. When prompted to press Ctrl+Alt+Delete, switch to the console where you started qemu from, and issue the following command:

Code: Select all

sendkey ctrl-alt-delete
Log in, and enjoy :)

Note 1: Windows won't be able to recognize the virtual graphics card, and so it will be stuck in whatever mode is selected at boot. This is normally 800x600, which is rather restrictive. To change it, reboot the VM, and at the "Start boot option" countdown, press Esc. The resolution setting is found in the Device Manager submenu. After changing it and saving settings, reboot the VM again for it to take effect.
Note 2: The Start menu is nonfunctional in both builds. However, right-clicking the Start button brings up a working menu that can be used as a substitute.
Last edited by Googulator on Fri Nov 17, 2017 5:27 pm, edited 1 time in total.

Googulator
Posts: 82
Joined: Thu Oct 12, 2017 3:46 pm

Re: How to run Windows 10 Server ARM64

Post by Googulator »

A little teaser...

ImageImage

Edit: Yes! Version 2.11-rc1 of qemu can finally run 14901 and later! The above instructions still apply unchanged.
As a bonus, add "-smp 4" (or more if you have more cores) to the qemu command line to emulate a multi-core CPU. (This feature is not new, but in qemu v2.10, it caused Windows to BSoD on boot.)

Edit 2: Regular AHCI- or NVMe-based installation is also possible if you first extract the ISO contents to a VHD, boot from that, and install into another VHD. Runs much faster than USB.
Command line for NVMe install should be like this (with 4 cores):

Code: Select all

qemu-system-aarch64 -M virt -m 8192 -cpu cortex-a57 -smp 4 -bios QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-kbd -device usb-tablet -drive file=system.vhdx,id=system,if=none -device nvme,drive=system,serial=system-drive file=install.vhdx,id=install,if=none -device usb-storage,drive=install
USB 3.0 xHCI also works.

olssonalf
Posts: 1
Joined: Sat Jun 25, 2016 3:43 pm

Re: How to run Windows 10 Server ARM64

Post by olssonalf »

For some reason I can't seem to get this working - I always get a BSOD with an "KMODE EXCEPTION NOT HANDLED' error. I've tried all the mentioned build numbers here without success, as well as different versions of QEMU on different platforms. I always get the same error.

Any idea what could be going on?

WindowsNeptune
Donator
Posts: 442
Joined: Thu Dec 20, 2012 1:13 pm
Location: Earth

Re: How to run Windows 10 Server ARM64

Post by WindowsNeptune »

olssonalf wrote:For some reason I can't seem to get this working - I always get a BSOD with an "KMODE EXCEPTION NOT HANDLED' error. I've tried all the mentioned build numbers here without success, as well as different versions of QEMU on different platforms. I always get the same error.

Any idea what could be going on?
I have the same problem friend. I tried many tines but nothing helps.

WindowsNeptune
Donator
Posts: 442
Joined: Thu Dec 20, 2012 1:13 pm
Location: Earth

Re: How to run Windows 10 Server ARM64

Post by WindowsNeptune »

Well I've tested all builds (14282 14324 14877 14901 16299)of ARM64 And all of them will show BSOD (KMODE EXCEPTION NOT HANDLED). I don't know why.

seonye
User avatar
Posts: 4
Joined: Sat May 13, 2017 6:31 am

Re: How to run Windows 10 Server ARM64

Post by seonye »

"arm64" requires a processor that is up and running on QEMU is not recommended

Is virtualization going to require a running installation method?
Is there a lower operating system somewhere than Windows?

Googulator
Posts: 82
Joined: Thu Oct 12, 2017 3:46 pm

Re: How to run Windows 10 Server ARM64

Post by Googulator »

I did see KMODE_EXCEPTION_NOT_HANDLED intermittently a few times (never on boot, though), but it seems to work in general.

Host is a Haswell desktop w/ integrated Intel graphics, running Windows 10 1709 x64. I'm using qemu from qemu-w64-setup-20171116.exe, installer SHA-256 DA055E36808EE7473ED3DC73B55000EB332BA86C810AB5316075BCD94A444E4A.

EDIT: I see KMODE_EXCEPTION_NOT_HANDLED when using a debug build of QEMU_UEFI.fd. Only release builds work. The linked build on GitHub is compiled in release mode, so it should work.

WindowsNeptune
Donator
Posts: 442
Joined: Thu Dec 20, 2012 1:13 pm
Location: Earth

Re: How to run Windows 10 Server ARM64

Post by WindowsNeptune »

Googulator wrote:I did see KMODE_EXCEPTION_NOT_HANDLED intermittently a few times (never on boot, though), but it seems to work in general.

Host is a Haswell desktop w/ integrated Intel graphics, running Windows 10 1709 x64. I'm using qemu from qemu-w64-setup-20171116.exe, installer SHA-256 DA055E36808EE7473ED3DC73B55000EB332BA86C810AB5316075BCD94A444E4A.

EDIT: I see KMODE_EXCEPTION_NOT_HANDLED when using a debug build of QEMU_UEFI.fd. Only release builds work. The linked build on GitHub is compiled in release mode, so it should work.
Than you for replying me friend :)
I am using a laptop (Core i7 4710MQ, Intel Graphics and GTX 960M, 16GB DDR3L memory). I downloaded the QEMU_EFI.fd straightly from your link (I didn't find sth about "debug" in your GitHub page, and I didn't use QEMU_EFI.fd compiled by other people). That's strange, my friend also tried, he's using a laptop with Core i7 7700HQ, and he got the same problem as mines, KMODE_EXCEPTION_NOT_HANDLED. Did you update your QEMU_EFI.fd recently? I will try again and see what would happen.

Thank you!

EDIT: Still the same result. :beta:
Last edited by WindowsNeptune on Sun Jan 07, 2018 7:16 am, edited 1 time in total.

BetaNewbie
Posts: 215
Joined: Sun Jul 21, 2013 7:38 am

Re: How to run Windows 10 Server ARM64

Post by BetaNewbie »

Same here...
KMODE_EXCEPTION_NOT_HANDLED on every boot, tried the Windows port at https://qemu.weilnetz.de/w64/qemu-w64-s ... 171116.exe, as well as self-compiled 2.11-rc4 in Linux (in both WSL and native Ubuntu 17.10 amd64), none of those work.
I tried both releases in your github page, same thing though.
My specs: Intel i5 6300HQ, 8GB DDR4 RAM, GTX 950M.

tdybdahl
Posts: 1
Joined: Fri Jan 05, 2018 3:40 pm

Re: How to run Windows 10 Server ARM64

Post by tdybdahl »

Googulator wrote:Edit 2: Regular AHCI- or NVMe-based installation is also possible if you first extract the ISO contents to a VHD, boot from that, and install into another VHD. Runs much faster than USB.
Command line for NVMe install should be like this (with 4 cores):

Code: Select all

qemu-system-aarch64 -M virt -m 8192 -cpu cortex-a57 -smp 4 -bios QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-kbd -device usb-tablet -drive file=system.vhdx,id=system,if=none -device nvme,drive=system,serial=system-drive file=install.vhdx,id=install,if=none -device usb-storage,drive=install
USB 3.0 xHCI also works.
@Googulator, how did you "extract the ISO contents to a VHD"? Your command line contains 2 VHDs (system.vhdx and install.vhdx). Did you just copy Windows ISO file to "system.vhdx" and boot? I tried to create an empty MBR/GPT VHDX, copy ISO content there, but I couldn't boot from such VHDX. Thanks!

BetaNewbie
Posts: 215
Joined: Sun Jul 21, 2013 7:38 am

Re: How to run Windows 10 Server ARM64

Post by BetaNewbie »

tdybdahl wrote:*snip*

@Googulator, how did you "extract the ISO contents to a VHD"? Your command line contains 2 VHDs (system.vhdx and install.vhdx). Did you just copy Windows ISO file to "system.vhdx" and boot? I tried to create an empty MBR/GPT VHDX, copy ISO content there, but I couldn't boot from such VHDX. Thanks!
Copy the content of the ISO to install.vhdx and boot from there.

DiaoSlime
Posts: 117
Joined: Tue Apr 21, 2015 2:50 pm
Location: Hong Kong

Re: How to run Windows 10 Server ARM64

Post by DiaoSlime »

And it seems to be as pro as installing hackintosh :D

LightBulbFun
Posts: 6
Joined: Tue Dec 12, 2017 8:19 pm

Re: How to run Windows 10 Server ARM64

Post by LightBulbFun »

Googulator wrote:
EDIT: I see KMODE_EXCEPTION_NOT_HANDLED when using a debug build of QEMU_UEFI.fd. Only release builds work. The linked build on GitHub is compiled in release mode, so it should work.
I have been poking around with this a bit :) many thanks for the guides BTW :)

and I am too getting the same constant BSODs. I tried the latest EFI firmware from the main linaro branch but I dont get any VGA output sadly. I do see windows trying to boot via the serial console but after "Loading files" i dont know where it goes from there.

are you sure your custom EFI FW is not a debug build? as i noticed with it i get a LOT of output on the serial console from it before it even starts to boot windows... is that normal?

Post Reply