一、前言
在使用 VMware 虛擬機搭建 Linux(以 Ubuntu 為例)環境時,常常需要實現主機與虛擬機之間的文件共享,HGFS(VMware Host-Guest File System)就是一種常用的文件共享方式。通過它,我們可以方便地在 Windows 主機(假設主機系統為 Windows ,也適用于其他支持 VMware 環境的系統)和 Linux 虛擬機之間傳遞文件,接下來一步步帶大家掌握 HGFS 共享的配置與使用。
二、前期準備:確認共享設置及基礎檢查
(一)VMware 軟件中設置共享文件夾
在 VMware 虛擬機軟件里,找到對應 Ubuntu 虛擬機的設置選項,進入 “選項” 標簽頁,選擇 “共享文件夾”,啟用共享文件夾功能,并添加你想要共享的主機文件夾。這一步是讓主機和虛擬機 “約定好” 要共享哪些內容,后續在 Linux 里配置就是讓系統能訪問到這些約定的共享資源 。
(二)檢查虛擬機工具基礎狀態(vmware-hgfsclient 命令)
在 Ubuntu 虛擬機中,打開終端,以 root 用戶身份(或用 sudo 提升權限)執行以下命令:
vmware-hgfsclient
解釋:這個命令的作用是查看 VMware 識別到的共享文件夾名稱。如果能正常列出共享的文件夾名稱(比如示例中可能出現的 “Shared”“PC Tools” 等,實際根據你設置的來),說明 VMware 層面的共享配置基礎是好的,后續可以繼續進行軟件安裝和掛載操作;如果沒有正確顯示,要先檢查 VMware 里共享文件夾的設置是否正確生效。
三、安裝必要軟件包
(一)嘗試安裝 open-vm-dkms
在終端執行:
apt-get install open-vm-dkms
解釋:apt-get
?是 Ubuntu 等基于 Debian 系統的包管理工具,install
?子命令用于安裝軟件包,open-vm-dkms
?這個包是用于支持 VMware 相關功能的內核模塊等,能幫助實現 HGFS 等特性。
常見易錯點:如果執行后提示找不到該軟件包,說明系統軟件源里可能沒有這個包的適配,或者需要換其他相關包來安裝。
(二)備選安裝 open-vm-tools-dkms(若上一步失敗時用)
當上面安裝?open-vm-dkms
?失敗,提示找不到軟件包時,執行:
apt-get install open-vm-tools-dkms
解釋:open-vm-tools-dkms
?也是用于支持 VMware 工具功能的軟件包,和?open-vm-dkms
?作用類似,只是包的組成和適配情況有差異,很多時候安裝這個也能滿足 HGFS 共享所需的基礎軟件環境 。
四、掛載共享文件夾
根據前面安裝的軟件包不同,掛載操作有細微區別,下面分別說明。
(一)若安裝的是 open-vm-dkms
步驟 1:創建掛載目錄
執行:
mkdir /mnt/hgfs
解釋:mkdir
?是創建目錄的命令,這里在?/mnt
?目錄下創建?hgfs
?目錄,作為后續掛載共享文件夾的 “掛載點”,也就是把共享的內容 “連接” 到這個目錄下,之后訪問這個目錄就相當于訪問共享文件夾內容 。
步驟 2:進行掛載
執行:
mount -t vmhgfs .host:/ /mnt/hgfs
解釋:mount
?是掛載命令,-t
?指定文件系統類型,這里?vmhgfs
?就是 HGFS 對應的文件系統類型;.host:/
?表示主機端的共享資源位置(這是 VMware 約定的表示方式 ),把它掛載到我們剛創建的?/mnt/hgfs
?目錄,這樣就可以通過訪問?/mnt/hgfs
?來操作共享文件了。
(二)若安裝的是 open-vm-tools-dkms
步驟 1:同樣先創建掛載目錄
執行:
mkdir /mnt/hgfs
解釋:和前面一樣,先建立掛載的目標目錄,作用也是作為訪問共享內容的入口。
步驟 2:執行特定掛載命令
執行:
vmhgfs-fuse .host:/ /mnt/hgfs
解釋:vmhgfs-fuse
?是配合?open-vm-tools-dkms
?實現 HGFS 掛載的工具命令,同樣?.host:/
?指向主機共享資源,掛載到?/mnt/hgfs
?目錄,完成后就能在該目錄下看到共享的文件和文件夾了。
五、設置開機自動掛載(讓掛載永久生效)
前面用?mount
?命令掛載的話,一旦虛擬機重啟,掛載就會失效,所以需要配置讓系統開機自動掛載。
(一)編輯 /etc/fstab 文件
執行:
vim /etc/fstab
(如果沒安裝?vim
?,也可以用?nano
?等編輯器,比如?nano /etc/fstab
?,nano
?相對更簡單,適合初學者,按提示操作即可保存退出 )
解釋:/etc/fstab
?文件是系統用于配置自動掛載的配置文件,系統開機時會讀取這里的配置來自動掛載相應的文件系統。
(二)添加掛載配置行
根據安裝的軟件包不同,添加對應的內容:
- 如果是?
open-vm-dkms
?,添加:
.host:/ /mnt/hgfs vmhgfs defaults 0 0
- 如果是?
open-vm-tools-dkms
?,添加:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults 0 0
解釋:這幾列的含義分別是:要掛載的設備(這里?.host:/
?代表主機共享資源 )、掛載點(/mnt/hgfs
?)、文件系統類型(對應?vmhgfs
?或?fuse.vmhgfs-fuse
?)、掛載選項(defaults
?表示使用默認選項,比如可讀寫等 )、dump 選項(一般設 0 ,不備份 )、fsck 檢查順序(設 0 ,不優先檢查 )。添加后保存文件,下次開機就會自動掛載了。
六、常見問題及解決(拓展知識)
(一)掛載時提示 “目錄非空”
如果執行掛載命令時,提示類似 “mount: /mnt/hgfs: 目錄非空” 的錯誤,這是因為?mount
?命令默認要求掛載點目錄是空的。解決方法是在掛載命令里加上?-o nonempty
?參數,比如:
- 對于?
open-vm-dkms
?對應的掛載命令:
mount -t vmhgfs -o nonempty .host:/ /mnt/hgfs
- 對于?
open-vm-tools-dkms
?對應的掛載命令:
vmhgfs-fuse -o nonempty .host:/ /mnt/hgfs
解釋:-o
?選項用于指定掛載的額外參數,nonempty
?就是告訴系統即使掛載點目錄非空,也繼續執行掛載操作 。
(二)軟件包安裝依賴問題
在安裝?open-vm-dkms
?或?open-vm-tools-dkms
?時,可能會遇到依賴缺失的情況,系統會提示需要安裝哪些依賴包。一般可以按照提示,用?apt-get install
?加上對應的依賴包名稱來安裝,比如提示需要?xxx
?依賴,就執行?apt-get install xxx
?,然后再重新安裝原來的軟件包。這是因為 Linux 軟件包之間相互依賴,需要把相關依賴都裝好才能正常安裝目標軟件包 。
(三)VMware 工具版本適配問題
有時候可能因為 VMware 軟件版本和 Linux 系統版本(尤其是內核版本)不匹配,導致安裝的?open-vm-*
?系列軟件包不能正常工作。這種情況可以嘗試更新 VMware 軟件到最新版本,或者查看官方文檔,了解對應的軟件包適配情況,也可以嘗試升級 Linux 系統的內核(不過升級內核要謹慎,可能影響其他功能 ),或者更換其他版本的?open-vm-tools
?相關軟件包(比如有的系統用?open-vm-tools
?基礎包配合其他組件也能實現功能 )。
七、總結
通過以上步驟,從前期在 VMware 里設置共享文件夾,到在 Linux 中檢查基礎狀態、安裝必要軟件包、進行掛載操作,再到配置開機自動掛載以及解決常見問題,就能完整實現 Linux(Ubuntu)與主機之間的 HGFS 文件共享啦。對于初學者來說,按照步驟一步步操作,遇到問題多結合錯誤提示和文中的常見問題解決方法排查,就能逐步掌握 HGFS 共享的配置與使用,后續也可以基于這種文件共享方式,更方便地在虛擬機和主機之間傳輸文件、進行開發測試等工作啦,大家快去動手試試吧!