在Linux系統使用Virt Manager + QEMU/KVM跑舊版Windows系統的虛擬機。
想用Windows虛擬機執行一些老遊戲。嘗試安裝看看Windows 98、Windows XP、Windows 7這類20年前的老系統吧!沒有現代Windows 11那麼重型又有種懷舊風味。
雖然很多Windows老遊戲在Linux都能用Wine執行,它有辦法相容到DOS時代的遊戲,不過有些遊戲就是要在Windows環境玩才對味嘛。
需要安裝Windows XP嗎?Windows 7的年代就夠久了,還相容許多32位元老遊戲。系統UI有屬於那個年代的美感,屬於是夾在現代與舊時代作業系統的交界。
1. 測試環境#
- Ubuntu 26.04
- Windows 7 Ultimate
2. 下載Windows 7 ISO#
自己找ㄅ 啟用序號也自行找…譬如Microsoft Activation Scripts。
Internet Archive上面的ISO感覺都不太能信任…那這個網站好像風評還不錯,有很多老舊系統:https://os.click/en 直接下載64位元的就好。
3. 安裝Windows 7虛擬機#
新增虛擬機,新版QEMU似乎將32位元與64位元合併了,所以模擬選項只有x86_64可選,但虛擬CPU可以選擇使用宿主機型號,或者使用舊型Intel CPU模擬。
為了相容性,選擇SATA磁碟,不用VirtIO。如果藍螢幕,使用IDE。
機器類型選Q35,Windows 7理應支援,除非要用Windows XP再選更舊的i440fx。不用選UEFI系統,維持傳統BIOS就好了。除非你要搞GPU直通,那才需要OVMF UEFI。
開機後依照指示完成Windows 7安裝。
4. 快速安裝Windows Update#
Windows 7直到維護週期結束之前都還有推送更新。透過Updatepack7R2這個程式可以一次將需要的更新檔全部載下來,不用一直重開機。
尚支援Windows 7的瀏覽器有Supermium。
5. 如何與Windows虛擬機共享檔案#
Virt Manager沒有VirtulalBox那種簡單的檔案傳輸方案。
我通常是用virtio-fs,可是那要Windows 10以上才能用,Windows 7和Windows XP支援度不確定。嘗試下載virtio 285版本,用CDROM裝置掛載到Windows 7虛擬機,嘿,居然還能裝耶,但只有一部分。但不能直接執行virtio-win-gt.exe。
那麼對於老版本Windows而言,就只有透過SMB了,區域網路讀取速度應該很快。
參見如何在Linux用Docker架設一個SAMBA服務:用Docker在Linux架設SMB伺服器
或者,單純要傳輸檔案的話:在宿主機python3 -m http.server執行一個簡易Server,將目前目錄暴露到區域網路。即使是古老版本的IE也可以打開網頁下載檔案。這樣我至少可以先把Supermium的安裝檔空投進去。然後下載Update7R2完成更新修補。
6. 3D圖形加速#
需要手動到Window 7 裝置管理員,開啟virtio的QXL資料夾,讓它安裝驅動。安裝後就可以開啟Aero特效了?還是不行呀…。起碼QXL顯卡提供基本2D加速,讓虛擬機監視器畫面不太會撕裂了。
最後要如何搞定虛擬機3D加速呢…GPU直通無效,因為我的內顯和獨顯都太新了!除非我去找一張Windows 7時代支援的顯卡並直通進去吧…。
或許我電腦的Intel UHD 630多少還是受Windows 7支援的,但找不到驅動程式。

