快轉到主要內容

Virt Manager直通Linux的硬碟給Windows虛擬機,替代共享資料夾

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 虛擬機與容器技術
標籤   Steam Libvirt Windows Linux
目錄

動機:我之前寫過一篇在Linux與Windows雙重開機的電腦共享Steam收藏庫的操作,兩個系統之間能共享大部分遊戲檔案,不需要重新下載。

事實上,這不一定是物理上的雙重開機,實體機搭配虛擬機也是可行的。

大部分時候我都在Linux Host玩Steam遊戲,但是遇到怎麼樣都不能用Proton轉譯的遊戲的時候,我就會用Windows虛擬機玩。然後就會遇到如何與虛擬機分享遊戲目錄的問題。

從效能方面考慮,我肯定不會同意網路檔案系統,不論是NFS、SSHFS、SMB都是太慢了。

不像Virtual Bix,Virt Manager沒有好的共享資料夾方案。

雖然說,目前有一個很有潛力的方案叫做virtio-fs能夠共享資料夾,讓兩個系統同時存取硬碟,不過實務上我測試這不是很穩定的方案,exe放在共享的資料夾直接執行很容易出錯。

所以我只好直通硬碟了。把Steam收藏庫放在一個獨立的硬碟。

嚴格來說這不是直通啦,因為虛擬機裡面的作業系統依然是透過QEMU提供的驅動與硬碟互動,並非是完全將硬碟的控制器直通進去。所以應該稱作raw disk passthrough比較正確。

1. 硬碟掛載的設定
#

我的想法是,讓硬碟能夠自由被Linux或Windows虛擬機掛載,所以開機不要自動掛載。確保要使用的硬碟不在/etc/fstab裡面。

使用桌面環境的時候,通常檔案管理員允許點一下重新掛載硬碟。

另外,關於檔案系統問題,如果是偏向Windows的話當然是把硬碟格式化為NTFS比較好。

如果檔案系統為EXT4或BTRFS,Windows需要另外裝驅動才能讀取。例如裝WinBtrfs讀BTRFS。

2. Virt Manager直通實體硬碟給虛擬機
#

  1. Linux需要先取消掛載硬碟:
lsblk

sudo umount "掛載點"
  1. 接著使用ls -l /dev/disk/by-id/指令找出硬碟代號

  2. Virt Mavnager點選新增硬體,點選新增硬碟,在方框輸入/dev/disk/by-id/ata-硬碟代號,匯流排選VirtIO

  3. 如果Windows開機後讀不到硬碟,首要的步驟是安裝VirtIO驅動,然後再安裝對應檔案系統的驅動。不要傻傻地格式化呀。

  4. 虛擬機關機之後,方能在宿主機將硬碟重新掛載。

相關文章

Linux與Windows共享Steam遊戲收藏庫的硬碟
分類   Linux系統 Linux玩遊戲
標籤   Steam Libvirt Windows Linux
Linux系統玩Windows遊戲:Steam Proton V.S. VFIO Windows虛擬機,孰勝孰負?
分類   Linux系統 Linux玩遊戲
標籤   GPU Passthrough QEMU-KVM Linux Windows Steam
如何在Ubuntu系統安裝Oracle VirtualBox軟體,跑Windows虛擬機
分類   資訊科技 虛擬機與容器技術
標籤   VirtualBox Linux Windows

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

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

Click here to edit your comments.

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