如何在 Linux 主機和 KVM 中的 Windows 客戶機之間共享文件夾
在本指南中,你將了解如何在 Linux 主機(例如使用 KVM 的 Fedora、Ubuntu 或 Linux Mint)下運行的 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 中,選擇虛擬機並單擊「 打開 」以調出控制台設置。
單擊工具欄中顯示虛擬硬體詳細信息的圖標。然後單擊左側面板上的「 內存 」。
選擇選項「 啟用共享內存 」。單擊「 應用 」。
確保 XML 在 XML 選項卡中顯示 <access mode="shared"/>
,如下所示。
<memoryBacking>
<source type="memfd"/>
<access mode="shared"/>
</memoryBacking>
單擊底部的「 添加硬體 」。
從添加新硬體窗口的左側面板中選擇「 文件系統 」。
然後在詳細信息選項卡中選擇 「 驅動 」 為 「virtiofs」。單擊「 瀏覽 > 瀏覽本地 」並從 Linux 系統中選擇主機路徑。
在「 目標路徑 」中,輸入你想要的任何名稱。它只是一個文件標籤,將在掛載過程中使用。目標路徑中的此名稱將作為 Windows 中的驅動器掛載,即資源管理器中的我的電腦。
我已添加 「linux_pictures」 作為目標掛載標籤。
因此,如果我想訪問圖片文件夾(/home/debugpoint/Pictures
),示例設置可能如下:
單擊「 完成 」。
上述配置的 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 虛擬機,然後單擊「 運行 」啟動虛擬機。如果未顯示虛擬機,請單擊「顯示圖形控制台」(工具欄中的監視器圖標)。
設置 WinFSP – 適用於 Windows 的 FUSE
確保 Windows 虛擬機(客戶機)正在運行。
首先,我們需要安裝 WinFSP(Windows File System Proxy)– FUSE for Windows。這使你能夠毫無困難地掛載任何類 UNIX 文件系統。
從客戶 Windows 計算機打開 WinFSP 的 GitHub 頁面。
下載 WinFSP .msi 安裝程序。
在 Windows 虛擬機上安裝軟體包。安裝軟體包時請確保選擇 「Core」。完成安裝。
創建 VirtIO-FS 服務
進入 stable-virtio
文件夾,從以下地址下載 virtio-win-guest-tools.exe
。
在 Windows 虛擬機上安裝軟體包。
安裝完成後,重啟 Windows 虛擬機。
重啟後,在開始菜單中搜索打開「設備管理器」。
進入系統設備並查找 「VirtIO FS 設備」。它應該被識別並且驅動程序應該由 Red Hat 簽名。
注意:(可選)如果你看到感嘆號,即未檢測到驅動程序,請按照 此處 說明下載 ISO 文件、安裝它並手動檢測驅動程序。
打開開始菜單並搜索「服務」。
向下滾動找到 「VirtIO-FS Service」。右鍵單擊並單擊「開始」啟動該服務。
或者,你可以以管理員身份從 PowerShell/命令提示符運行以下命令來啟動服務。
sc create VirtioFsSvc binpath="C:Program FilesVirtio-WinVioFSvirtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio FS Service"
sc start VirtioFsSvc
服務啟動後,打開資源管理器,你應該看到你在上面第一步中創建的掛載標籤,該標籤應映射為 Z 驅動器。見下圖。
你現在可以根據需要使用修改後的許可權訪問整個 Linux 文件夾。
以下是在 Linux Mint 和 Windows 客戶虛擬機中訪問的同一文件夾的並排比較。
總結
我希望你現在能夠在 Windows 客戶機和 Linux 主機系統之間共享文件夾。本文在 Linux Mint 中測試了上述方法。它應該也適用於 Ubuntu、Fedora。
如果上述方法有效,請在下面發表評論以造福他人。
參考
- https://virtio-fs.gitlab.io/howto-windows.html
- https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/
- https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md
- https://github.com/virtio-win/kvm-guest-drivers-windows/issues/473
(題圖:MJ/91c30453-5939-4368-b885-c4cb84e732bf)
via: https://www.debugpoint.com/kvm-share-folder-windows-guest/
作者:Arindam 選題:lkxed 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive