一键挂载 VMware 共享目录,让虚拟机访问主机文件更简单!

一键挂载 VMware 共享目录,让虚拟机访问主机文件更简单!

📢 前言

在使用 VMware 运行 Linux 虚拟机时,如何在虚拟机中访问宿主机的共享文件夹 是许多小伙伴关心的问题。VMware 提供了共享目录功能(Shared Folders),但默认情况下,并不会自动挂载到 Linux 虚拟机上。

今天,给大家分享一个实用的 Bash 脚本 mount_vmware_shared_folders.sh,让你一键挂载共享目录,无缝访问宿主机文件,提升工作效率!

🎯 为什么要挂载 VMware 共享目录?

在 Linux 虚拟机中使用 VMware 共享目录,可以带来很多便利:

✅ 轻松访问主机文件:无需麻烦地传输文件,直接在虚拟机中操作主机的共享文件夹。

✅ 提高文件管理效率:避免频繁使用 scp、rsync 或 U 盘拷贝,减少时间浪费。

✅ 适用于开发和调试:共享项目目录,代码在宿主机和虚拟机之间自由切换。

如果你已经开启了 VMware 共享目录功能,但发现 虚拟机中 /mnt/hgfs 目录是空的,那么这个脚本就是你需要的解决方案!

📜 脚本解析:如何一步步挂载共享目录?

📌 1. 启用严格模式,确保脚本可靠运行

set -euo pipefail

👉 作用:

-e:如果命令失败,脚本会立即退出,避免后续错误。

-u:如果使用了未定义的变量,脚本会报错,避免意外错误。

-o pipefail:确保管道中的所有命令都正确执行,否则脚本会退出。

这样可以确保脚本执行时更加稳定,减少意外情况的发生。

📌 2. 定义挂载目录

MOUNT_POINT="/mnt/hgfs"

👉 作用:

VMware 共享目录通常默认挂载到 /mnt/hgfs,但有时需要手动执行挂载。

这个变量定义了共享目录的目标挂载路径,后续命令都会基于它操作。

📌 3. 检查 vmhgfs-fuse 是否已安装

if ! command -v vmhgfs-fuse &>/dev/null; then

echo "Error: vmhgfs-fuse 命令未找到,请确保已安装 open-vm-tools" >&2

exit 1

fi

👉 作用:

vmhgfs-fuse 是 VMware 提供的 FUSE(用户态文件系统)工具,它负责将共享目录挂载到 Linux 系统中。

这里通过 command -v 检查 vmhgfs-fuse 是否可用,如果未找到,则提示用户需要安装 open-vm-tools,并终止脚本执行。

💡 如何安装 open-vm-tools?

如果你遇到 Error: vmhgfs-fuse 命令未找到,可以运行以下命令安装它:

sudo apt-get update

sudo apt-get install -y open-vm-tools open-vm-tools-desktop

如果你使用的是 CentOS/RHEL,可运行:

sudo yum install -y open-vm-tools open-vm-tools-desktop

安装完成后,重新运行脚本即可!

📌 4. 创建挂载点(如果不存在)

if [ ! -d "$MOUNT_POINT" ]; then

echo "创建挂载点 $MOUNT_POINT ..."

sudo mkdir -p "$MOUNT_POINT"

fi

👉 作用:

如果 /mnt/hgfs 目录不存在,脚本会自动创建它,确保挂载点可用。

mkdir -p 作用:即使目录已存在,也不会报错,避免意外中断。

📌 5. 检查共享目录是否已经挂载

if mount | grep " on $MOUNT_POINT " &>/dev/null; then

echo "共享目录已经挂载在 $MOUNT_POINT"

exit 0

fi

👉 作用:

通过 mount | grep 判断 /mnt/hgfs 是否已被挂载,如果已挂载,则直接退出,不重复操作。

这样可以避免用户多次执行脚本时重复挂载,提高脚本的健壮性。

📌 6. 挂载共享目录

