iOS UTM虛擬機安裝使用教程
時間:2023-07-02 03:57:01 | 來源:網(wǎng)站運營
時間:2023-07-02 03:57:01 來源:網(wǎng)站運營
iOS UTM虛擬機安裝使用教程:
官方文檔內(nèi)容已經(jīng)齊全,此教程停更
官方文檔:https://docs.getutm.app
此文章僅適用于 UTM 3.x 版本,部分內(nèi)容已過時
UTM 介紹
UTM 是一個運行在 iOS11+ 或 macOS11+ 的基于 QEMU 的 iOS/iPadOS/macOS 平臺的虛擬機,支持運行多種架構(gòu)的 Linux、macOS、Windows 等多種操作系統(tǒng)
- 支持模擬30+種處理器,包括x86平臺,ARM平臺,PPC平臺,RISC-V平臺和SPARC平臺
- 得益于SPICE,通過準(zhǔn)虛擬化實現(xiàn)了快速的本地圖形
- 使用qemu TCG實現(xiàn)基于JIT的加速
- 使用最新的應(yīng)用程序接口為iOS11+提供美觀友好的UI
- 直接從設(shè)備上創(chuàng)建、管理和運行虛擬機
UTM有兩個分支:UTM和UTM SE- UTM:即為UTM標(biāo)準(zhǔn)版本,提供iOS/iPadOS及macOS版本。
- UTM SE:即為 UTM Slow Edition(緩慢版),提供 iOS/iPadOS 版本
相比 UTM 標(biāo)準(zhǔn)版本,UTM SE 使用“線程解釋器”(threaded interpreter),性能優(yōu)于“傳統(tǒng)解釋器”(traditional interpreter),比JIT慢,因此,UTM SE 不需要越獄或任何 JIT 實現(xiàn)方法,可以作為常規(guī)應(yīng)用旁加載。
UTM SE 大約比 UTM 標(biāo)準(zhǔn)版本慢了60%以上。UTM SE 可虛擬架構(gòu)不全,包含以下架構(gòu):ARM、PPC、RISC-V 和 i386 以及 X86_64
在iOS平臺的缺點
iPhone/iPad 使用的 CPU 是經(jīng)過修改的 AArch64 架構(gòu)。對于蘋果 A 系列中從 A10 開始的使用 ARMv8.1-A 的 SoC 在
理論上支持原生虛擬化,從 ARM Mac 誕生前的試驗品——A12Z 的 Mac Mini DTK 可以使用虛擬化加速運行虛擬機可以大致驗證這個結(jié)論。
以上部分內(nèi)容來源于維基百科
https://en.wikipedia.org/wiki/Comparison_of_ARMv8-A_processors
https://en.wikipedia.org/wiki/AArch64
但在 iOS SDK 中,Apple 并沒有提供像 macOS 平臺的 hvf 那樣的虛擬化接口,這意味著 UTM 在 iOS 平臺面臨著只能使用軟件加速(TCG)的局面。沒有硬件虛擬化的加速對虛擬機轉(zhuǎn)換效率的影響巨大,僅使用軟件加速的 QEMU 的效率相比起使用 KVM 等虛擬化技術(shù)的 QEMU 有著肉眼可見的差距,
大致就是:一臺接近宿主機性能的現(xiàn)代機器和一臺二十一世紀初的古董級機器的差距。
UTM 標(biāo)準(zhǔn)版本使用 JIT 加速軟件模擬,需要開發(fā)者簽名或像 AltStore 這樣的自簽,而不能使用企業(yè)簽名。
AltStore 最顯著的缺點就是只能生效7天,而付費開發(fā)者更是需要 688CNY,這對正常用戶并不友好。
在 iOS 14.1~14.2 和 iOS 14.3+ 平臺運行 UTM 需要 Xcode 調(diào)試,或是通過 Jitterbug 或 AltJIT 來啟動。其中Xcode 調(diào)試與 AltJIT 都依賴 PC/Mac,使用起來并不方便。
雖然 Jitterbug 不需要持續(xù)連接 PC,但由于其需要通過 PC/Mac 生成配對文件,依然需要 PC/Mac 完成操作,并且因為需要利用 VPN 模擬 Xcode 調(diào)試,所以也是需要開發(fā)者簽名的。
總結(jié)就是:在目前的 iOS 平臺,幾乎沒有任何實用性,費時費精力,吃力不討好。
iOS 平臺安裝要求
UTM 標(biāo)準(zhǔn)版使用 JIT 加速,但 iOS 并非所有版本都允許使用 JIT,這也是 UTM 系統(tǒng)版本的要求的原因。
滿足以下任意要求即可安裝 UTM 標(biāo)準(zhǔn)版。
- 滿足 iOS11+ 且具備越獄環(huán)境
- 系統(tǒng)版本為 iOS11-iOS13.7
- 系統(tǒng)版本為 iOS14.2-iOS14.3
- 可以使用 Xcode 調(diào)試,AltJIT 或使用 Jitterbug 的 iOS11+ 設(shè)備
滿足 iOS11+ 的所以設(shè)備均可運行 UTM SE。
關(guān)于安裝方案的選擇
UTM 標(biāo)準(zhǔn)版本不可以使用企業(yè)簽名,Jitterbug 不可以使用 AltStore 自簽或企業(yè)簽名,使用了錯誤的簽名會導(dǎo)致其不能正常運行。- UTM1.0.0 標(biāo)準(zhǔn)版本:適用于iOS11-iOS13.7或iOS14.2-iOS14.3,由于UTM2.0 之后 QEMU 后端版本為 5.2.0+,對于XP虛擬機并不友好,適合想運行XP的用戶。
- 僅 UTM 標(biāo)準(zhǔn)版本:適用于 iOS14.2-14.3或 iOS11 以上已越獄,一般適合老版本iOS用戶和越獄用戶。
- UTM + Jitterbug:適用于 iOS14+,適合新版本 iOS 用戶。
- UTM SE:適用于 iOS11+,適合不能開發(fā)者簽名或自簽的用戶,但效率很低。
iOS 安裝 UTM / JitterbugLite
安裝 UTM / JitterbugLite 需要注意簽名方式,企業(yè)簽名只適用于 UTM SE。
UTM 標(biāo)準(zhǔn)版本可以進行自簽或付費開發(fā)者簽名,Jitterbug 需要簽名證書的 provisioning profile 中具有
Network Extensions 和 Personal VPN 權(quán)限。UTM可以通過 AltStore 自簽、開發(fā)者簽名、越獄安裝。
下載 UTM.ipa 文件:GitHub下載鏈接
AltStore安裝UTM
使用 AltStore 需要使用 AppleID 登錄,單個 Apple 賬號有簽名數(shù)量限制,每一次簽名生效7天,AltServer 端需要 macOS10.14+、Windows 10及以上或 Linux 設(shè)備。官方鏈接:AltStore
AltServer端
安裝iTunes:iTunes下載鏈接
安裝ICloud:iCloud下載鏈接
注意:iTunes 和 iCloud 均從 Apple 官網(wǎng)下載而非 Microsoft Store。- 下載 AltServer 安裝程序:AltServer Installer下載鏈接
- 解壓 ZIP 壓縮包即可得到 setup.exe 文件,并運行其來進行安裝。
- 安裝后啟動 AltServer,這時 AltServer 不會出現(xiàn)在前臺,而是出現(xiàn)在“通知”和任務(wù)欄中。
- 連接 iPhone/iPad 設(shè)備,并信任該電腦。
- 右鍵 AltServer 在任務(wù)欄中的圖標(biāo),選擇 “Install AltStore”。
- 這時輸入自己的 Apple ID 及密碼,即可等待 AltStore 安裝完成。
下載 AltServer 程序:AltServer下載鏈接
- 解壓 ZIP 文件即可得到 AltStore.app,并將其復(fù)制到應(yīng)用程序文件夾中。
- 啟動 AltSever,這時 AltServer 不會出現(xiàn)在前臺,而是在 Finder 菜單欄中出現(xiàn) AltServer 圖標(biāo)。
- 連接iPhone/iPad設(shè)備,并信任該電腦。
對于 macOS10.14,需要打開 iTunes,為連接的設(shè)備啟用 WIFI 同步。對于 macOS10.15,需要打開 Finder,為連接的設(shè)備啟用“在 WIFI 上顯示此 iPhone/iPad ”。4. 點擊 Finder 菜單欄中的 AltServer 圖標(biāo),點擊 “Install AltStore”,隨后選擇需要安裝 AltStore 的設(shè)備。
5. 輸入 Apple ID 及密碼。
第一次使用 AltServer 需要安裝郵件插件:
- 單擊 AltServer 菜單中的 “Install Mail Plug-in”。
- 輸入 macOS 用戶密碼,并授予 AltServer 安裝插件的權(quán)限。
- 打開“郵件” APP,如果已經(jīng)運行則需要重啟。
- 選擇“首選項”,并點擊“管理插件”。
- 開啟 “AltPlugin.mailbundle” 。
- 點擊應(yīng)用并重啟完成安裝。
AltStore端
使用 AltStore 需要確保與 AltServer 設(shè)備在同一 WIFI 且已連接 AltServer 設(shè)備。AltStore 簽名無法授予 Jitterbug 完整的網(wǎng)絡(luò)權(quán)限,不可以使用 AltStore 簽名 Jitterbug。下載 UTM.ipa 文件:GitHub下載鏈接
- 在 iPhone/iPad 端下載則通過 “分享”,傳輸?shù)?“文件” APP。
- 在 AltServer 端下載則可以通過 AirDrop、iTunes 等方式傳輸?shù)?iPhone/iPad。
在 “My Apps” 中,點擊右上角 “+” 按鈕,隨后選擇 UTM.ipa 文件。
等待安裝完成即可。
如果你擁有 AltStore 測試版,可以通過添加 UTM的 AltStore存儲庫來安裝 UTM。
UTM AltStore 存儲庫:添加AltStore存儲庫
越獄安裝UTM
UTM 的運行需要 AppSync Unified,可以在Karen的源
中安裝。圖形包管理器安裝:
首先安裝 AppSync Unified 確保 UTM 能夠正常運行。
在你的包管理器比如 Cydia/Sileo/Zebra 中添加 Karen源 來安裝 AppSync Unified,隨后添加UTM源來安裝UTM.
- Karen源:https://cydia.akemi.ai/
- UTM源: https://cydia.getutm.app/
命令行dpkg/Filza安裝:
UTM官方源在國內(nèi)速度可能讓人難以接受,可以通過 Github反代 或在 UTM官方QQ交流群 中快速下載。
UTM Deb下載鏈接:Releases · utmapp/UTM
將 UTM.deb “分享“到 Filza。 選擇 UTM.deb,選擇安裝即可。
通過安裝的終端或SSH來運行 dpkg 命令,終端可以選擇安裝 NewTerm。
# dpkg 需要 root 權(quán)限來安裝 deb ,登陸到 root 用戶,默認 root 密碼為 alpine。$ su root
? 通過 dpkg 安裝 UTM。
#dpkg -i /path/to/file
iOS 安裝 Jitterbug
Jitterbug 需要 Network Extensions 和 Personal VPN 權(quán)限。JitterbugLite 無特殊簽名要求,但需要兩臺 iOS14+ 的設(shè)備。可以通過在iSign簽名網(wǎng)這樣的開發(fā)者簽名網(wǎng)站簽名 Jitterbug。
可能還需要單獨與簽名站客服說明需要開啟 Network Extensions 和 Personal VPN 權(quán)限。iOS UTM 標(biāo)準(zhǔn)版啟動方式
上文提到,UTM 標(biāo)準(zhǔn)版需要 JIT 權(quán)限,可以通過 AltJIT 和 Jitterbug 啟動 UTM。
Github 上的 JitStreamer 項目也可以授予 UTM JIT 權(quán)限,由于其提供的服務(wù)器不包含大陸,暫時不做教程。 官方網(wǎng)站:JitStreamer GitHub 項目:Github
Jitterbug 啟動 UTM
Jitterbug 第一次使用需要生成配對文件,此后皆可獨立啟動。
生成配對文件
Jitterbug 通過 Jitterbugpair 生成配對文件。
將設(shè)備連接到 PC 并信任此電腦。
Jitterbugpair 提供 Windows/Linux/macOS版本, 從Github Jitterbug中下載對應(yīng)自己操作系統(tǒng)的 Jitterbugpair。
確保已經(jīng)安裝 iTunes,且能正確識別連接設(shè)備。
將下載的 jitterbugpair-win64.zip 解壓得到 jitterbugpair.exe 和 libwinpthread-1.dll。
打開“CMD”,將 jitterbugpair.exe,拖入 “CMD“ 窗口內(nèi),即可快速輸入其絕對路徑。
回車運行,生成成功則返回 “SUCCESS:wrote to ‘UUID'”。
配對文件將生成在 Windows 用戶目錄,例如 “C:/Users/Administrator/ *.mobiledevicepairing"。
將下載的 jitterbugpair-macos.zip 解壓得到 jitterbugpair。
打開終端,將解壓得到的 jitterbugpair 從 Finder 拖入終端,即可快速輸入其絕對路徑。
回車運行,生成成功則返回 “SUCCESS:wrote to ‘UUID'”。
配對文件 “*.mobiledevicepairing” 將生成在 macOS用戶目錄中。
將下載的 ”jitterbugpair-linux.zip“ 解壓
$ unzip /path/to/jitterbugpair-linux.zip
得到 jitterbugpair。
$ unzip jitterbugpair-linux.zip Archive: jitterbugpair-linux.zip inflating: jitterbugpair
生成配對文件前首先需要安裝 usbmuxd。
#apt install usbmuxd //deb 系發(fā)行版#pacman -Sy usbmuxd //arch 系發(fā)行版#dnf install usbmuxd //多數(shù) rpm 系發(fā)行版
安裝完成后運行 jitterbugpair。
#/path/to/jitterbugpair
完成生成配對文件后,將配對文件傳輸?shù)?iPhone/iPad:
- Windows 可以通過 iTunes、愛思助手傳輸。
- macOS 可以通過隔空投送、iTunes 傳輸。
- Linux 可以通過局域網(wǎng) FTP 傳輸。
導(dǎo)入配對文件
正確在 iPhone/iPad 安裝Jitterbug后,啟動它。
點擊 “配對文件” 選項。
點擊右上角 “添加”,并選擇傳輸?shù)絠Phone/iPad的 “*.mobiledevicepairing"配對文件。
導(dǎo)入開發(fā)者鏡像
開發(fā)者鏡像可以從 Github 或 iSign QQ 用戶群下載。
Github鏈接:Xcode Developer Disk Images
將下載的 ZIP 壓縮文件解壓,得到“DeveloperDiskImage.dmg” 和 “DeveloperDiskImage.dmg.signature”
點擊“支持文件”選項,導(dǎo)入 DeveloperDiskImage.dmg。
啟動UTM
在“啟動器“選項中,選擇自己的設(shè)備。
完成后,在 APP 列表中點擊UTM,即可正確啟動 UTM。
可能會遇到的問題
Jitterbugpair 生成配對文件
1.提示 :“No device found ."
確保滿足以下條件:
- USB 線纜正常。
- Windows 系統(tǒng)下確保正確安裝iTunes,且能夠正確識別 iPhone/iPad 的信息。
- iOS 處于亮屏已解鎖狀態(tài)。
2.提示 “ERROR: You must set up a passcode to enable wireless pairing.”
確保滿足以下條件:
Jitterbug App 運行
1.無法鏈接到被調(diào)試設(shè)備
確保滿足以下條件:
- iOS 設(shè)備已連接 WIFI。
- 設(shè)備名稱不可以有 Emoji、中文表情或其他特殊符號。
- 導(dǎo)入的配對文件是連接該設(shè)備生成的。 表現(xiàn)為配對文件名稱內(nèi)的 UUID 與本機 UUID 保持一致。
- 導(dǎo)入的配對文件未被額外修改,使用iTunes 或 AirDrop 傳輸。
- “設(shè)置” App 中顯示的當(dāng)前勾選的 VPN 配置文件是 Jitterbug ,若 Jitterbug 仍然提示這個問題,請嘗試重新安裝 Jitterbug,并重新生成配對文件。
2.無法導(dǎo)入開發(fā)者鏡像
確保滿足以下條件:
- Developer Image 必須解壓至 "我的iPhone" 或 “我的iPad”路徑下,不可位于其他 App 文件夾內(nèi)或 iCloud 云盤中。
3.提示 “ImageMountFailed” 或“無法掛載鏡像?!?
確保以下事項:
- 導(dǎo)入的開發(fā)者鏡像文件與設(shè)備的 iOS 版本相匹配。
- Jitterbug 自上次使用后需要重新開啟
需要使用多任務(wù)界面手動關(guān)閉 Jitterbug。
AltJIT 啟動 UTM
需要確保 AltServer 及 AltStore 即為 Beta 版,Beta 版并不公開,獲取方式是通過訂閱 AltStore 項目。Patreon 訂閱鏈接:AltStore
iOS12.2~iOS14.5
確保 AltStore端 與AltServer端保持連接狀態(tài)。
點擊 AltServer 在 Windows 狀態(tài)欄或 macOS Finder中的圖標(biāo),點擊 Enable JIT。
在 AltStore 中完成 UTM 簽名后長按 UTM APP,點擊 “Enable JIT”,等待啟動 UTM 即可。
iOS14.6+
由于 AltServer 不包含 iOS14.6+ 的開發(fā)者鏡像,啟動時會出現(xiàn) “The server name of address could not be resolved“ 的報錯。
對于這個問題的解決方法是通過 libimobiledevice 手動掛載開發(fā)者鏡像。
Windows:
- 連接 iPhone/iPad 設(shè)備并確保 iTunes可以正確識別設(shè)備信息。
- 下載 libimobiledevice
libimobiledevice-win32項目提供了 Windows、macOS 版本及 nupkg 包。
項目鏈接:Github/libimobiledevice-win32
- 解壓 ZIP 文件將下載的 ZIP 壓縮文件解壓,得到 “idevice_id.exe”、“ideviceimagemounter.exe”和“idevicedebug.exe”。
- 打開 “CMD”,將 “idevice _id.exe” 拖入 “CMD” 窗口,回車運行,運行成功后會返回連接的 iOS 設(shè)備的UUID。
- 下載開發(fā)者鏡像,Github 下載鏈接:Xcode Developer Disk Images
注意下載對應(yīng) iOS 版本的或接近的開發(fā)者鏡像將下載的 ZIP 壓縮包解壓,得到 DeveloperDiskImage.dmg 和 DeveloperDiskImage.dmg.signature
- 掛載開發(fā)者鏡像 保持 iPhone處于亮屏已解鎖狀態(tài),將 “ideviceimagemounter.exe” 拖入 “CMD” 窗口快速輸入絕對路徑,再將解壓得到的 ”DeveloperDiskImage.dmg“ 拖入 ”CMD“ 窗口,回車運行。 返回 ”Status: Complete“ 即為成功。
- 開啟JIT 保持連接,接下來在 AltServer 或 AltStore,選擇 UTM,點擊 Enable JIT 即可。
JitterbugLite 啟動 UTM
JitterbugLite,即為沒有 VPN 模擬 Xcode 調(diào)試的 Jitterbug 版本。
使用 JitterbugLite 需要一臺輔助設(shè)備,來為需要啟動 UTM 的設(shè)備進行調(diào)試。
JitterbugLite 使用方式與 Jitterbug 基本保持一致,可以按照上文的 “Jitterbug 使用和啟動 UTM“ 進行操作,主要有以下:
- 需要將 JitterbugLite 安裝到輔助設(shè)備上,且兩臺設(shè)備必須在同一局域網(wǎng)內(nèi)。
- 配對文件生成依然是生成需要啟動 UTM 的設(shè)備的。
UTM/UTM SE 使用
這里以 iOS UTM 示例,macOS UTM選項與其保持一致。
虛擬機設(shè)置
這里以 iOS14+ 的新 UI 操作作為教程,UTM2.0-UTM3.1.5+ 保持一致
進入 UTM ,點擊新建虛擬機。
保證虛擬機內(nèi)操作系統(tǒng)的正常運行,一般只需要設(shè)置 “系統(tǒng)”、“驅(qū)動器”、“顯示”、“網(wǎng)絡(luò)”。
“系統(tǒng)” 選項
- “架構(gòu)” 選項:通常默認保持 x86_64即可。
- “系統(tǒng)” 選項:
對于 x86 虛擬機,有 Q35 和 i440FX 可選,i440FX 機型是QEMU一直以來使用的模擬機型,其效率不如 2009 年新生的 Intel Q35 機型,
支持的特性也已經(jīng)十分落后。
以下是對于常見操作系統(tǒng)的選擇:
對于Windows7 及以下操作系統(tǒng)系統(tǒng),使用 i440FX(pc)即可。
對于 Windows7 以上操作系統(tǒng),使用 Q35(q35)即可。
對于運行著 Linux2.6.37 以上內(nèi)核的 Linux 發(fā)行版,使用 Q35(q35)即可。
- “內(nèi)存” 選項:通常設(shè)置為設(shè)備內(nèi)存的 40%,設(shè)置比 40% 更高的值可能會引起內(nèi)存不足導(dǎo)致 UTM 虛擬機運行不穩(wěn)定及崩潰。
- “高級設(shè)置”(UTM2.0-UTM3.1.2):UTM2.2.4 更新后,UTM 正式引入 UEFI 啟動,且默認是開啟的。
大多數(shù)完成安裝后的鏡像,一般都是 MBR+Legacy Boot 引導(dǎo)方式,開啟 UEFI 后會導(dǎo)致虛擬機卡在 UEFI Shell 而無法繼續(xù)。
部分對于 QEMU 制作的鏡像是支持使用 UEFI 引導(dǎo)的,通常作者會單獨說明。
安裝 Windows 8及以上的原版鏡像,可以開啟 UEFI 支持。
UTM 3.1.4 更新將高級設(shè)置轉(zhuǎn)移到了 “QEMU設(shè)置” 選項中。- CPU 型號:通常只需要保持默認 “Default” 即可。
- CPU 核心數(shù):
- 對于 i386/X86_64 虛擬機,通常只需要設(shè)置為 “1” 。由于 i386/X86_64 不支持在 ARM 平臺進行多核虛擬化,設(shè)置更多的核心只會在主機的一個 CPU 核心進行模擬,更多的虛擬核心可能會嚴重影響虛擬機單核性能。
- 對于 ARM32/ARM64 虛擬機,則可以設(shè)置更多核心,開啟強制多核。
- 強制多核(MTTCG):
- 對于 i386/x86_64 虛擬機,開啟該選項可能不會得到實際效果,還可能導(dǎo)致性能發(fā)揮不穩(wěn)定。
- 對于 ARM32/ARM64 虛擬機,設(shè)置多個虛擬核心并開啟該選項可以獲得更好的性能。
?
- “JIT 緩存” 選項:通常這個選項對虛擬機的實際運行性能影響不明顯,默認為虛擬機內(nèi)存的 1/4,一般情況保持默認即可。
“驅(qū)動器” 選項
在 UTM 3.0.0 更新中,UTM 支持使用外置存儲。
開始設(shè)置”驅(qū)動器“,首先需要準(zhǔn)備已安裝完成的虛擬機鏡像或安裝鏡像。
如果沒有任何可用的鏡像,可以通過在 UTM庫 內(nèi)下載已完成安裝的 “UTM 虛擬機文件“,也可以下載這里提供的鏡像庫。
- UTM 庫:UTM GALLERY
- 百度網(wǎng)盤鏡像庫 (來源于 @一份禮物呵呵 ):百度網(wǎng)盤連接,提取碼 :1234
驅(qū)動器的創(chuàng)建可以是導(dǎo)入或創(chuàng)建新虛擬磁盤。
導(dǎo)入鏡像
點擊驅(qū)動器右上角的
選項,接下來在文件 “APP“ 中,選擇導(dǎo)入到鏡像即可。
虛擬機鏡像格式繁多,如果不知道下載的鏡像應(yīng)該如何設(shè)置,可以看下面列出的一些常見鏡像的設(shè)置。
- 驅(qū)動器類型 DISK :qcow2、qed、img、vhd、vhdx、dmg、vmdk以及類似 XBZJ 等自命名鏡像
- 驅(qū)動器類型 CD/DVD :iso、cdr
- 可移動驅(qū)動器:開啟后可以在虛擬機運行時進行熱插拔。
- 格式:即鏡像的對應(yīng)設(shè)備類型,可以按照上面的例子進行設(shè)置。
- 接口:
- 對于 Windows 操作系統(tǒng),通常只需要保持 IDE 即可,確保系統(tǒng)含有相應(yīng)驅(qū)動,可以設(shè)置為 SCSI、Nvme 及 VirtIO。
- 對于 Linux 操作系統(tǒng),如果發(fā)行版使用的內(nèi)核含有 VirtIO 支持,建議使用 VirtIO。
創(chuàng)建新虛擬磁盤
點擊右上角 “+” ,創(chuàng)建新虛擬磁盤。
- 可移動:開啟后可以在虛擬機運行時進行熱插拔。
- 接口:通常保持 IDE ,其他選項需要確保虛擬機操作系統(tǒng)含有相應(yīng)驅(qū)動程序支持。
- 大?。鹤孕邪凑招枨笤O(shè)置。
若新建的虛擬磁盤為 QCOW2 格式,其不會立即占用設(shè)備空間,而是根據(jù)虛擬機內(nèi)使用量緩慢增加占用。
驅(qū)動器順序
驅(qū)動器的順序至關(guān)重要,錯誤的順序會導(dǎo)致 QEMU 無法找到可引導(dǎo)設(shè)備,需要將可引導(dǎo)設(shè)備放置驅(qū)動器第一位。
“QEMU” 選項
- 調(diào)試日志記錄:對于 UTM 出現(xiàn)的 BUG,可以開啟該選項,導(dǎo)出發(fā)至 UTM Github 項目反應(yīng)。
- UEFI 啟動:
UTM2.2.4 更新后,UTM 正式引入 UEFI 啟動,
且默認是開啟的。
大多數(shù)完成安裝后的鏡像,一般都是 MBR+Legacy Boot 引導(dǎo)方式,開啟 UEFI 后會導(dǎo)致虛擬機卡在 UEFI Shell 而無法繼續(xù)。
部分對于 QEMU 制作的鏡像是支持使用 UEFI 引導(dǎo)的,通常作者會單獨說明。
安裝 Windows 8及以上的原版鏡像,可以開啟 UEFI 支持。
對于 UTM3.1.4 之前的版本,UEFI 啟動選項在 “系統(tǒng)>高級設(shè)置” 中。- 使用本地時間作為基礎(chǔ)時鐘:開啟后能夠解決部分 Linux 發(fā)行版在 UTM 運行中的時間錯誤。
- QEMU 屬性:此選項中參數(shù)將添加至 QEMU 啟動命令的 “-machine” 后,用于添加類似 -vga qxl 的啟動參數(shù)。
該選項可能會與 UTM 自動生成的啟動參數(shù)沖突,一般不需要進行更改。- 強制使用 PS/2 控制器:用于解決虛擬機內(nèi)操作系統(tǒng)不能使用默認的 USB 控制器操作,通常用于運行 Windwos XP 及部分精簡 Windows 鏡像。
“顯示” 選項
- 模擬顯卡: QXL 系列:高性能虛擬顯卡,僅支持 2D 加速,對于 Windows 8及以上和 Linux 操作系統(tǒng)可以發(fā)揮其性能。 VirtIO :半虛擬化顯卡,在 UTM 上對于運行 Linux 虛擬機,支持進行 OpenGL 3D 加速,同時 UTM 提供持 Windows 10 及以上操作系統(tǒng)驅(qū)動程序,但并不支持 3D 加速。
UTM VirtIO Windows 下載鏈接:GitHub
- 對于 Windows 8及以上,建議使用 qxl-vga,并安裝驅(qū)動。
- 對于 內(nèi)核中含有 VirtIO 支持的 Linux 發(fā)行版,建議使用 virtio-gpu 系列。
只是維持虛擬機正常運行,只需要保持默認,
對于 virtio-gpu-pci 需要使用 UEFI 啟動才能正確運行。
- 適應(yīng)屏幕:即為拉伸虛擬機顯示畫面覆蓋全屏。
- 視網(wǎng)膜模式:用于虛擬機內(nèi)適應(yīng) iPhone/iPad 高分辨率,該選項需要虛擬機正確安裝 SPICE Tools 才可以生效。
“網(wǎng)絡(luò)” 選項
RTL8139:小螃蟹 100Mbps 網(wǎng)卡。
E1000:Intel 系列 1000Mbps 網(wǎng)卡。
VirtIO:半虛擬化網(wǎng)卡,支持10Gbps以上速率,性能最佳。
- 對于 Windwos 7以上的原版 Windows 系統(tǒng),Intel e1000 虛擬網(wǎng)卡通常是免驅(qū)的,Windows 系統(tǒng)通常使用 RTL8139、E1000 虛擬網(wǎng)卡即可。
- 對于使用帶 VirtIO 支持內(nèi)核的 Linux 發(fā)行版,使用 VirtIO 虛擬網(wǎng)卡即可。
Windwos E1000 網(wǎng)卡驅(qū)動:微云分享,分享碼:b756a7
“共享” 選項
- 剪貼板共享:開啟后宿主機與虛擬機剪貼板內(nèi)容共享。
該選項需要虛擬機內(nèi)正確安裝 SPICE Tools。- 共享目錄:開啟后,宿主機可以選擇 “文件” APP 內(nèi)本機文件夾作為共享目錄,在虛擬機內(nèi)通過 WebDav 的方式共享文件。
該選項需要虛擬機內(nèi)正確安裝 SPICE WebDavd,在虛擬機內(nèi)訪問 “https://localhost:9843" 即可。共享目錄教程:https://zhuanlan.zhihu.com/p/511763274
UTM問題排錯
你的iOS版本不支持無越獄運行UTM
原因: UTM 未擁有 JIT 權(quán)限,通常是未使用 AltJIT、Jitterbug 等工具或未能正確開啟 JIT 權(quán)限。
解決方案:
- 按照本文章 “iOS UTM 標(biāo)準(zhǔn)版啟動”解決該問題。
- 使用更慢的UTM SE。
Cannot find AltServer for JIT
使用 AltStore(1.5b2+)和AltServer(1.5b8+)安裝UTM(2.4.1+)會自動觸發(fā)AltJIT 集成的 AltKit。
原因:AltJIT 未能正確開啟 JIT 權(quán)限或未使用工具授予 UTM JIT 權(quán)限
解決方法:
- 按照本文章 “iOS UTM 標(biāo)準(zhǔn)版啟動”解決該問題。
- 使用更慢的UTM SE。
AltJIT Error:未能完成此操作
原因:
- 使用 AltServer 的 AltJIT 需要訂閱 AltStore 的 Patreon訂閱 :AltStore
- iOS 版本為 iOS14.6+ ,且未按照本文章 “iOS UTM 標(biāo)準(zhǔn)版啟動 > AltJIT 啟動 UTM > iOS14.6+" 中內(nèi)容進行操作。
解決方法:
- 付費訂閱 AltStore 項目。
- 按照本文章 “iOS UTM 標(biāo)準(zhǔn)版啟動 > AltJIT 啟動 UTM > iOS14.6+" 繼續(xù)。
UTM 和 Jitterbug 無法導(dǎo)入文件
Jitterbug僅在嘗試 “iOS UTM 標(biāo)準(zhǔn)版啟動 > Jitterbug 使用和啟動 UTM > 已知問題” 中所以解決方法無用時,在嘗試按以下解決辦法繼續(xù)。這個問題主要表現(xiàn)為在導(dǎo)入時,點擊任何文件都沒有反應(yīng)
原因:
- 簽名后安裝的 ipa 的 AppID 和 provisioning profile 的 AppID 不同導(dǎo)致的,這通常是使用共享證書+通用provisioning profile簽名導(dǎo)致。
- 未能使用正確的簽名方式簽名。
解決方法:
- 聯(lián)系你的共享證書商家提出問題
- UTM(SE)使用免費開發(fā)者自簽
出現(xiàn)UEFI Shell(無法啟動)
原因:使用的鏡像不支持 UEFI 或未能正確設(shè)置驅(qū)動器。
解決方法:
- 使用支持 UEFI 的鏡像。
- UTM3.1.4 以下,在“系統(tǒng) > 高級設(shè)置”關(guān)閉UEFI Boot。
- UTM 3.1.5 以上,在“QEMU”選項中關(guān)閉 UEFI Boot.
- iOS11-13,由于 UEFI Boot 選項僅存在于 iOS14+ 的新 UI 中,需要降級到 UTM 2.1.2 或升級到 UTM 3.1.5。
啟動虛擬機進入UEFI界面(無法啟動)
問題:使用的鏡像不支持 UEFI 或未能正確設(shè)置驅(qū)動器。
解決方法:
- 使用支持 UEFI 的鏡像。
- UTM3.1.4 以下,在“系統(tǒng) > 高級設(shè)置”關(guān)閉UEFI Boot。
- UTM 3.1.5 以上,在“QEMU”選項中關(guān)閉 UEFI Boot.
- iOS11-13,由于 UEFI Boot 選項僅存在于 iOS14+ 的新 UI 中,需要降級到 UTM 2.1.2 或升級到 UTM 3.1.5。
- 按照 “UTM/UTM SE 使用 > ‘驅(qū)動器’ 選項“ 重新設(shè)置驅(qū)動器。
No Bootable device(無法啟動)
原因:驅(qū)動器沒有被正確配置
解決方法:
- 按照 “ UTM/UTM SE使用 > ‘驅(qū)動器’選項 ” 重新設(shè)置驅(qū)動器。
- 確保驅(qū)動器可用且為可引導(dǎo)設(shè)備。
- UEFI 鏡像開啟 UEFI Boot 選項。
虛擬機啟動后鼠標(biāo)鍵盤無法輸入
原因:對于一些老系統(tǒng)或精簡過猛的系統(tǒng),可能會不兼容 UTM 默認使用的 USB 設(shè)備。
解決方案:
- UTM 3.1.4 以下在 "輸入 "選項中開啟 "輸入(PS/2)模式"
- UTM 3.1.4 以上在 “QEMU“ 選項開啟 “強制使用 PS/2 控制器“
Cannot allocate memoy(無法開啟虛擬機)
原因:虛擬機設(shè)置的內(nèi)存過大,超出iOS限制。
解決方法:在“系統(tǒng)"將內(nèi)存減少,設(shè)置為本機內(nèi)存的30%~40%。
Bus 'ide.0' not found
原因:這是UTM2.0.x帶來的新問題,只能使用一個IDE驅(qū)動器。
解決方案:通過升級UTM3.0.0以上或降級UTM1.0解決。
啟動虛擬機黑屏
原因:
- UTM 使用企業(yè)證書簽名導(dǎo)致。
- UTM 沒有 JIT權(quán)限。
- 使用為 p12 格式的開發(fā)者證書和部分“超級簽”平臺,啟動虛擬機會黑屏。
解決方案:
- 使用 AltStore 簽名或在線開發(fā)者簽名。
- 按照本文章 “iOS UTM 標(biāo)準(zhǔn)版啟動 > AltJIT 啟動 UTM > iOS14.6+" 繼續(xù)。
- 使用更慢的 UTM SE。
啟動虛擬機藍屏
原因:對于老 Windows 以及精簡 Windows ,不支持使用 Q35 機型。
解決方法:在 “UTM 設(shè)置 > 系統(tǒng) > 系統(tǒng)” 中將 Q35 更改為 i440FX 。
原因:系統(tǒng)不含 AHCI / Nvme 驅(qū)動,或更換了驅(qū)動器的接口。
解決方法:
- 將驅(qū)動器接口改為 “iDE”。
- 嘗試更換為鏡像原接口。
- 0x00000050 或 Page fault in nonpaged area
原因:通常是由于 UTM2.2.0-UTM3.0的 QEMU6.1.0 后端的一個BUG。
解決方法:
- 在 “UTM 設(shè)置 > 系統(tǒng) > 系統(tǒng)” 中將 Q35 更改為 i440FX。
- 升級至 UTM 3.0.0 及以上或降級至 UTM 2.1.2 及以下。
Linux虛擬機設(shè)備紫屏重啟
原因:由于 iOS15 引入了導(dǎo)致 Kernel Panic 的 Kernel race,
每當(dāng)使用 GL 設(shè)備,則會引起 Kernel Panic,導(dǎo)致設(shè)備出現(xiàn)紫屏現(xiàn)象,通常出現(xiàn)在運行 Linux 虛擬機。解決方案:在 “虛擬機設(shè)置 > ‘顯示’ 選項” 中,切換不使用 GL 加速的虛擬顯卡。
總的來說,UTM 虛擬機在 iOS 平臺依然只是一個玩家們的玩具,“你的下一臺電腦,何必是電腦” 仍未實現(xiàn),我們依然無法在 iOS 平臺進行更好的生產(chǎn)力活動。