如何在 Linux 主機和 KVM 中的 Windows 客戶機之間共享文件夾
virt-manager 應用(帶有 libvirt)和軟件包提供了一組靈活的工具來管理 Linux 中的虛擬機。它是自由開源的,用于 KVM 虛擬機和其他虛擬機管理程序。
在上一篇文章中,我解釋了 如何在 Linux 客戶機和 Linux 主機之間共享文件夾。然而,當你嘗試使用 Windows 客戶機和 Linux 主機創建共享文件夾時,這是一個有點困難和復雜的過程。因為兩種操作系統的工作方式不同,需要進行大量配置。
按照下面提到的說明在 Windows 客戶機和 Linux 主機之間共享文件夾。
關于 virtiofs 的說明
共享文件和文件夾由名為 virtiofs 的 libvirt 共享文件系統提供支持。它提供了訪問主機上目錄樹的所有功能和參數。由于大多數 virt-manager 虛擬機配置都會轉換為 XML,因此共享文件/文件夾也可以由 XML 文件指定。
注意:如果你正在尋求在兩臺 Linux 計算機(客戶機和主機)之間使用 KVM 進行文件共享,請 閱讀此文。
使用 KVM 在 Windows 客戶機和 Linux 主機之間共享文件夾
以下說明假設你已在任何 Linux 主機的 virt-manager 中安裝了 Windows。如果沒有,你可以閱讀有關如何在 Linux 中安裝 Windows 的完整指南。
在 virt-manager 中設置掛載標簽
首先,確保你的客戶虛擬機已關閉。從 virt-manager GUI 中,選擇虛擬機并單擊“打開Open”以調出控制臺設置。
打開控制臺設置
單擊工具欄中顯示虛擬硬件詳細信息的圖標。然后單擊左側面板上的“內存Memory”。
選擇選項“啟用共享內存Enable shared memory”。單擊“應用Apply”。
確保 XML 在 XML 選項卡中顯示 <access mode="shared"/>
,如下所示。
<memoryBacking>
<source type="memfd"/>
<access mode="shared"/>
</memoryBacking>
啟用共享內存
單擊底部的“添加硬件Add hardware”。
從添加新硬件窗口的左側面板中選擇“文件系統Filesystem”。
然后在詳細信息選項卡中選擇 “驅動Driver” 為 “virtiofs”。單擊“瀏覽browse > 瀏覽本地browse local”并從 Linux 系統中選擇主機路徑。
在“目標路徑Target path”中,輸入你想要的任何名稱。它只是一個文件標簽,將在掛載過程中使用。目標路徑中的此名稱將作為 Windows 中的驅動器掛載,即資源管理器中的我的電腦。
我已添加 “linux_pictures” 作為目標掛載標簽。
因此,如果我想訪問圖片文件夾(/home/debugpoint/Pictures
),示例設置可能如下:
為 Windows 添加文件系統掛載
單擊“完成Finish”。
上述配置的 XML 設置如下。你可以在 XML 選項卡中找到它。
<filesystem type="mount" accessmode="passthrough">
<driver type="virtiofs"/>
<source dir="/home/debugpoint/Pictures"/>
<target dir="linux_pictures"/>
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</filesystem>
在 virt-manager 主窗口中,右鍵單擊 Windows 虛擬機,然后單擊“運行Run”啟動虛擬機。如果未顯示虛擬機,請單擊“顯示圖形控制臺”(工具欄中的監視器圖標)。
設置 WinFSP – 適用于 Windows 的 FUSE
確保 Windows 虛擬機(客戶機)正在運行。
首先,我們需要安裝 WinFSP(Windows File System Proxy)– FUSE for Windows。這使你能夠毫無困難地掛載任何類 UNIX 文件系統。
從客戶 Windows 計算機打開 WinFSP 的 GitHub 頁面。
下載 WinFSP .msi 安裝程序。
在 Windows 虛擬機上安裝軟件包。安裝軟件包時請確保選擇 “Core”。完成安裝。
WinFSP 設置
創建 VirtIO-FS 服務
進入 stable-virtio
文件夾,從以下地址下載 virtio-win-guest-tools.exe
。
下載客戶機工具
在 Windows 虛擬機上安裝軟件包。
Virtio-Win-driver 安裝
安裝完成后,重啟 Windows 虛擬機。
重啟后,在開始菜單中搜索打開“設備管理器”。
進入系統設備并查找 “VirtIO FS 設備”。它應該被識別并且驅動程序應該由 Red Hat 簽名。
注意:(可選)如果你看到感嘆號,即未檢測到驅動程序,請按照 此處 說明下載 ISO 文件、安裝它并手動檢測驅動程序。
Make sure the Virt IO driver is signed and installed
打開開始菜單并搜索“服務”。
向下滾動找到 “VirtIO-FS Service”。右鍵單擊并單擊“開始”啟動該服務。
或者,你可以以管理員身份從 PowerShell/命令提示符運行以下命令來啟動服務。
sc create VirtioFsSvc binpath="C:\Program Files\Virtio-Win\VioFS\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio FS Service"
sc start VirtioFsSvc
啟動 Virt IO 服務
服務啟動后,打開資源管理器,你應該看到你在上面第一步中創建的掛載標簽,該標簽應映射為 Z 驅動器。見下圖。
掛載標簽在 Windows 中映射為 Z 驅動器
你現在可以根據需要使用修改后的權限訪問整個 Linux 文件夾。
以下是在 Linux Mint 和 Windows 客戶虛擬機中訪問的同一文件夾的并排比較。
訪問和共享 Windows 客戶機和 Linux 主機中的文件夾
總結
我希望你現在能夠在 Windows 客戶機和 Linux 主機系統之間共享文件夾。本文在 Linux Mint 中測試了上述方法。它應該也適用于 Ubuntu、Fedora。
如果上述方法有效,請在下面發表評論以造福他人。