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