How to run Windows 10 Server ARM64
-
BetaNewbie
- Posts: 215
- Joined: Sun Jul 21, 2013 7:38 am
Re: How to run Windows 10 Server ARM64
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...
Windows Server for ARM64.... interesting
EULA ID:
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...
And yes, it worked.
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...
Windows Server for ARM64.... interesting
EULA ID:
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...
And yes, it worked.
Re: How to run Windows 10 Server ARM64
Driver reupload possible?
Re: How to run Windows 10 Server ARM64
Nice work.but why did MS create a server build that runs in arm?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...
Windows Server for ARM64.... interesting
EULA ID:
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...
And yes, it worked.
我從使用 Tapatalk 的 LG-D722 發送
Re: How to run Windows 10 Server ARM64
So they could have Windows Server running on ARM64 server hardware. Isn't that fairly obvious?DiaoSlime wrote: Nice work.but why did MS create a server build that runs in arm?
我從使用 Tapatalk 的 LG-D722 發送
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?
Re: How to run Windows 10 Server ARM64
Servers using ARM?Any server?Wheatley wrote:So they could have Windows Server running on ARM64 server hardware. Isn't that fairly obvious?DiaoSlime wrote: Nice work.but why did MS create a server build that runs in arm?
我從使用 Tapatalk 的 LG-D722 發送
我從使用 Tapatalk 的 LG-D722 發送
Re: How to run Windows 10 Server ARM64
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.DiaoSlime wrote: Nice work.but why did MS create a server build that runs in arm?
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
How you set windows to go?
Re: How to run Windows 10 Server ARM64
Why hasn't anyone tried to run it on a Surface 2 RT
Re: How to run Windows 10 Server ARM64
Because the Surface RTs aren't ARM64.AS95678 wrote:Why hasn't anyone tried to run it on a Surface 2 RT
- whistler2250
- Posts: 214
- Joined: Wed Aug 09, 2017 1:08 am
Re: How to run Windows 10 Server ARM64
Can't seem to get past here:
Pseudo-localized builds are awesome!
-
Googulator
- Posts: 82
- Joined: Thu Oct 12, 2017 3:46 pm
Re: How to run Windows 10 Server ARM64
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.
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.
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
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:
3. Mount or extract the install.wim file from the ISO, then from the elevated prompt, run:
This will extract the wim file to the Windows partition inside the VHDX.
4. Set up the EFI system partition: from elevated prompt, run:
5. Open diskpart again, and run:
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:
10. When prompted to press Ctrl+Alt+Delete, switch to the console where you started qemu from, and issue the following command:
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.
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
Code: Select all
dism /apply-image /imagefile:C:\path\to\install.wim /index:1 /applydir:W:\ /EA
4. Set up the EFI system partition: from elevated prompt, run:
Code: Select all
bcdboot W:\Windows /s S: /f UEFI
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
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)
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
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
A little teaser...
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):
USB 3.0 xHCI also works.
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
Re: How to run Windows 10 Server ARM64
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?
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
I have the same problem friend. I tried many tines but nothing helps.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?
-
WindowsNeptune
- Donator
- Posts: 442
- Joined: Thu Dec 20, 2012 1:13 pm
- Location: Earth
Re: How to run Windows 10 Server ARM64
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.
Re: How to run Windows 10 Server ARM64
"arm64" requires a processor that is up and running on QEMU is not recommended
Is virtualization going to require a running installation method?
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
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.
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
Than you for replying me friendGoogulator 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.
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.
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
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.
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.
Re: How to run Windows 10 Server ARM64
@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!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):USB 3.0 xHCI also works.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
-
BetaNewbie
- Posts: 215
- Joined: Sun Jul 21, 2013 7:38 am
Re: How to run Windows 10 Server ARM64
Copy the content of the ISO to install.vhdx and boot from there.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!
Re: How to run Windows 10 Server ARM64
And it seems to be as pro as installing hackintosh
-
LightBulbFun
- Posts: 6
- Joined: Tue Dec 12, 2017 8:19 pm
Re: How to run Windows 10 Server ARM64
I have been poking around with this a bit many thanks for the guides BTWGoogulator 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.
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?