當前位置: 華文問答 > 數位

UTM:開源的多面手 macOS 虛擬機器(更新到 2024.6.6)

2024-06-14數位

(本文禁止一切轉載搬運!)

前言

在曾經的一篇文章中,筆者介紹了支持 arm64 平台的 VMware Fusion 13,這篇文章引起了一部份 Apple 芯片機型的 Mac 使用者的關註。

其實,從買到 Apple 芯片的 Mac 起,筆者一直在努力地尋找代替 Parallels Desktop 的虛擬機器方案——因為實在對它的收費方案感到不滿,於是乎找到了兩個替代品:UTM 和 VMware Fusion。

之所以筆者以前並未寫 UTM,原因是最初發上面文章的時候,UTM 才剛有一些起色,還不能做到成熟;但用到 3.1.5 版本的時候,逐漸發覺它有了很大的改變——操作邏輯從困難逐漸變得容易,增加了 Apple 芯片上對於 macOS 12+ 的虛擬化支持,穩定性得到了提升,還修復了不少的 bug。

這些改變對筆者而言非常可喜,因此,筆者決定再單獨出一篇文章介紹 UTM。

重要提示

本文討論的不是 UTM 推出的 iOS/iPadOS 版。 如果讀者在尋找有關 iOS/iPadOS 上的 UTM 的資訊,請註意本文中的部份內容可能並不適合你。

②所有內容以自己的 2021 款 MacBook Pro(14-inch, M1 Pro)演示,內容視情況非週期性更新,因此當官方推出新的版本時,本文部份文字會有相應的改動,請持續關註。

③目前 UTM 最新的正式版本是 4.5.3,故接下來基於此做介紹。不同版本之間可能會有一些功能上的差異,但大體上是相同的, 請以最新的版本為準。

④筆者只是一個普通的 UTM 使用者,並非 UTM 的開發者,與開發 UTM 的 Turing Software, LLC. 也沒有任何利益相關。如需使用指南,可參考官方的幫助文件(英文),若讀者是程式設計師,可以去官方的 GitHub 計畫頁尋找或送出 issue,甚至為此貢獻程式碼。

如果對本文有其他的疑問, 可以點選文末的付費咨詢卡片, 我會盡可能幫助並解答你的問題。

UTM 是什麽?

UTM 是一個完全免費的 iOS 虛擬機器,它基於 QEMU,以 Apache 2.0 授權合約開源。最初 UTM 只適配 iPhone 與 iPad,但在 2020 年 M1 芯片的問世後,順帶為 Mac 提供了支持。

UTM 的 macOS 版可在 macOS 11+ 上執行(最新版支持的 macOS 版本 ≥ 11.3),支持 Apple 芯片和 Intel 雙架構,可以在其官網下載它的 .dmg 檔:

同時,它在 App Store 上架了一個無內購且買斷的付費版,實際上這個付費版是捐贈版,與官網的免費版功能完全相同,目的是讓使用者更好地支持開發,並透過 App Store 接收最新的 UTM 更新:

此外在官方 GitHub 計畫頁的 Releases 部份,可以下載 Beta 版本的 UTM(若從正式版切換到 Beta 版,建議對已有的虛擬機器檔做個備份):

由於 UTM 以 QEMU 為基礎,這讓 UTM 擁有 QEMU 的一切特性,無論是 arm64 還是 x64 處理器的 Mac,都可以既能直接虛擬化與本機架構相同的作業系統,又可以模擬執行其他架構的作業系統,所以 UTM 確實稱得上是「多面手」的虛擬機器。

準備工作

UTM 可支持的作業系統非常多,數也數不完, 但篇幅有限,本文不可能將所有的作業系統都覆蓋到。 為了讓讀者能夠快速上手,下面的內容以 Apple 芯片上安裝 Windows 8.1 為例,這一步驟也應當適用於絕大多數版本的 Windows,其他的作業系統安裝步驟與此有一定的差別。

首先,讀者需要準備好作業系統的安裝映像。比如對於 Windows 8.1,可以從 MSDN, 我告訴你 - 做一個安靜的工具站 或者 NEXT, ITELLYOU 獲取。

建立虛擬機器

首次開啟 UTM 的時候,可以有兩種方式建立虛擬機器。

