虛擬機中安裝 Windows 10 ARM64

環境

操作系統:Ubuntu Kylin 優麒麟 21.04

適用架構:ARM64(鯤鵬 920 x8、飛騰 FT-2000/4)

安裝優麒麟

請參考《優麒麟的安裝(ARM64)》,https://my.oschina.net/chipo/blog/3212449

注意:由於新版 LibVirtD 存儲池的需要,操作系統安裝時請將分區格式化爲 BTRFS。

安裝 QEMU 和 UEFI

sudo apt install qemu qemu-kvm bridge-utils virt-manager libguestfs-tools qemu-system qemu-system-arm qemu-efi qemu-efi-aarch64 qemu-utils libvirt-clients libvirt-daemon-system

如果想了解一些更詳細的信息,請參考《優麒麟中安裝虛擬機(ARM64)》,https://my.oschina.net/chipo/blog/4307152

VHDX 硬盤鏡像

下載 Windows 10 ARM64 的硬盤鏡像。建議使用這個方式安裝。

https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64

轉換格式。

cd ~/Download

qemu-img convert -p -O qcow2 ./Windows10_InsiderPreview_Client_ARM64_en-us_21286.VHDX ./Windows10_InsiderPreview_Client_ARM64_en-us_21286.qcow2

如果覺得轉換後的文件名稱太長,可以在上述命令中自行修改,比如 ./win10arm21286.qcow2

ISO 光盤鏡像

這是個可選步驟。請參考《Windows ARM64 的安裝》https://my.oschina.net/chipo/blog/4816548

虛擬系統管理器

從開始菜單中啓動“虛擬系統管理器”。“文件”、“新建虛擬機”、“導入現有磁盤鏡像”。

“前進”、“瀏覽”

“本地瀏覽”,選擇硬盤鏡像所在的路徑。

“選擇卷”,選擇要安裝的操作系統,輸入“Ubuntu 20.10”,是的,你沒看錯,目前如果選擇“Windows 10”在生成虛擬機時會報錯。

輸入分配給虛擬機的內存容量和 CPU 的核心數。

輸入虛擬機的名稱,比如“Win10”。勾選“在安裝前自定義配置”。

點擊“完成”後,在彈出的新對話框中,選中“磁盤”。由於 virt 機器沒有 SATA 控制器,這裏轉而使用 virtio。通過 usb 存儲可以做到這一點。將“磁盤總線”改爲“USB”。SCSI 可能會導致虛擬機藍屏。

默認情況下,ARM64平臺的虛擬機並未添加顯卡、鍵盤和鼠標。顯卡型號請選擇“Ramfb”。

VGA 設備及其驅動在 KVM 環境下不能用(這也是它被踢出 ArmVirtPkg 的原因),而 virtio-gpu 的 GOP 不被 Windows 支持。

qemu 3.0.0 加入了 ramfb 設備,用一塊內存模擬類 VGA 的 FrameBuffer,這樣 Windows 就有顯示輸出了(當然還是沒有硬件加速)。

如何添加這些虛擬硬件,請參考《優麒麟中安裝虛擬機(ARM64)》,https://my.oschina.net/chipo/blog/4307152

添加完成後,點擊左上角“開始安裝”。

最終的硬件類似下圖所示。

系統啓動後會進行一些安裝步驟,還會重啓,請耐心等待一下。

網卡驅動

下載虛擬網卡的驅動程序。

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

可以將 ISO 文件複製到優盤,然後在虛擬機中添加 USB 設備,連接到這個優盤。複製 ISO 文件後,掛載或解壓縮。

禁用設備驅動程序的簽名強制。

啓動 Windows,然後右鍵單擊“開始”按鈕,然後選擇 Command Prompt (Admin) 也就是“命令提示符(管理員)”。 使用 bcdedit 啓用“測試簽名”的設備驅動程序。

bcdedit.exe -set TESTSIGNING ON

然後重啓 Windows。一旦再次啓動,然後右擊窗口開始按鈕,然後選擇 Device Manager(設備管理器)。 在設備管理器中,選擇 View(視圖)菜單,然後選擇 Devices by Connection(按連接列出的設備)。

在設備樹中導航,選擇 ACPI ARM64-based PC, Microsoft ACPI-Compliant System, PCI Express Root Complex,然後您將在那裏看到一個未知設備。(樹中有許多未知設備,但 PCI Express 根聯合體下的設備是虛擬網卡。) 右鍵單擊未知設備,然後選擇更新驅動程序,然後在我的計算機上瀏覽驅動程序,然後選擇 ISO 鏡像掛載或釋放後所在的文件夾,比如 D:\,勾選“包括子文件夾”。 單擊下一步安裝紅帽 VirtIO 以太網適配器(Red Hat VertIO Ethernet Adapter)。

SCSI 驅動

安裝方法同網卡。只是設備不同而已。SCSI 驅動安裝完畢後,建議關閉操作系統,將 USB 磁盤刪除(不要刪除硬盤鏡像)。添加新存儲,選擇剛纔的硬盤鏡像,模式選擇 SCSI,速度會有大幅提升。

聲卡

對於鯤鵬 920 的桌面用戶來說,可以添加 USB 聲卡,選擇“USB 主機設備”、“Realtek USB Audio”。物理機的音頻輸出改爲顯卡的 HDMI 音頻,這樣虛擬機和物理機就分別有自己的音頻設備了。

遠程桌面

不習慣使用英文界面的,可以自行安裝一下中文語言包,這裏不贅述了。在 Windows 中開啓遠程桌面訪問後,通過 remmina 連接操作系統,使用體驗更好一些。設置完名稱、IP、用戶名、密碼……後,在“高級”標籤頁中,“畫質”選“最好”。“聲音”可以選擇“本地-高質量”。

界面效果。

命令行方式安裝

如果需要以命令行方式安裝,請參考以下步驟。

設置 UEFI 固件

爲非易失性變量存儲準備 pflash,例如屏幕分辨率。

進入 QEMU_EFI.fd 文件所在的目錄,轉換文件。此步驟可選,可以用“-bios /usr/share/qemu-efi/QEMU_EFI.fd”代替“-drive...if=pflash”的行,但在這種情況下,EFI 中的任何更改都不會持久。

cd /usr/share/qemu-efi-aarch64 && \
sudo dd if=/dev/zero of=./qemu_efi.img bs=64M count=1 && \
sudo dd if=/dev/zero of=./qemu_vars.img bs=64M count=1 && \

sudo dd if=./QEMU_EFI.fd of=./qemu_efi.img conv=notrunc && \
sudo dd if=./QEMU_VARS.fd of=./qemu_vars.img conv=notrunc

啓動虛擬機

sudo qemu-system-aarch64 \
-M virt \
-cpu host \
-smp 4 \
-accel kvm \
-m 4096 \

-drive file=/usr/share/qemu-efi-aarch64/qemu_efi.img,format=raw,if=pflash,readonly=on \
-drive file=/usr/share/qemu-efi-aarch64/qemu_vars.img,format=raw,if=pflash \
-device ramfb \
-device qemu-xhci \
-device usb-kbd \
-device usb-tablet \
-drive if=virtio,file=
/home/lio/img/dsk/Windows10_InsiderPreview_Client_ARM64_en-us_21286.qcow2,format=qcow2 \
-netdev user,id=net0 \
-device e1000,netdev=net0

參考文獻

《Windows 10 ARM64 實戰》,https://zhuanlan.zhihu.com/p/32905265

《Windows 10 ARM64 on KVM》,https://zhuanlan.zhihu.com/p/82165601

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章