VMware虚拟机(以Ubuntu为例)的共享文件夹挂载操作

一、挂载前的前提准备

得先把基础条件搭好,不然挂载会失败:

  1. 安装VMware工具 (虚拟机和宿主机的"连接器")
    打开终端,执行命令安装:

    bash 复制代码
    sudo apt update && sudo apt install open-vm-tools open-vm-tools-desktop
  2. 宿主机开启共享文件夹

    • 打开VMware软件,选中当前虚拟机→点击「虚拟机设置」
    • 切换到「选项」标签→选择「共享文件夹」
    • 点击「添加」→选择你要共享的宿主机目录→勾选「启用此共享」

二、手动临时挂载(重启后失效)

适合临时用,步骤如下:

  1. 创建挂载点目录 (如果/mnt/hgfs不存在):

    bash 复制代码
    sudo mkdir -p /mnt/hgfs
  2. 执行挂载命令 (注意替换你的共享文件夹名):
    把"你的共享文件夹名"换成你在宿主机里设置的共享目录名称,比如你共享的文件夹叫my_files,就这么写:

    bash 复制代码
    sudo vmhgfs-fuse .host:/my_files /mnt/hgfs -o allow_other

三、自动挂载(开机自动生效)

如果想每次开机不用手动挂,就配置自动挂载:

  1. 编辑系统挂载配置文件/etc/fstab

    bash 复制代码
    sudo nano /etc/fstab
  2. 在文件末尾添加一行(同样替换你的共享文件夹名):

    复制代码
    .host:/你的共享文件夹名 /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0
  3. 保存退出(按Ctrl+O→回车→Ctrl+X),然后让配置生效:

    bash 复制代码
    sudo mount -a

四、验证是否挂载成功

执行命令查看/mnt/hgfs目录,能看到宿主机共享的文件就成功了:

bash 复制代码
ls /mnt/hgfs

五、适配 Ubuntu/Debian 系虚拟机的一键挂载共享文件夹脚本

下面是适配Ubuntu/Debian系虚拟机的一键挂载共享文件夹脚本,包含"手动临时挂载+可选自动挂载",复制就能用,步骤超简单:

第一步:创建并编辑脚本

  1. 打开终端,执行命令创建脚本文件:

    bash 复制代码
    nano vmware_share_mount.sh
  2. 把下面的脚本内容全选复制粘贴进去:

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 保存退出。

第三步:运行脚本

  1. 给脚本添加执行权限:

    bash 复制代码
    chmod +x vmware_share_mount.sh
  2. 用root权限运行(必须加sudo):

    bash 复制代码
    sudo bash vmware_share_mount.sh

脚本运行说明

  1. 运行后会自动安装依赖、创建挂载点、执行手动挂载;
  2. 会询问是否配置"开机自动挂载",输入y则自动修改/etc/fstab,重启不失效;输入n则仅本次开机有效;
  3. 最后会列出挂载目录的前5个文件,验证是否挂载成功。

如果运行中提示失败,大概率是SHARE_NAME填错了,或者宿主机没开启共享文件夹,核对一下就能解决~

相关推荐
ZhongruiRao1 小时前
vscode windows免密登录Linux服务器教程 解决设置后仍需要输入密码的问题
linux·服务器·vscode
Evan芙1 小时前
ifconfig 命令详解
linux·网络·ubuntu
XH-hui1 小时前
【打靶日记】VulNyx 之 Responder
linux·网络安全·vulnyx
赖small强1 小时前
【Linux驱动开发】 Linux `/proc` 虚拟文件系统深度解析与实战指南
linux·驱动开发·/proc·/proc/sys`·/proc/net
HalvmånEver1 小时前
Linux:进程创建(进程控制一)
linux·运维·服务器·学习·进程·fork
陈聪.1 小时前
MySQL全平台安装指南:Windows与Linux详细教程
linux·windows·mysql
卡次卡次12 小时前
注意点:多线程与多进程与在并行读-->并行cpu或者GPU处理--->并行写 的架构中,如何选择
linux·网络·python
vortex52 小时前
基于 Apache 规则拦截目录扫描器请求:实测与配置指南
linux·网络安全·apache
摸鱼仙人~2 小时前
Ubuntu系统安装VMware Tools 完整流程(解压→安装)
linux·运维·ubuntu