第一種是按照預設方式,前往虛擬機器資源庫,下載現有的虛擬機器樣版(UTM 官網提供了一些作業系統的預配置,部份甚至直接預裝了作業系統),根據需要下載檔並解壓出一個 .utm 副檔名的虛擬機器包,然後雙擊開啟。如果日後需要復用該虛擬機器,可以右擊該虛擬機器,選擇「複制」。這種方式雖然便利,但某些虛擬機器仍需手動配置後才能使用(可見「常見問題解答」部份的 Q8)。

若無法下載,建議使用第二種方式,即從頭開始,透過如下圖所示的開始頁面,點選「建立一個新虛擬機器」,來建立虛擬機器(這裏我已經建立好幾個虛擬機器了)。

在新建虛擬機器的第一步,UTM 首先會詢問使用者需要「虛擬化」還是「模擬」。

「虛擬化」采用原生的虛擬化引擎,執行速度更快,但要求作業系統支持的處理器架構與電腦一致;而「模擬」速度較慢,但架構不受限制。

⚠️註意: 這一步的選擇直接關系到虛擬機器是否正常啟動,如果選錯,虛擬機器會出現異常!

請先了解自己的 Mac 屬於何種的機型(不知道的可以點選螢幕左上角的蘋果選單  > 關於本機 檢視),然後參照如下的表格選擇:

要安裝的作業系統架構 Apple 芯片機型的選擇 Intel 機型的選擇
arm64(或者叫 aarch64,註意不是 arm/arm32) 虛擬化 模擬
x86_64 模擬 虛擬化
i386 模擬 模擬/虛擬化均可(視作業系統而定,可能前者比後者的效能更佳)
既非 arm64 也非 i386、x86_64(例如 PowerPC、RISC 和 MIPS) 模擬 模擬

由於這裏的例子是 Windows 8.1/Server 2012 R2,此作業系統與我的 Mac 處理器(Apple M1 Pro)架構不相同,因此選擇「模擬」。

接下來選取作業系統,UTM 已經對一些作業系統有了一定的預配置,因此可以無腦選擇,當然如果對 QEMU 很熟悉的話,可以選擇「其它」來自訂設定。

對於 Windows 8.1 的安裝,這裏顯然選擇「Windows」。

然後需要勾掉「安裝 Windows 10 或更高版本」,同時勾掉「UEFI 啟動」。

接著選擇作業系統映像,點選「瀏覽」按鈕,選取下載好的 .iso,完成後,點選「下一步」。

然後設定硬體與 CPU 核心數,CPU 核心數目可留空,記憶體可設定為 8192 MB(如果你的 Mac 記憶體沒那麽大,可以保持在 4 GB,也就是 4096 MB)。

下面設定儲存驅動器大小,如果希望在虛擬機器裏多裝一些軟體,可以調的更大一些。

提示: 這個數位只決定了虛擬磁盤的占用空間上限,並非虛擬機器實際占據的大小(但 macOS 虛擬機器除外)。

接下來進入「檔共享」的設定,可以點選「瀏覽」選取資料夾,設定一個路徑,用於虛擬機器與實體機的檔交換,這個功能只有部份作業系統支持,對於 Windows,待安裝 SPICE 客戶機工具後,會在檔案總管中以網路驅動器的形式顯示。

我習慣設定這個路徑為自己的桌面,當然你可以設定為別的資料夾,然後點選「下一步」。

最後進入「總結」頁面,可以設定虛擬機器的名稱,方便區分多個虛擬機器。

當然這裏的例子是 Windows 8.1,還需要在執行前再做一些設定,所以應勾選「開啟虛擬機器設定」(對於 Windows 11 arm64,虛擬機器絕大多數的設定是不需要動的,點選「保存」即可直接建立)。

此時 UTM 會建立虛擬機器(它會出現在左側的虛擬機器列表裏),並彈出虛擬機器的設定。

提示: 對於虛擬機器的「系統」、「QEMU」、「輸入」、「顯示」和「聲音」設定,筆者對於 Apple 芯片的 Mac 使用者整理出來了 Windows 的推薦配置,請參考文末的「常見問題解答」部份的 Q8。

在「基本資訊」部份,可以設定虛擬機器的名稱和備註,修改虛擬機器的圖示以作區分:

在「系統」部份,可以設定架構與系統,同時也可以設定模擬的 CPU 型號和 CPU 核心數,建議開啟「強制多核」以提升虛擬機器的執行速度:

接下來是「QEMU」部份,可以設定 QEMU 的行為:

