QEMU/Windows XP
GNU/Linux、OSX 和 FreeBSD 都是優秀的作業系統,但有時您只需要執行 Windows 程式。這可以通過幾種不同的方式實現,例如
- Wine 將直接在 Linux/OSX/*BSD 中執行一些 Windows 程式
- rdesktop 在 Linux/OSX/*BSD 上執行的 Windows 計算機上為您提供遠端桌面
- 雙重啟動 允許您在啟動計算機時選擇要執行的作業系統
- QEMU 允許您將 Windows 作為 Linux/OSX/*BSD 下執行的另一個程式來執行
前三個選項有一些主要的優點,尤其是效能,但並不總是實用的。有些 Windows 程式無法在 Wine 中執行,或者至少無法正常執行;rdesktop 要求您能夠訪問在另一臺計算機上執行的 Windows;雙重啟動意味著您無法在執行 Windows 時執行作業系統的本機程式。
如果您擁有合法的 Windows XP Pro 許可證副本,則可以建立 QEMU 映象並在 Linux/OSX/*BSD 計算機上執行 Windows。注意:您可能無法使用 Windows XP 的 OEM 版本,因為它可能被鎖定到它附帶的硬體(而不是 QEMU 模擬的硬體)。
由另一位讀者新增:OEM Windows 和零售 Windows 之間並沒有太大區別。對於某些使用者來說,差異可能令人驚訝,但在您的 setup.ini 檔案中,該檔案位於 386 目錄資料夾中。該 pid 可以更改為將零售副本轉換為 OEM 或反之亦然。OEM 未編碼到任何硬體,但 OEM 的金鑰不同。我有兩個合法的 OEM 金鑰,沒有光碟。這就是我發現它的方式;很多使用者遇到了這個問題,因為機器並不總是提供光碟,而是經常複製到目錄中,使用者往往會因為硬碟故障而丟失它們,或者忘記它在那裡,然後借用或下載 Windows XP 的 ISO 映象,發現他們無法使用自己的金鑰。好吧,你可以透過更改 pid 來做到這一點。因此,我相信您可以使用您的 OEM Windows XP 以及 QEMU 的零售版。因為 ini 檔案中只有幾個數字和字母是不同的。
讀者腳註:請注意,一些 OEM 品牌的 Windows 包含產品品牌,甚至有一些 Windows 的驅動程式集非常有限。它不像缺乏廣泛支援那樣被鎖定到硬體上。通常可以從製造商網站找到驅動程式。
基本設定 指示適用於為 QEMU 建立基本的 Windows XP 映象。為了使事情變得更輕鬆,請將 Windows XP 光碟複製到 ISO 映象,以便您可以輕鬆地將其重新連線到系統(例如,安裝額外的網路元件,如 IIS Web 伺服器)。
請注意,3 GB 可能不夠,這取決於您將在 Windows 下安裝的軟體,並且在安裝了軟體的 NTFS 分割槽上擴充套件 NTFS 分割槽並不容易。更好的基礎大小將是 10 GB,但是,透過稍微調整虛擬記憶體和休眠設定,基本的 Windows XP 將可以在 3 GB 上執行。將資料檔案儲存在 Linux/Unix 上並透過 SAMBA 訪問它們也有助於減少對更大 QEMU 映象檔案的需求。

即使使用 KVM 核心模組,在 QEMU 下執行 Windows 也可能非常慢。雖然直接程式碼執行很快,但需要模擬的系統呼叫(尤其是對顯示卡的呼叫)會使事情看起來非常慢和遲鈍。可以透過關閉 Windows XP 引入的一些 GUI 炫耀來輕鬆改善這種情況。從控制面板開啟系統屬性小程式,選擇高階選項卡,然後開啟效能設定。請參閱右側的影像,瞭解您可以關閉以提高效能的一些示例設定,或者只需透過選擇“調整以獲得最佳效能”來關閉所有設定。注意:如果您使用 RDP(遠端桌面)連線到 Windows XP 映象,則這些設定將預設情況下為您選擇;RDP 可能是讓 Windows XP 桌面在其他作業系統中可見的最快方式,但需要一些網路配置(見下文)。
當您開啟系統屬性小程式時,您也可能要關閉 系統還原。這會消耗更多資源,如果您保留了映象的備份副本(始終是一個好主意),則可以省去它。
您可能不需要的另一件事是 Windows Update。您隨時可以啟用更新,那麼為什麼在您試圖在 QEMU 下的 Windows 中完成某項操作時讓 Windows 啟動更新呢?注意:如果您將在 Windows XP 映象中進行任何 Internet 瀏覽,尤其是使用 Internet Explorer,則完全停用 Windows Update 非常危險。將更新安排在固定時間或使用“為我下載更新,但我選擇何時安裝它們”選項可能更安全。
除非您想使用某些自定義軟體測試休眠/恢復系統,否則您可能希望關閉 休眠。這將釋放一些磁碟空間,與您為 QEMU 分配的 RAM 一樣多(因此可能是 256 MB 或更多)。在處理空間有限的映象時,可以很高興地恢復這些空間。
如果您有幾個不同的 Windows XP QEMU 映象,例如要測試不同版本的軟體或支援不同的開發環境,您可以將 Windows 分頁檔案 移到另一個磁碟映象並共享它。注意:您只能在一次只執行一個 QEMU 例項的情況下共享分頁檔案!使用 qemu-img 建立一個使用原始格式的簡單分頁檔案映象,從 QEMU 中的 Windows XP 對其進行 NTFS 格式化,然後在系統屬性小程式中將您的分頁檔案移到新驅動器。
您可能希望在 Windows XP 映象上執行病毒掃描程式(您可能應該這樣做!)。如果您這樣做,請記住關閉自動更新以改善啟動時間。只需記住偶爾執行更新!注意:與 Windows Update 一樣,如果您將在 Windows XP 映象中進行任何 Internet 瀏覽,則完全停用病毒掃描程式的自動更新功能非常危險。如果您的軟體提供計劃更新功能,設定計劃到非中斷時間,而不是依賴記憶體來完成此任務會更安全。
如果您只打算使用 Windows XP 來賓作業系統外部的網路資源,那麼您可能無需執行任何特殊操作來使網路正常執行。QEMU 預設情況下將提供使用者模式網路,讓來賓作業系統訪問 Linux/unix 主機可以訪問的基於 TCP 和 UDP 的網路。預設情況下,Windows XP 將開啟 DHCP,因此會自動由 QEMU 的虛擬 DHCP 伺服器(地址從 10.0.2.15 開始)分配 IP 地址。
此設定將允許您從來賓作業系統訪問 Internet,並允許您將 Windows 驅動器對映到真實世界網路上的 SAMBA 共享或 QEMU 中的虛擬 SAMBA 伺服器(10.0.2.4)。例如,如果您需要在 Internet Explorer 中測試網頁,您將能夠在 Internet 上瀏覽它們,或者如果您在本地託管它們,則可以透過鍵入 Linux/unix 主機的網路 IP 地址來瀏覽它們。要透過主機檔案中的名稱訪問網路資源,請編輯 Windows 中的本地主機檔案。
notepad \windows\system32\drivers\etc\hosts
如果您需要從 Linux/unix 主機訪問 Windows XP 來賓作業系統上的網路資源,您將需要做更多工作。使用者模式網路 展示瞭如何配置 QEMU 以將埠轉發到來賓作業系統以進行 Windows 檔案共享和提供網頁。如果您想繼續維護一些 ASP 網站,但不想離開 Linux/unix 桌面的舒適性和它的工具,您可以使用此技術讓您能夠在主機作業系統下掛載 QEMU 來賓作業系統上的 Windows 檔案共享。只需使用適當的許可權共享資料夾 C:\inetpub\wwwroot\,您就可以開始了。