Linux, 工作, 生活, 家人

ARM, Software

在 ARM64 QEMU System 上安裝 ARM64 Windows 11

English please see : Install ARM64 Windows 11 on ARM64 QEMU System

現在 ARM64 的系統相對成熟了,最近 Windows 11 for ARM64 也可以在系統上安裝,自然也會有人想弄到 QEMU 上去,不過看來看去,大部份都沒有整理完畢的文章

這邊記錄一下需要準備的東西

準備

1) 系統:Ampere Altra CPU
RPI4 or RPI5 這種開發板應該也可以,因為這些板子只有有限的 CPU Power 和記憶體,就沒有安裝 qemu 的必要性,便宜一點的解決方案就是 Apple Mx 系列的 CPU [ref],因為也是 ARM64 ,而且很多人也是買來安裝 Linux

2) ARM64 ISO Image
網路上應該很多,不過如果要相對合法取得 ISO image ,推薦 Windows-11-On-Ampere
這步驟有點複雜,不過重點是用 UUP Dump 抓回 Windows ISO ,然後用 Rufus 燒到 USB Flash ,在燒錄的時候 Rufus 可以解除一些 Windows 11 的限制,像是 TPM Support 等等這些在 ARM64 CPU 還不完全支援的設定

3) Windows Virtio Driver

下載 Windows virtio driver,然後放進去剛剛那一步做到的 USB Disk

Proxmox Windows VirtIO Drivers 這邊有下載點, download the latest stable or  download the most recent ,都可以下載到 VirtIO ISO,下載完將 ISO 解開放到 USB Disk

4) 將 USB Dump 成 Image
Linux user 應該很熟這個步驟

dd if=/dev/sda of=/storage/Win11_ARM64_INSTALL.img

為什麼要這樣做?最大的原因就是 QEMU 內 Windows 現在似乎沒辦法同時設定二個 ISO 設備,我之前這樣裝會卡住。所以就繞了一大串讓它可以裝,還可以吧

5) virt-manager
其他人能找到的範例都是 qemu command ,不過我這次實在是不想打一堆指令,只想點點點,所以這次的範例都是用 virt-manager ,不過我相信背後的思路都是一樣的

New Virtual Machine

Virt Type: KVM
Architecutre: aarch64
Machine Type: virt

下一步,ISO image 選剛剛做好的 Win11_ARM64_INSTALL.img,Choose the operaion system you are installing: 選 Microsoft Windows 11

CPU 和記憶體我用 16 cores 和 16GB,小一點應該也可以,不過我懶得試了

如果空間不夠,Disk Image 建議自己設定,virt-manager 設定會一開始就 allocate 設定的 disk space ,不省空間,Windows 11 最小需求空間是 52G ,可以設 60G 或是更大,看需求
這邊是範例命令,可以預先建好硬碟空間

qemu-img create -f qcow2 MyImage.qcow2 60G

在執行之前選擇 Customize configuration before install,有些東西要修改,記得要先開啟 virt-manager 內的 XML 修改功能,在主程式下的 Edit -> Perferences -> Enable XML editing ,請勾選

在 CPUs 的 XML 這一段,找到 hyperv 這一段,改成如下的設定

    <hyperv mode="custom">
      <relaxed state="off"/>
      <vapic state="off"/>
      <spinlocks state="off"/>
    </hyperv>

在 CPU 數量,要從 sockets 改成 Cores,以下就是 16 Cores 的範例

Add hardware ,加入以下設定
Input -> USB Keyboard
Input -> EvTouch USB Graphics Tablet
Graphics -> Spice server
Video -> Ramfb



Video 選項一定要用 Ramfb ,否則 Graphics 會出不來,qxl or virtio 都不能用,virtio-gpu-pci 沒試過,有人說可以用[ref]
最後是 Storage 增加 USB CDROM device,並且將剛剛的 Win11_ARM64_INSTALL.img 設定上去

在 Boot Options 這邊 enable USB CDROM 1的選項,然後就可以開機了

如果設定正確,那就可以正常開機到這個畫面

如果照著以上步驟卻在安裝過程卡住了,可以試著調整 boot option 切換一下開機的順序
先 disk 後 USB CD ROM .

Install Windows

正常狀況下,Windows 是找不到 disk 的,要選 load driver -> 25982_1000_ARM64_EN-US(C:) -> Virtio-driver -> viostor -> win11 -> ARM64 (註:這部份的標籤和目錄可能因不同的設定而異)

最後一段,NIC driver ,在初次進入 Windows 11 時,要求要連線到網路時,選 Install driver -> 25982_1000_ARM64_EN-US(D:) -> Virtio-driver -> NetKVM-> win11 -> ARM64

這樣就可以完成安裝 Windows 11 了

Happy Playing Windows 11 on ARM64 Qemu

ref.
virtio-win / virtio-win-pkg-scripts

發佈留言