在「輸入」部份,設定 USB 相容性,以及是否與宿主機自動共享 USB 裝置:

在「顯示」部份,可設定虛擬機器的虛擬顯卡:

⚠️註意: 不相容或不完全相容的虛擬顯卡會導致虛擬機器顯示不正常,甚至使虛擬機器無法正常啟動!

在「網路」部份,建議將虛擬機器網路模式設定為「模擬 VLAN」,MAC 地址會由 UTM 自動生成,如有需要,可以自行修改,或者點選「隨機」換一個:

提示: 對於 Windows 10 x64,你可能需要先設定網路模式為「僅主機」來實作無網路連線安裝,請參閱「常見問題解答」的 Q10,由於微軟 OOBE 的 bug,使得在進入桌面前 OOBE 階段可能會莫名重新開機陷入迴圈,從而進不了桌面。

在「聲音」部份,設定虛擬機器的模擬音效卡:

至於」Arguments(參數)「、」共享「部份直接跳過,如果讀者為高級使用者,可以視情況自行修改設定。

另外,對於「驅動器」部份, 絕大部份情況下不需要修改, 只有特殊需求下可以修改設定(比如參見「常見問題解答」部份的 Q6)。

在完成設定後,別忘了點選「保存」按鈕!

執行虛擬機器

點選虛擬機器名稱旁邊的「執行」按鈕即可執行虛擬機器,此時開始安裝作業系統。

⚠️註意: 對於 Windows,若虛擬機器設定了 UEFI 啟動,首次出現「Press any key to boot from CD or DVD...」時,請在虛擬機器內 立即按鍵盤上的任意鍵 進入安裝界面,讀者如果不慎錯過的話,請點選工具列上的「重新開機」按鈕,重新啟動虛擬機器再試。
但若系統初步完成安裝後重新開機, 則無需再做這一步驟, 等這一畫面自動跳過就夠了,否則如果再按下任意鍵,又要從 CD/DVD 啟動,陷入回到安裝程式的迴圈!

接下來的安裝步驟完全省略,因為這並不屬於本文的重點。

提示:若你安裝的是 Windows Server,選擇「帶有 GUI 的伺服器」後,安裝後才會有圖形界面。

在完成安裝之後,經過 OOBE(Out-Of-Box Experience,又稱系統全新體驗、開箱體驗、首次使用引導)的設定,即可進入熟悉的桌面。

為虛擬機器安裝 SPICE 客戶機工具(限部份作業系統支持特定功能)

和 Parallels Desktop 的 Parallels Tools、VMware 的 VMware Tools、VirtualBox 的 VirtualBox 客戶機增強功能一樣,UTM 也有相應的 SPICE 客戶機工具(SPICE Guest Tools,來自於開源的計畫 SPICE,旨在為 QEMU 提供開源的虛擬機器驅動方案),它包含一套完整的虛擬機器驅動程式,可以更好地提升虛擬機器的體驗,並實作剪貼簿與資料夾共享。

SPICE 客戶機工具目前支持的作業系統有 Windows 和 Linux,後者在幫助文件中有說明。

對於前者,SPICE 客戶機工具支持 XP 及以後的所有 Windows 版本,但只有 Windows 7 及以上才能實作檔共享、根據視窗自適應調整分辨率,Windows 11 arm64 還支持剪貼簿共享。

對於 Windows,UTM 提供了一套比較便捷安裝的方式。如果此前事先勾選了「安裝驅動和 SPICE 工具」,那麽桌面上會自動彈出 SPICE 客戶機工具的安裝程式視窗。如果沒有,可以點選工具列上的光驅圖示按鈕,選擇「安裝 Windows 客戶機工具...」。

若電腦上無 SPICE 客戶機工具,則 UTM 會自動下載它的 .iso 映像,下載後 UTM 將嘗試掛載。註意應確保所有虛擬機器的光驅內沒有載入任何映像,否則會彈出提示,要求預留空光驅(解決方法是點選工具列上的光驅圖示按鈕,選擇「CD / DVD(ISO)映像」 > 「彈出」,彈出所有虛擬光碟),然後從虛擬機器的 CD 驅動器執行 SPICE 客戶機工具安裝程式。

在開啟 SPICE 客戶機工具的安裝程式時,請點選「Next >」按鈕下一步。

接下來點選「I Agree」同意使用者授權合約。

