Linux 文件共享之 HGFS 共享配置全解析

一、前言

在使用 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 共享的配置與使用,后續也可以基于這種文件共享方式,更方便地在虛擬機和主機之間傳輸文件、進行開發測試等工作啦,大家快去動手試試吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88905.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88905.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88905.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

模塊化設計賦能:定制組裝鋰電池設備的柔性生產解決方案

在鋰電池行業快速迭代的背景下,定制化需求與規模化生產之間的矛盾日益凸顯。傳統鋰電池組裝設備采用固定式架構,功能模塊高度耦合,導致設備換型周期長、兼容性差,難以適應電芯規格頻繁變化、工藝路線持續升級的市場需求。模塊化設…

Kubernetes 架構原理與集群環境部署

一:為什么需要 Kubernetes在業務開始進行容器化時,前期需要容器化的項目可能并不多,涉及的容器也并不多,此時基于 Docker 容器直接部署至宿主機也能實現基本的需求。但是隨著項目越來越多,管理的容器也會越來越多&…

JavaScript中關于環境對象的拓展

1.環境對象的定義環境對象指的是函數內的特殊變量this,this指向函數的調用者它代表當前函數的運行環境在平常我們判斷this經常用口訣誰調用它,它就指向誰,以下是幾種常見情況1. 在全局作用域中,this指向window2.在函數中&#xff…

202507中央城市工作會議

國家終于要給城市"升級系統"了!未來城市不再拼命蓋新樓,而是讓現有城區更安全、舒適、智能,且每個城市都要找到自己的特色發展路徑 2025年7月北京“中央城市工作會議”。領導人聚在一起,討論“怎么把中國城市搞得更好”…

springboot如何redis鎖

如何解決超賣問題?超賣問題:就是多個線程并發執行,目前唯一方案是加鎖。如圖:悲觀鎖其實還有數據庫的互斥鎖。悲觀鎖是最常見的樂觀鎖實現的原理:版本號:這種方案就是:扣款庫存的時候首先先查詢版本號&…

minio批量刪除對象不生效

下午在寫minio上批量刪除對象的邏輯,各種改對象名稱,各種核對代碼,發現啥都沒錯,但是刪除就是不生效。 代碼如下: from minio.deleteobjects import DeleteObjectdelete_object_list [DeleteObject("20250626/20…

如何設計實現開發自助重啟工具-01-設計篇

自助重啟系列 如何設計實現開發自助重啟工具-01-設計篇 應用部署作業-02-流程 如何實現自助重啟-03-實現篇 開發自助重啟 說明:有時候研發產線需要重啟,為了保證安全、或者說提升效率,最好有一個統一的研發自助重啟頁面。 這個功能可應…

ChatTongyi × LangChain:開啟多模態AI應用創新之門

阿里云通義實驗室推出的ChatTongyi(基于通義千問大模型)與LangChain框架的深度集成,為開發者打造了一套高效、靈活、全面的AI開發工具鏈。無論是文本對話、復雜任務自動化,還是圖像理解,這一組合都為多場景智能應用的落…

Android Studio C++/JNI/Kotlin 示例 二

MainActivity.ktpackage com.demo.learn1import android.os.Bundle import android.util.Log import androidx.activity.ComponentActivityclass MainActivity : ComponentActivity() {// 加載原生庫init {System.loadLibrary("native_code")}// 聲明原生方法// 數學…

B樹和B+樹

B樹B樹,?稱多路平衡查找樹,B樹中所被允許的孩?個數的最?值稱為B樹的階,通常?m表示。?棵m階B樹或為空樹,或為滿?如下特性的m叉樹: 1)樹中每個結點?多有m棵?樹,即?多含有m-1個關鍵字。 2…

【版本控制】Perforce Helix Core (P4V) 完全入門指南(含虛幻引擎實戰)

目錄引言第一章:認識 Perforce Helix Core1.1 什么是 Perforce?1.2 P4V 是什么?1.3 核心概念速覽1.4 為什么選擇 Perforce?1.5 與 Git 的核心區別本章總結第二章:安裝與配置2.1 安裝原則:先服務端后客戶端2…

LlamaFactory/unsloth Demo

內部叫Tuning-Factory 參數文檔https://llamafactory.readthedocs.io/zh-cn/latest/index.html 高級技巧,如加速:https://llamafactory.readthedocs.io/zh-cn/latest/advanced/acceleration.html 0.環境 conda env list conda remove --name llm --all c…

水務工程中自動化應用:EtherNet/IP轉PROFIBUS DP連接超聲波流量計

在水務工程領域,自動化技術的應用愈發廣泛。隨著工業4.0概念的普及,不同通信協議的設備之間實現高效互聯互通變得尤為關鍵。EtherNet/IP和PROFIBUS DP作為兩種常見的工業通信協議,各有優勢,在實際應用中,常需要將它們進…

網絡協議和基礎通信原理

網絡協議和基礎通信原理是理解互聯網和各種網絡應用的關鍵。讓我用通俗易懂的方式,帶你逐一深入講解這些內容。 一、基礎概念總覽 TCP/IP協議族:互聯網通信的基礎,由一組協議組成,包括TCP、IP、UDP等。HTTP協議:基于T…

T16IZ遙控器教程__遙控器與無人機對頻

文章目錄前言一、準備設備二、對頻步驟總結前言 在使用自組PX4無人機時,有的小伙伴可能會遇到遙控器無法與無人機對頻連接的問題,別擔心,這篇文章會解決它。 一、準備設備 如下圖,無人機信號接收器,與無人機。 遙控器…

pyspark中map算子和flatmap算子

在 PySpark 中,map 和 flatMap 是兩個常用的轉換算子,它們都用于對 RDD(彈性分布式數據集)或 DataFrame 中的元素進行處理,但處理方式和應用場景有所不同。下面詳細講解它們的用法和適用場景。1. map 算子功能對 RDD 或…

jenkins部署前端vue項目使用Docker+Jenkinsfile方式

文章目錄前言一、前提準備二、準備構建文件三、Jenkins中構建項目總結前言 前面通過jenkinsdocker的方式部署了若依前端vue項目,接下來接著學習使用Jenkinsfile的方式部署前端vue項目。 一、前提準備 已經安裝好centos服務器,并且安裝了jenkins和docke…

Cadence操作說明

一.allegro修改絲印字體大小的方法 1.選擇Edit–>Change,右側彈出Options選項,選擇Class : New subclass Ref Des : Silkscreen_Top,設置Text block,后面的數字代表字號的大小。菜單菜單欄選擇Setup–>Design Parameters&a…

使用Stitch來生成CrypyTrack的app程序

結果: 🧭 第一步:訪問 Stitch 平臺 打開網址:stitch.withgoogle.com使用你的 Google 賬號登錄,無需安裝任何軟件 🧱 第二步:選擇設計模式 Stitch 提供兩種模式: 標準模式&#xf…

告別繁瑣:API全生命周期管理的新范式——apiSQL

API(應用程序接口)是連接數據與服務的生命線,是數字世界的基石。然而,一個高質量API的誕生并非易事,它涉及一個漫長而復雜的全生命周期——從規劃設計到最終退役,每個環節都需要專門的工具和技能&#xff0…