echo "正在挂载 VMware 共享目录到 $MOUNT_POINT ..."

sudo vmhgfs-fuse .host:/ "$MOUNT_POINT" -o allow_other

👉 作用:

vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

.host:/ 是 VMware 共享目录的标识,它会将所有共享的目录挂载到 /mnt/hgfs。

-o allow_other 允许其他用户访问挂载的共享目录,否则默认只有 root 能访问。

如果共享目录成功挂载,用户就可以在 /mnt/hgfs 看到宿主机的共享文件了!

📌 7. 挂载成功与失败的处理

if [ $? -eq 0 ]; then

echo "成功挂载 VMware 共享目录。"

else

echo "挂载失败,请检查 open-vm-tools 是否正确安装或配置。" >&2

exit 1

fi

👉 作用:

if [ $? -eq 0 ]; then ... 用于检测上一条命令(挂载命令)的执行状态。

如果成功,则提示用户“挂载成功”;如果失败,则给出可能的错误原因。

🚀 使用方法:一键运行,轻松挂载!

💡 只需 3 步,即可在 Linux 虚拟机中访问主机共享文件

1️⃣ 下载脚本,并赋予执行权限

chmod +x mount_vmware_shared_folders.sh

2️⃣ 运行脚本(需要 root 权限)

sudo ./mount_vmware_shared_folders.sh

3️⃣ 验证挂载是否成功

ls /mnt/hgfs

如果看到共享目录列表,说明挂载成功! 🎉

⚠️ 遇到问题?这里有解决方案!

🔹 脚本运行后,/mnt/hgfs 仍然为空?

可能的原因:

✅ 检查 VMware 设置

确保你在 VMware 中 已启用共享文件夹功能(VM > Settings > Shared Folders)。

✅ 检查 open-vm-tools 是否正确安装

dpkg -l | grep open-vm-tools

如果没有安装,请参考 📌 3. 检查 vmhgfs-fuse 是否已安装 章节进行安装。

✅ 重启虚拟机后再试

sudo reboot

🔥 总结:为何这个脚本如此实用?

✅ 一键挂载,无需手动输入命令

✅ 自动检测 VMware 环境,防止误操作

✅ 智能检查是否已挂载,避免重复挂载

✅ 适用于所有主流 Linux 发行版

🚀 适用场景:

✅ 你想要在 Linux 虚拟机中访问主机文件?

✅ 共享目录 /mnt/hgfs 没有自动挂载?

✅ 你厌倦了每次都手动挂载?

👉 用这个脚本,一行命令解决问题!

❤️ 觉得有用?别忘了点赞、关注、评论、转发! 🎉🚀

如果这篇文章对你有帮助,请点赞 👍、评论 💬、关注 ⭐ 并分享给更多朋友!

你的支持是我持续更新的最大动力,我们下期再见! 🎉🔥

相关推荐

怎么在亚马逊上注册Kindle账号?有什么要注意的?
365彩票手机版下载

怎么在亚马逊上注册Kindle账号?有什么要注意的?

📅 07-18 👁️ 7540
別嫌煩!女人為何愛抱怨「神解析」 男人傻傻聽懂沒?
365一直提款维护中

別嫌煩!女人為何愛抱怨「神解析」 男人傻傻聽懂沒?

📅 07-08 👁️ 8414
电子税务局升级后—办税人员如何绑定企业?
365一直提款维护中

电子税务局升级后—办税人员如何绑定企业?

📅 09-15 👁️ 7359
Telegram完整操作指南:清空群消息、删除信息、双向删除及电报下载详解
《镇魂街》众筹:“这条街我说了算!”
365一直提款维护中

《镇魂街》众筹:“这条街我说了算!”

📅 10-12 👁️ 2619
胡前宽为什么要何辅堂的钱?一代枭雄谁是内鬼?
365彩票手机版下载

胡前宽为什么要何辅堂的钱?一代枭雄谁是内鬼?

📅 10-26 👁️ 9272