因為想在iPad上測試 UTM虛擬機跑Windows 11的效能,所以我有了在電腦先裝好系統,再傳到iPad開機的想法。
為什麼呢?因為iOS版QEMU不確定性太高,且速度太慢,所以用執行起來比較順的電腦版QEMU來跑會比較舒服些。這就是說,先在電腦製作裝好系統的qcow2映像檔,再讓iPad開機。
這完全是有可能的,因為UTM背後是使用QMEU的.qcow2格式儲存,完全能夠在任一電腦上用QEMU開機。
那麼,要編輯UTM的虛擬機組態,有沒有需要在電腦也裝UTM呢?其實沒必要,QEMU是跨平台軟體。再加上UTM只有Mac版,但我不想用Mac,使用Linux足以跑QMEU。
1. 準備電腦上的QEMU#
Linux需要設定虛擬化技術與KVM模組,方能將QEMU效能最大化。參見 Ubuntu安裝Virt Manager
2. 取得UTM的虛擬機檔案#
安裝UTM APP。我需要使用JIT所以用側載IPA的方式安裝。
開啟iOS的UTM APP,建立x86_64架構的Windows虛擬機,開機映像檔選無,CPU型號選qemu64,核心全給滿,RAM 4GB以上,顯示卡選virtio-vga。(為什麼不裝ARM64版的Windows?啊我的電腦就是x86啊!)
在Linux安裝 ifuse,這個程式功能等同iTunes的「APP檔案共享」。將iOS裝置的磁碟掛載到Linux,存取UTM的資料夾:
sudo mkdir /run/media/$USER/com.utmapp.UTM
用tree指令可知,剛剛在iOS裝置建立的.utm檔,其實是一個資料夾,下面有虛擬機的設定檔和虛擬磁碟。等會要取代efivars和qcow2檔案。(順帶一提,Mac版UTM資料路徑位於
/Library/Containers/com.utmapp.UTM/Data/Documents/
)開啟Virt Manager,參考 這篇安裝Windows 11系統。這裡選用Tiny11 x86_64的ISO,不啟用TPM 2.0。
虛擬機開機,在裡面裝完系統更新、 virtio-win驅動、 Windows Activation Scripts啟動金鑰,關機。
Virt Manager建立的qcow2檔案位於
/var/lib/libvirt/images/
,EFI檔案位於/var/lib/libvirt/qemu/nvram/
,把這兩個檔案複製到iOS裝置,取代原有的檔案
sudo cp /var/lib/libvirt/images/Tiny11.qcow2 /run/media/$USER/com.utmapp.UTM/Tiny11.utm/Data/5A8E9202-4AC4-466D-8764-CFF8D14F2D62.qcow2
sudo cp /var/lib/libvirt/qemu/nvram/Tiny11_VARS.fd /run/media/$USER/com.utmapp.UTM/Tiny11.utm/Data/efi_vars.fd
- 取消掛載
sudo fusermount -u /run/media/$USER/com.utmapp.UTM