快轉到主要內容

WinBoat使用教學,在Linux無縫執行Windows程式的工具(Docker KVM + FreeRDP)

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux好用軟體
標籤   QEMU-KVM Docker Windows
目錄

今天要分享的軟體叫做WinBoat,它能讓你在Linux執行Windows程式。

要在Linux跑Windows軟體,最穩定的方法便是透過虛擬機,譬如Virt Manager + QEMU/KVM跑Windows虛擬機。但是透過Virt Manager視窗來操作Windows顯得有些不便,所以有許多開發者提出了透過RDP遠端桌面的方式,讓虛擬機內的程式與Linux桌面更好的整合,讓Windows程式的視窗繪製在Linux桌面上。

例如在Linux桌面,開啟Microsoft Office視窗。宛如原生應用程式一樣的操作。

類似WinBoat的軟體有WinAppsCassowary。WinBoat跟WinApps的差別在於,它是在Docker裡面跑Windows 11虛擬機,而非直接透過Libvirt(WinApps允許你選取Docker或Libvirt作為後端,彈性較高,能GPU直通),不過它還是有用到KVM。

WinBoat界面比較漂亮,設定過程比較直覺,只要裝好Docker與KVM的前置依賴套件,這個圖形程式就會自動幫你建立Windows虛擬機,在虛擬機內部安裝與Linux溝通的伺服器程式winboat_guest_server。並且會自動將Linux家目錄掛載到Windows檔案總管,共享資料夾。

不過,WinBoat本質上是跑一個Windows虛擬機,目前無法GPU直通,圖形效能低落,只適合跑文書程式。

我覺得比較有趣的是作者使用的發行版。試想:Steam Deck可以不裝Windows系統,也能跑Windows exe程式嗎?比如說Office 365?WinBoat作者是用Bazzite測試的,這個是專為Steam Deck設計的玩遊戲系統。既然這種immutable distro都能裝了,一般Linux發行版更不用說。

1. 安裝前置依賴
#

跑WinBoat建議電腦要有8GB RAM,因為要分配給虛擬機至少4GB RAM。再考慮到Windows 11的吃資源程度,分配8GB RAM最為保險。否則用起來會很卡。

以Ubuntu來說,需要安裝:

  1. 開啟KVM虛擬化,不用安裝Libvirt

  2. 安裝Docker,並將自身加入docker群組

  3. 安裝FreeRDP

sudo apt install freerdp3-x11
  1. 設定開機載入iptables模組
echo -e "ip_tables\niptable_nat" | sudo tee /etc/modules-load.d/iptables.conf
  1. 重開機。

2. 安裝WinBoat
#

  1. Github下載AppImage,點二下執行。如果不能開啟,嘗試安裝.deb或.rpm版本。

  2. 初次開啟,確認已經符合前置條件

  3. 選取安裝Windows 11系統,安裝Windows的時候只有英文和簡體中文,稍後可以到系統設定自行下載語言套件改成繁體中文。

  4. 設定Windows帳號和密碼,這裡是離線帳號,不用輸入Microsoft帳號

  5. 建議分配2核心以上CPU與4GB以上RAM

  6. 等待安裝完成。安裝的時候可以在瀏覽器輸入http://127.0.0.1:8006/檢視Windows畫面。

  7. WinBoat安裝後的Windows非啟用狀態?需要用Microsoft Acitvation Scripts。

  8. WinBoat內部能夠設定Windows的縮放。目前的比例有點太大了,建議維持100%就好。

    screenshot_20250913_222722.webp

3. 視窗操作邏輯
#

在Apps列表會看到Windows所有的程式。這個界面也允許你自訂exe啟動捷徑。

screenshot_20250913_222029.webp

預設模式下是一個程式一個視窗,透過FreeRDP控制。中文輸入法不能使用Linux端的,只能用Windows的。

screenshot_20250913_223736-1.webp

需要完整Windows桌面的,點選「Windows Desktop」就行。在瀏覽器輸入http://127.0.0.1:8006也能透過noVNC登入Windows。在開啟Windows桌面的時候,其餘的RDP視窗會被關閉。

screenshot_20250913_223840.webp

有時候RDP視窗沒有關乾淨,用指令強制殺掉。

killall xfreerdp

有時候虛擬機不能從WinBoat的界面關閉,用指令關

docker ps

docker stop WinBoat

WinBoat建立的Windows虛擬機容器會在Linux開機後自動啟動,可能會佔用一部分宿主機資源。不用的話記得關掉。

4. 共享資料夾
#

在Windows檔案總管 → 網路 → host.lan → Data ,可以看到Linux家目錄的檔案,檔案可以直接複製貼上。

screenshot_20250913_222353.webp

當然,你也可以用SSHFS或者SAMBA的方式,與Linux宿主機共享檔案。

相關文章

如何在Linux系統跑Windows軟體,三種方法不同的思路
分類   Linux系統 Linux好用軟體
標籤   Wine QEMU-KVM Windows Linux
Linux用Android Studio模擬器玩手遊的思路(Play商店 + Nvidia GPU加速 + 單獨執行AVD)
分類   Linux系統 Linux好用軟體
標籤   Linux QEMU-KVM Android Scrcpy
ActivityWatch教學,自動紀錄Linux電腦螢幕使用時間
分類   Linux系統 Linux好用軟體
標籤   Linux Windows Android

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。