Windows上使用QEMU創建銀河麒麟ARM64虛擬機完全手冊
“好記性不如爛筆頭。” —— 張溥
0x00 大綱
0x01 前言
最近某個特殊的項目需要用到銀河麒麟系統,物理機是arm64架構的,由于架構不同,沒辦法在x86機器上使用 VMware 和 VirtualBox 等軟件直接創建虛擬機,條件有限,只能借助支持多種架構的QEMU,期間踩坑無數,特寫本文以記錄。真正的手把手,我的手都快握到你的鼠標上了。
0x02 物料準備
操作系統鏡像:Kylin-Desktop-V10-SP1-General-Release-2203-ARM64.iso(2107版本也可以,區別不大)
QEMU安裝包:QEMU Binaries for Windows (64 bit) 20221208
ARM架構的BIOS固件:QEMU_EFI.fd
還有100GB左右的磁盤空間,沒有的話你就使勁挪吧,總要擠出來的。把操作系統ISO鏡像和BIOS固件放到d:\soft目錄下備用。
0x03 安裝 QEMU
這個簡單,雙擊運行,一路Next,英文看不懂也沒關系,因為無關緊要。既然是手把手,就還是發下過程:







0x04 創建虛擬磁盤
在完成QEMU的安裝之后,如果你沒有修改過安裝路徑,那么應該能在C:\Program Files\qemu目錄下找到qemu-img.exe和qemu-system-aarch64.exe(注意是不帶w的那個)這兩個可執行文件,我們后面會用到。如果沒有找到,你可能需要從上一個步驟重新開始。
現在我們在C:\Program Files\qemu目錄下打開命令行窗口,像這樣:

輸入命令:
qemu-img.exe create -f raw d:/qvm/kylin_arm64.img 80G
然后用力按下回車,不出意外的話就要出意外了,如果你看到這樣的提示,請不要驚慌,那是因為你還沒有創建相應的目錄:

輸入命令:
mkdir d:\qvm
按下回車,創建我們需要用到的目錄。接著再繼續執行我們剛才執行失敗的命令:

到這一步,我們創建虛擬磁盤的步驟就完成了。
0x05 安裝麒麟系統
建議:在進行這一步之前,可以關閉各種殺毒軟件全家桶,否則,你真的需要漫長的等待……
還是剛剛的控制臺窗口,輸入命令(太長建議直接復制)并回車:
qemu-system-aarch64.exe -m 4G -cpu cortex-a72 --accel tcg,thread=multi -M virt -bios d:\soft\QEMU_EFI.fd -rtc base=localtime -display sdl -device VGA -device nec-usb-xhci -device usb-tablet -device usb-kbd -drive if=virtio,file=d:\qvm\kylin_arm64.img,id=hd0,format=raw,media=disk -drive if=none,file=d:\soft\Kylin-Desktop-V10-SP1-General-Release-2203-ARM64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom

此時應該能看到系統安裝界面,必須在五秒鐘之內通過鍵盤方向鍵選擇“Install Kylin-Desktop V10-SP1”,按下回車,否則會進入預覽模式,如果你不小心錯過了,請關閉QEMU窗口并重新執行上面的步驟。注意,安裝期間請勿關閉控制臺窗口,否則虛擬機進程也會關閉,安裝界面如下:

之后便是漫長的等待……期間可能會長時間黑屏,不要懷疑自己,請讓它繼續運行:

在經過5~20分鐘左右的等待之后(時間取決于你的機器性能),你會看到下面的界面:

聰明的你應該無師自通一路點擊下一步:



到了這一步,請設置足夠復雜的密碼,并用小本本記住它!否則無法點擊下一步。建議勾選“開機自動登錄”,后面會方便很多:

如果你不是Linux狂熱愛好者或者有手工分區的需求,這一步默認全盤安裝就好了,點擊下一步:

勾選格式化整個磁盤,然后點擊開始安裝(請放心,格式化的是虛擬磁盤,不是你藏了新建文件夾的電腦硬盤),之后便是更加漫長的等待:

在進度條走完之前,可以去打會兒游戲,這個過程大概需要30~60分鐘:

恭喜你,到這一步,系統安裝就完成了。無需點擊“現在重啟”按鈕,直接關閉窗口即可。命令行窗口此時也可以安全關閉了。

0x06 啟動和使用虛擬機
啟動腳本
為了簡化虛擬機的啟動,請把下面的命令(太長建議直接復制)保存為批處理文件start.cmd,并放在d:\qvm目錄下,每次雙擊運行就可以啟動虛擬機哦:
@echo off
"C:\Program Files\qemu\qemu-system-aarch64.exe" -m 8G -cpu cortex-a72 --accel tcg,thread=multi -M virt -bios d:\soft\QEMU_EFI.fd -rtc base=localtime -display sdl -device VGA -device nec-usb-xhci -device usb-tablet -device usb-kbd -drive if=virtio,file=d:\qvm\kylin_arm64.img,id=hd0,format=raw,media=disk -net nic,model=virtio -net user,hostfwd=tcp::2222-:22

雙擊運行我們的啟動腳本,然后你可能會看到防火墻的攔截提示,請勾選并點擊允許訪問:

系統啟動過程中還會有一些初始化工作,請耐心等待。同安裝的時候一樣,在啟動和使用期間,請勿關閉命令行窗口:

調節分辨率
進入系統后,默認分辨率太高,可能會有點卡頓,建議調成1024*768:



啟動SSH服務
桌面右鍵選擇“打開終端”,輸入命令:
sudo systemctl restart ssh


遠程連接
為了防止端口沖突,我們在啟動腳本中將遠程端口配置為2222端口轉發,因此其他人通過SSH遠程連接時需要使用2222端口,如果2222端口也跟其它應用程序沖突了,你可以修改腳本并按照你修改后的端口進行連接:
ssh -p 2222 coder@localhost
文件傳輸
有時候你可能需要在虛擬機和實體機之間傳輸文件,可以使用SCP命令:
scp -P 2222 本地文件路徑 coder@localhost:~
scp -P 2222 -r coder@localhost:~ 本地文件路徑
或者直接使用WinSCP工具:


0x07 其它事項
關于虛擬磁盤格式
你可以看到我在創建虛擬磁盤時使用了raw格式,它會一次性分配所有空間,如果你的存儲足夠,理論上它會有更好的性能,你會看到一些教程使用qcow或者qcow2格式,它的特點是支持壓縮和加密,可以自行衡量和選擇。
關于鼠標問題
有些教程里面啟動腳本加載的是-device usb-mouse而不是-device usb-tablet,雖然也能用,但是-device usb-mouse有個問題就是它的鼠標坐標系基于物理機分辨率計算,當虛擬機分辨率和宿主機不一樣時會發生偏移現象,所以建議使用-device usb-tablet。
關于卡頓的問題
很遺憾,暫時沒有找到解決方案,至少在Windows上,性能非常糟糕。你可以嘗試卸載掉麒麟系統一部分自帶軟件,將桌面背景改為純色 ,這是為數不多的有效手段之一了。

浙公網安備 33010602011771號