然後就開始安裝 SPICE 客戶機工具,請耐心等待安裝完成。

若出現了下圖所示的驅動安裝警告,其原因是 SPICE 客戶機工具的驅動程式的數位簽名不被 Windows 完全信任,需要勾選「始終信任來自 'Red Hat, Inc.' 的軟體」,再點選「安裝」。

(對於 Windows 7 及以前版本,你可能需要多次點選「始終安裝此驅動程式軟體」或「仍然安裝」)

最後是安裝完成的界面,請點選「Finish」按鈕。

⚠️註意: 對於 Windows 11 arm64,請務必選擇「Reboot now」並點選「Finish」按鈕,重新開機 Windows 以使安裝的 SPICE 客戶機工具生效。

在虛擬機器重新開機後,之前設定的共用資料夾可以在檔案總管裏檢視,甚至 USB 的使用也正常。

最後放一張全螢幕使用虛擬機器的效果圖:

常見問題解答(FAQ)

Q1:使用 UTM 虛擬機器時,我應該註意目前有哪些功能限制?

A:UTM 是獨立開發者 osy 開發的套用。根據官方敘述和筆者使用的情況,可以整理出如下的客觀限制,這其中的一部份可能會在以後的版本中得到解決:

  • 不支持快照儲存功能(但允許使用者複制虛擬機器)
  • Apple 芯片的 Mac 下無網路攝影機和虛擬藍芽裝置支持
  • Windows 下無類似 Parallels Desktop 或 VMware Workstation 的融合模式/Unity 模式功能,Windows 與 Linux 無法拖放檔和數據,SPICE 客戶機工具僅支持剪貼簿和單個資料夾的共享,且支持的版本為 Windows 7 及以後
  • 部份版本的 Windows 支持有限的 GPU 加速,Linux 則提供實驗性的 OpenGL 加速支持,虛擬顯卡驅動有待完善,WDDM 驅動不支持 Windows Vista 和 Windows 7(因此對於 Windows Vista 和 Windows 7 無法正常顯示 Aero 特效),部份遊戲在 Windows 下可能無法正常執行
  • 只能在 Apple 芯片的 Mac 下以虛擬化形式執行 macOS,且版本為 Monterey 及以後(以往版本的 macOS 及 Mac OS X 不支持執行,不過 UTM 倒是可以模擬蘋果更古早的 classic Mac OS)
  • macOS 虛擬機器尚不支持 USB,不能共享剪貼簿和檔,也無法動態調整分辨率,在與 Mac 共享網路連線時尚無「模擬 VLAN」選項
  • 由於蘋果對虛擬化框架的限制,macOS 虛擬機器無法全域登入 Apple ID 及相關服務(本問題會在 macOS Sequoia 中得到解決,但前提是虛擬機器與 Mac 都需要安裝 macOS Sequoia)
  • 對於 Apple 芯片的 Mac,只能在 macOS Ventura 及更高版本中使用「帶有 Rosetta 的 Linux」功能
  • Q2:為何透過 UTM 安裝 arm64 版的 Windows 10 會出現藍屏?

    A:這可能是因為安裝了正式版的 Windows 10 arm64,但開啟了虛擬化。

    微軟只在版本號大於等於 21390 的 Insider 版 Windows 10 arm64 上加入了對虛擬機器的 arm64 虛擬化引擎支持, 這意味著對於 QEMU/UTM 而言,要想執行正式版的 Windows 10 arm64,只能 關閉虛擬化引擎 (然而這樣做,透過模擬執行的 Windows 10 arm64 會卡到死)!

    相反,21390 及以後的 Insider 版 Windows 10 arm64 則完全不需要關閉虛擬化引擎,執行速度更快,但讀者需註意,此版的 Windows 10 已過期很久,不再受微軟支持(這也導致 Insider 版本身也有很多 bug,比如不能安裝語言包等可選元件,Windows Defender 無法工作)。

    因此,如非必要,筆者更建議讀者切換到 Windows 11。

    Q3:如何檢視虛擬機器所在的目錄?

    A:在虛擬機器列表右擊選擇」在訪達中顯示「,即可看到虛擬機器存放的目錄。

    更進一步可知,虛擬機器存放在如下的路徑:

    ~/Library/Containers/com.utmapp.UTM/Data/Documents/

    Q4:在 Windows 虛擬機器中,與共用資料夾之間復制檔時出現「錯誤 0x80070021:另一個程式已釘選檔的一部份,行程無法存取」的錯誤提示(類似下圖)而無法復制,如何解決該問題?

    A:因為共用資料夾是透過 WebDAV 的網路驅動器實作的。然而,微軟出於對 WebDAV 服務的安全考慮,早在 Windows XP Service Pack 2 就對 Windows 做了一定的限制,若檔超出一定大小,則不予執行復制或移動操作,以防止未經授權的伺服器對於客戶端電腦進行大流量的攻擊。

    當然,我們可以透過修改登錄檔來適當提高這個限制。

    首先開啟登錄編輯程式,透過左側的樹形圖或直接透過位址列輸入,定位到如下路徑:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters

    然後在右側雙擊 FileSizeLimitInBytes 項,將其鍵值改為 ffffffff (基數為十六進制) 。

    重新啟動電腦使改變生效,再復制就可以了。

    註意:Windows 登錄檔有自己的局限性,上述鍵值不允許大於十六進制的 FFFFFFFF (轉換為十進制數是 4294967295),這意味著在虛擬機器與共用資料夾之間,移動或復制檔最高的限制約為 4.29 GB。

    對於大多數情況下的檔移動和復制,這個大小是足夠的,但對於超出 4.29 GB 的檔,目前 UTM 還未突破,讀者可以考慮如下幾個解決方案,具體不做展開:

  • 透過隨身碟在宿主機與虛擬機器之間轉移,對於資料夾可以拆分資料夾移動
  • 將檔壓縮為分卷
  • 在 Windows 設定共用資料夾,透過 SMB 服務共享將 Windows 共享檔到 macOS
  • 使用遠端桌面軟體(對於 Windows 可使用 Microsoft Remote Desktop)
  • 使用 WinSCP 或 PuTTY
  • 借助第三方即時通訊軟體或網路儲存服務(網盤)
  • Q5:為何透過 UTM 下載 Windows 版 SPICE 客戶機工具很慢(甚至失敗)?

    A:請確保能順暢存取 GitHub,因為 UTM 下載 SPICE 客戶機工具是透過 GitHub 來拉取資源的。

    若無法自動下載 SPICE 客戶機工具,也可以透過官方文件手動下載 .iso 檔:

    或者從下面下載(此分享連結會隨著官方更新):

    Q6:我安裝了 SPICE 客戶機工具,為何無法正常使用檔共享?

    A:SPICE 客戶機工具 只支持 Windows 7 及以後的檔共享, 因此 Vista 及以前版本的 Windows 是無法使用該功能的。正常情況下,若使用的版本為 Windows 7 及以後,在最新的 UTM 上,(重新)安裝 SPICE 客戶機工具後即可直接使用檔共享。

    若你使用了舊版的 SPICE 客戶機工具甚至 UTM,可按如下方式操作——

    1. 首先需要確保啟用了「網路發現和檔共享」(在 Windows 檔案總管的「網路」中,如果沒有開啟,會出現一個資訊條,請點選它並選擇「啟用網路發現和檔共享」)。

    2. 對於 Windows 7,請透過更新 VirtIO 驅動的方式實作 SPICE WebDAV 的正常工作:

    ①透過如下的連結,下載 QEMU 和 KVM 的 VirtIO 驅動的 .iso 檔 virtio-win.iso (由 RedHat 的 Fedora 團隊開發):

    ②下載完成後,執行「裝置管理員」(或者「電腦管理」下的「裝置管理員」),此時可以看到「VirtIO RNG Device」和「VirtIO Serial Driver」均為不正常工作的狀態(圖示有黃色的感嘆號標誌)。

    點選工具列上的光驅圖示按鈕,選擇「CD / DVD(ISO)映像」 > 更改,將下載好的 virtio-win.iso 裝入虛擬機器的光驅。

    ③接下來為「VirtIO RNG Device」和「VirtIO Serial Driver」兩個裝置更新驅動程式。

    右擊「VirtIO RNG Device」,選擇「更新驅動程式軟體」:

    然後選擇「瀏覽電腦以尋找驅動程式軟體」:

    接下來將要掃描的驅動程式目錄定位到 CD 驅動器,然後單擊「下一步」:

    此時 Windows 會自動掃描到驅動程式,並且會提示是否安裝此軟體,彈出該視窗的原因在前文已有解釋。

    請勾選「始終信任來自‘Red Hat, Inc.’的軟體」,然後點選安裝:

    安裝成功後,請根據 Windows 的提示重新開機電腦,然後用同樣的方法對「VirtIO Serial Driver」進行更新,在更新完畢後,請彈出光碟。

    ④最後重新開機一下虛擬機器,待系統進入桌面一段時間後,開啟檔案總管,就可以看到共用資料夾以網路驅動器的形式出現在檔案總管內了。

    提示: 上述方法也適用於大多數版本 Windows 中需要補上缺少驅動的情況。

    3. 對於 Windows 8 及以後版本,請開啟檔案總管,轉到如下路徑:

    "C:\Program Files\SPICE webdavd"

    右擊批次檔 map-drive.cmd ,選擇「以管理員身份執行」:

    在執行完畢後,即可在檔案總管內看到恢復的共用資料夾(必要時請重新開機 Windows)。

    若此方法不起作用,請重新安裝 SPICE 客戶機工具。

    Q7:如何關閉 macOS 選單欄的 UTM 圖示?可以在 UTM 中設定反轉滑鼠的捲動方向嗎?

    A:執行選單命令 UTM > 設定…,在「應用程式」下取消勾選「顯示選單欄圖示」,即可關閉 macOS 選單欄的 UTM 圖示。

    同樣,在設定視窗的「輸入」下勾選「反轉捲動」,即可全域設定反轉滑鼠的捲動方向。

    但是,macOS 虛擬機器是個例外,不受此設定的約束。 請在系統(偏好)設定內單獨設定滑鼠,關閉「自然捲動」這一功能。

    以圖中的 macOS 為例
    ⚠️註意: 如果你沒有在 macOS 的系統(偏好)設定裏看到「滑鼠」的設定,需要關閉虛擬機器,在虛擬機器設定的「虛擬化」裏修改「滑鼠指標」為「通用滑鼠」(舊版本 UTM 則是不勾選「使用觸控板」)。

    完成此設定後,重新開啟虛擬機器即可生效。

    此外需要說明:若將「鍵盤」和「滑鼠指標」設為「已禁用」,可能會引起鍵盤和滑鼠失效。

    特別地,對於 macOS Monterey,若不慎設定 Pointer 選項為「Mac 觸控板 (macOS 14+)」,在首次使用 macOS 虛擬機器時,虛擬機器可能會如下圖所示,卡在滑鼠和鍵盤的檢測環節!

    Q8:我下載了一個 .qcow2 磁盤映像,怎麽在 UTM 上使用它呢?

    A:由於 UTM 是在 QEMU 的基礎上開發的,因此 .qcow2 映像也可以在 UTM 上使用,前提是讀者必須對該 .qcow2 映像內含的作業系統有所了解。

    在建立虛擬機器的步驟中,可以先在作業系統中選擇「其他」,建立好虛擬機器後,再編輯虛擬機器的設定,找到「驅動器」下方的「新建…」,此時會彈出一個浮動的視窗,然後選擇「匯入」來匯入 .qcow2 映像,最後把原先建立的磁盤刪除。

    此方法也可以添加驅動器,比如添加硬碟的話,可以直接設定大小:

    若是添加一個光驅,可以勾選「可移除」:

    ⚠️註意: 無論添加的是何種型別的驅動器,「介面」與「可移除」選項不能選錯,更不能搞混, 否則驅動器不會正常工作!

    Q9:在 Apple 芯片的 Mac,如何讓 macOS 虛擬機器的字型顯示不那麽「糊」?

    A:由於 Apple 虛擬化引擎的特殊性,macOS 虛擬機器不需要設定虛擬顯卡,但可以編輯虛擬機器設定的「顯示」部份,將分辨率適合自己 Mac 全螢幕的大小,並勾選「HiDPI (Retina)」,使得顯示效果更佳。

    Q10:我對 UTM 的預設處理器配置不夠滿意,有什麽辦法可以提升虛擬機器的執行速度?

    A:UTM 的模擬不可能接近原生的執行速度,但也有一些辦法來讓虛擬機器的執行速度更快一些,比如可以在虛擬機器的設定中提升虛擬機器的記憶體,勾選「強制多核」來提高模擬速度。

    筆者獨立摸索了一些 Apple 芯片 Mac 上 Windows 系列作業系統的推薦配置,將其整理在下表。若安裝的是 Server 版 Windows,則其配置與同內核的消費者版 Windows 的配置相同。

    ⚠️註意: 這些配置 僅作參考用途, 不屬於 UTM 官方認可的配置,也不應過分依賴。

    若讀者所用的 Mac 為 Intel 機型,可參閱 QEMU 的官方文件(英文):

    作業系統名稱 架構 系統 CPU 名稱 CPU 核心數 記憶體大小(MB) UEFI 啟動 Ballon 裝置
    Windows XP x86_64 Standard PC (i440Fx + PIX, 1996) (alias of pc-i4 40fx-7.2) (pc) Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (core2duo-v1) 預設(留空) 2048
    Windows Vista (x86) x86_64 Standard PC (i440Fx + PIX, 1996) (alias of pc-i4 40fx-7.2) (pc) QEMU Virtual CPU version 2.5+ (qemu32-v1) 2 4096
    Windows Vista (x64) x86_64 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-7.2) (935) QEMU Virtual CPU version 2.5+ (qemu64-v1) 2 4096
    Windows 7 至 Windows 8.1 (x86) x86_64 Standard PC (i440Fx + PIX, 1996) (alias of pc-i4 40fx-7.2) (pc) QEMU Virtual CPU version 2.5+ (qemu32-v1) 4 4096 ✔ (Windows 7 除外,因為該裝置驅動不相容)
    Windows 7 至 Windows 8.1 (x64) x86_64 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-7.2) (935) Intel Core Processor (Skylake, IBRS, no TSX) [IBRS, XSAVES, no TSX] (Skylake-Client-v4) 或者 Intel Xeon Processor (Icelake) [5-level EPT] (Icelake-Server-v6) 4 8192 ✔ (Windows 7 除外,因為該裝置驅動不相容)
    Windows 10 1507-1809 (x64) x86_64 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-7.2) (935) AMD EPYC Processor (EPYC-v3) 4 8192
    Windows 10 1903+ (x64) x86_64 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-7.2) (935) 預設 4 8192
    Windows 10/11 (arm64) ARM64 (aarch64) QEMU 8.0 ARM Virtual Machine (alias of virt-8.0) (virt) max 4 8192

    (續表)

    作業系統名稱 TPM 2.0 裝置 PS/2 控制器 USB 版本 虛擬顯卡 虛擬音效卡
    Windows XP 2.0 vmware-svga Intel 82801AA AC97 Audio (AC97)
    Windows Vista (x86) 2.0 vmware-svga usb-audio
    Windows Vista (x64) 2.0 vmware-svga usb-audio
    Windows 7 至 Windows 8.1 (x86) 3.0 (XHCI)(Windows 7 可選 2.0) vmware-svga Intel HD Audio Controller (ich6) (intel-hda)
    Windows 7 至 Windows 8.1 (x64) 3.0 (XHCI)(Windows 7 可選 2.0) virtio-vga-gI (GPU Supported) Intel HD Audio Controller (ich6) (intel-hda)
    Windows 10 1507-1809 (x64) 3.0 (XHCI) vmware-svga Intel HD Audio Controller (ich9) (ich9-intel-da)
    Windows 10 1903+ (x64) 3.0 (XHCI) virtio-vga-gI (GPU Supported) 或 vmware-svga Intel HD Audio Controller (ich9) (ich9-intel-da)
    Windows 10/11 (arm64) 3.0 (XHCI) virtio-ramfb-gl (GPU Supported) Intel HD Audio Controller (ich9) (ich9-intel-da)

    補充:

    1. 若 Mac 的記憶體不大於 8 GB,請調整為 4 GB(4096 MB)。
    2. 除此之外,均應並將本地時間用作基準時鐘,Windows 7 及以上均應開啟 RNG 裝置,只有 x86_64 架構下才應(且推薦)開啟強制多核,ARM64 (aarch64) 則不需要強制多核,但必須勾選「使用虛擬化」。
    3. Windows 10 arm64 只能安裝版本號大於等於 21390 的 Insider 版本(具體原因在「常見問題解答」的 Q2 已有解釋)。
    4. 不建議讀者嘗試 Windows 10 x86(因為虛擬機器啟動後,顯示要麽卡住要麽出現花屏)。
    5. 筆者尚不能透過原版映像成功安裝並使用 Windows 11 x64,盡管用民間修改/精簡的版本可以安裝成功,但實際體驗很差,故此對應的虛擬機器配置不在此列出。
    6. 假如讀者知道有比上述表格更好的配置,請記得留言告訴我。

    受限於篇幅,其他的作業系統在此不做列舉,請自行嘗試。

    不過需要註意, 強制多核並不適用於與 Mac 本機處理器相同架構的作業系統, 另外,某些作業系統限定了執行配置,或者某些模擬的硬體存在一定的記憶體和 CPU 核心數限制,若設定不當,虛擬機器反而不能正常執行。

    因此,除上面已經列舉的 Windows 版本外, 在對作業系統不熟悉的情況下,這部份不應當擅自修改。

    Q11:為何有些作業系統不能辨識鍵盤/滑鼠?

    A:請確保滑鼠在虛擬機器內,對於某些作業系統,需要設定虛擬機器的輸入裝置為「強制使用 PS/2 控制器」才能使用,甚至要禁用 USB(比如 Windows 95/98),若在設定後依然出問題,則屬於無解的情況了。

    Q12:如何關閉虛擬機器的網路連線?

    A:UTM 虛擬機器不能徹底刪除/停用網路裝置,也不能在虛擬機器執行時關閉網路,但可以讓虛擬機器關機,接著編輯虛擬機器的設定,選擇「網路」,在「網路模式」下,選擇「僅主機」,這樣再次開啟虛擬機器後,即達到虛擬機器不能聯網的效果。

    如需恢復網路, 用同樣的方法換回原先的設定即可。

    Q13:為何在安裝 Windows 10 的時候,提示「Windows 找不到 Microsoft 軟體授權條款。請確保安裝源有效,然後重新啟動安裝」?

    A:這種情況只會出現在客製(如被第三方魔改過)的 Windows 安裝映像,標準的 Windows 安裝映像不存在此問題。

    SPICE 客戶機工具內含可被 Windows 安裝程式辨識的無人值守應答檔 Autounattend.xml ,作用是 Windows 安裝成功後自動開啟 SPICE 客戶機工具的安裝程式,但如果 Windows 映像「不夠官方」,包含的 Windows 版本並非與 Autounattend.xml 指定的一致,就會出現此問題。

    如果遇到此問題,解決方法是將 SPICE 客戶機工具的映像從虛擬機器的光驅中彈出,重新開機虛擬機器以正常進入 Windows 安裝程式,待安裝好 Windows 後,再透過手動方式安裝 SPICE 客戶機工具。

    總結

    UTM 是一個根植於開源計畫 QEMU 的虛擬機器,以前一直支持 iOS 與 iPadOS,自蘋果在 2020 年的 WWDC 宣布 macOS 的軟體生態由 x64 向 arm64 轉型起,它也順帶適配了 macOS,特別是 Apple 芯片的 Mac。

    UTM 致力於給復雜的 QEMU 「做減法」,在為使用者提供 QEMU 的靈活性的同時,讓界面風格不斷接近系統的內建套用,操作更加簡便,因此,對 QEMU 比較熟悉的使用者,使用 UTM 不會感到困難;對於初次使用 UTM 的使用者而言,也可以透過 UTM 來深入學習 QEMU 的使用。

    作為虛擬機器,UTM 可以虛擬化 macOS(限 Apple 芯片)與 Linux,甚至一些過時的系統也同樣可以模擬執行。由於支持模擬的 CPU 種類多樣,因此對於古董系統愛好者和需要 QEMU 開發的開發者來說,也是一個非常有益的補充。

    與其他虛擬機器套用相比,UTM 有一個獨特的「一次性模式(Disposable Mode)」功能,右擊已經建立好的虛擬機器,選擇「執行而不保存更改」,即可讓虛擬機器在「一次性模式」下執行。在此模式下,所有對虛擬機器的更改在關機後不會保存,這可以讓使用者臨時測試軟體,而不會將更改套用到虛擬機器。

    就 Apple 芯片而言,雖說 UTM 跨架構的模擬表現對於部份作業系統尚可,主流的 x86_64 上還有很長的路要走,但它在 macOS 的適配進度上早已甩開了同樣開源的 Oracle VirtualBox,足以讓筆者咋舌。

    希望 UTM 能夠不斷彰顯開源軟體的優勢所在,在 Mac 和 Apple 芯片向未來發展的道路上註入新的活力。

    感謝閱讀~