一、挂载前的前提准备
得先把基础条件搭好,不然挂载会失败:
-
安装VMware工具 (虚拟机和宿主机的"连接器")
打开终端,执行命令安装:bashsudo apt update && sudo apt install open-vm-tools open-vm-tools-desktop -
宿主机开启共享文件夹
- 打开VMware软件,选中当前虚拟机→点击「虚拟机设置」
- 切换到「选项」标签→选择「共享文件夹」
- 点击「添加」→选择你要共享的宿主机目录→勾选「启用此共享」
二、手动临时挂载(重启后失效)
适合临时用,步骤如下:
-
创建挂载点目录 (如果
/mnt/hgfs不存在):bashsudo mkdir -p /mnt/hgfs -
执行挂载命令 (注意替换
你的共享文件夹名):
把"你的共享文件夹名"换成你在宿主机里设置的共享目录名称,比如你共享的文件夹叫my_files,就这么写:bashsudo vmhgfs-fuse .host:/my_files /mnt/hgfs -o allow_other
三、自动挂载(开机自动生效)
如果想每次开机不用手动挂,就配置自动挂载:
-
编辑系统挂载配置文件
/etc/fstab:bashsudo nano /etc/fstab -
在文件末尾添加一行(同样替换
你的共享文件夹名):.host:/你的共享文件夹名 /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0 -
保存退出(按
Ctrl+O→回车→Ctrl+X),然后让配置生效:bashsudo mount -a
四、验证是否挂载成功
执行命令查看/mnt/hgfs目录,能看到宿主机共享的文件就成功了:
bash
ls /mnt/hgfs
五、适配 Ubuntu/Debian 系虚拟机的一键挂载共享文件夹脚本
下面是适配Ubuntu/Debian系虚拟机的一键挂载共享文件夹脚本,包含"手动临时挂载+可选自动挂载",复制就能用,步骤超简单:
第一步:创建并编辑脚本
-
打开终端,执行命令创建脚本文件:
bashnano vmware_share_mount.sh -
把下面的脚本内容全选复制粘贴进去:
bash
#!/bin/bash
# VMware虚拟机共享文件夹一键挂载脚本(Ubuntu/Debian专用)
# 作者:豆包编程助手
# 使用前请替换 【你的共享文件夹名】 为实际名称(宿主机设置的共享名)
# 检查是否以root权限运行
if [ $EUID -ne 0 ]; then
echo "⚠️ 请用sudo运行此脚本!示例:sudo bash vmware_share_mount.sh"
exit 1
fi
# 定义核心变量(★★★ 必须修改这里 ★★★)
SHARE_NAME="你的共享文件夹名" # 替换成宿主机设置的共享文件夹名称
MOUNT_POINT="/mnt/hgfs" # 挂载点,默认不用改
# 步骤1:安装依赖(open-vm-tools)
echo "🔧 正在安装/检查VMware工具依赖..."
apt update > /dev/null 2>&1
apt install -y open-vm-tools open-vm-tools-desktop > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "✅ VMware工具安装/检查完成"
else
echo "❌ VMware工具安装失败,请手动执行:sudo apt install open-vm-tools open-vm-tools-desktop"
exit 1
fi
# 步骤2:创建挂载点
echo "📁 正在创建挂载点 $MOUNT_POINT..."
mkdir -p $MOUNT_POINT
if [ $? -eq 0 ]; then
echo "✅ 挂载点创建成功"
else
echo "❌ 挂载点创建失败,请检查目录权限"
exit 1
fi
# 步骤3:手动临时挂载
echo "🔗 正在挂载共享文件夹 $SHARE_NAME 到 $MOUNT_POINT..."
umount $MOUNT_POINT > /dev/null 2>&1 # 先卸载旧挂载(避免冲突)
vmhgfs-fuse .host:/$SHARE_NAME $MOUNT_POINT -o allow_other
if [ $? -eq 0 ]; then
echo "✅ 手动挂载成功!"
else
echo "❌ 手动挂载失败!请检查:"
echo " 1. 宿主机是否已启用共享文件夹(VMware→虚拟机设置→选项→共享文件夹)"
echo " 2. SHARE_NAME 是否和宿主机共享名一致(区分大小写)"
exit 1
fi
# 步骤4:可选 - 配置开机自动挂载
read -p "🔍 是否配置开机自动挂载?(y/n,默认n):" AUTO_MOUNT
if [ "$AUTO_MOUNT" = "y" ] || [ "$AUTO_MOUNT" = "Y" ]; then
# 先备份fstab
cp /etc/fstab /etc/fstab.bak_vmshare
# 写入自动挂载配置
echo ".host:/$SHARE_NAME $MOUNT_POINT fuse.vmhgfs-fuse allow_other 0 0" >> /etc/fstab
# 验证配置是否生效
mount -a
if [ $? -eq 0 ]; then
echo "✅ 自动挂载配置完成!重启后仍生效"
else
# 配置出错则恢复备份
cp /etc/fstab.bak_vmshare /etc/fstab
echo "❌ 自动挂载配置失败,已恢复fstab备份"
fi
else
echo "ℹ️ 跳过自动挂载配置,仅本次开机有效"
fi
# 步骤5:验证挂载结果
echo "📋 挂载结果验证:"
ls -l $MOUNT_POINT | head -5
echo "====================================="
echo "🎉 操作完成!共享文件夹路径:$MOUNT_POINT"
第二步:修改关键参数
找到脚本里这一行:
bash
SHARE_NAME="你的共享文件夹名"
把你的共享文件夹名替换成宿主机在VMware里设置的共享文件夹名称 (比如你共享的文件夹叫win_share,就改成SHARE_NAME="win_share")。
改完后按 Ctrl+O → 回车 → Ctrl+X 保存退出。
第三步:运行脚本
-
给脚本添加执行权限:
bashchmod +x vmware_share_mount.sh -
用root权限运行(必须加sudo):
bashsudo bash vmware_share_mount.sh
脚本运行说明
- 运行后会自动安装依赖、创建挂载点、执行手动挂载;
- 会询问是否配置"开机自动挂载",输入
y则自动修改/etc/fstab,重启不失效;输入n则仅本次开机有效; - 最后会列出挂载目录的前5个文件,验证是否挂载成功。
如果运行中提示失败,大概率是SHARE_NAME填错了,或者宿主机没开启共享文件夹,核对一下就能解决~