ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VirtualBox增强功能安装全攻略:解决鼠标卡顿、分辨率与剪贴板失效

VirtualBox增强功能安装全攻略:解决鼠标卡顿、分辨率与剪贴板失效

用过 VirtualBox 的人都有一个共同体验:装完虚拟机,第一件事是下一个系统镜像,第二件事是装软件,第三件事——一定会被鼠标"弹进弹出"、屏幕分辨率卡在 800×600、复制粘贴完全失效这几个问题折磨到怀疑人生。

问题根源不在这台虚拟机本身,而在于你没有安装 VirtualBox 的增强功能(Guest Additions)。这玩意儿才是让虚拟机真正"活"起来的关键组件。增强功能装好之后,宿主机和虚拟机之间的文本、图片可以直接互相复制粘贴,虚拟机窗口可以自由拉伸,鼠标不再被锁死在虚拟机里,共享文件夹也能用了。说白了,不装增强功能的虚拟机,只能说是一个能开机的大盒子;装完之后,这个盒子才真正变成一台"可以用"的电脑。

这篇文章我把整个安装过程、原理和踩坑点一次性讲清楚,涵盖 Windows 客户机和 Linux 客户机两条路线,顺便把共享粘贴板的配置逻辑和常见故障排查方法整理到位。无论你是刚接触 VirtualBox 的小白,还是被"复制不进虚拟机"逼疯的老手,都能在这里找到对应的解法。

1. 为什么非装增强功能不可:没有它,你的虚拟机就是半残废

很多人刚开始用 VirtualBox 时,第一反应是"这软件怎么这么难用"。鼠标一移出虚拟机窗口就被"捕获",必须按一下右 Ctrl 键才能释放;虚拟机屏幕分辨率永远是那个保守的 4:3 老面孔,怎么也调不高;想从网页复制一段命令粘贴到虚拟机里,结果发现根本粘贴不进去。

这些体验上的障碍,全部指向同一个原因:客户机操作系统里没有安装 VirtualBox 提供的"催化剂"——增强功能。作为一个经常折腾虚拟化环境的人,我可以说一句很直白的话:不装增强功能的 VirtualBox 虚拟机,基本没法正常用于日常开发和办公,充其量只是启动一下看看界面。

1.1 增强功能到底管哪些事——先说清楚它值不值得装

增强功能本质上是一组驱动和后台服务程序的集合,它运行在虚拟机内部,负责把宿主机和虚拟机之间的硬件抽象层"打通"。VirtualBox 以二进制文件形式模拟了 CPU、内存、硬盘、网卡这些基础硬件,但对鼠标、显卡、剪贴板、文件夹共享这类"高频交互硬件",默认并不会做精细的适配,需要增强功能来补位。

具体到你能感受到的变化,主要有四个:

  • 鼠标指针无缝切换。安装前,鼠标被锁在虚拟机窗口里,移动鼠标时指针被限制在窗口区域内,需要按热键才能释放回宿主机。安装后,鼠标可以在两个系统之间自由进出,不需要任何按键操作,体验上和打开一个普通桌面软件没什么区别。
  • 屏幕分辨率自适应。安装后,VirtualBox 会从客户机里读到显示器的真实分辨率。你拉大虚拟机窗口,客户机的桌面分辨率会跟着变;你切到全屏模式,画面也会自动铺满屏幕,不再有黑边和拉伸变形。
  • 共享粘贴板。这是本文的核心主题之一。装好增强功能后,你可以在宿主机里复制一段文字,然后直接在虚拟机里 Ctrl+V 粘贴进去,反过来也一样,可以实现单向或双向的剪贴板共享。对经常在宿主机和虚拟机之间传递命令、代码、链接的人来说,这个功能省掉的时间和烦躁感都相当可观。
  • 共享文件夹与拖放支持。增强功能里还包含了文件夹共享模块(vboxsf),可以让虚拟机直接读取宿主机上的一个目录,像访问本地磁盘一样方便。拖放功能也支持在宿主机和虚拟机之间拖拽文件,配置得当后,传文件几乎可以告别"先传到网盘再下载"这种绕路的操作。

如果从技术实现的角度再往下挖一层,增强功能里还包含时钟同步组件、3D 加速模块、无缝模式(Seamless Mode)支持等。时钟同步可以防止虚拟机关机后系统时间大幅漂移,3D 加速则让虚拟机里的图形界面和轻量级 3D 应用更流畅。这些都属于"装上之后你可能感知不明显,但拆掉之后马上觉得难受"的组件。

1.2 不装增强功能的麻烦:鼠标、分辨率、复制粘贴全受限

我见过不少朋友在论坛上吐槽"VirtualBox 装完 Ubuntu 进不去桌面""VM 里分辨率太低改不了",结果逐一排查下来,大部分都卡在增强功能没装或者没装对。

拿分辨率来说,这是一个最容易暴露问题的环节。VirtualBox 在客户机系统里模拟的标准显卡是"VBoxVGA",在没有增强功能驱动时,它只能提供非常保守的兼容性分辨率,比如 800×600 或者 1024×768。Windows 客户的"显示设置"里虽然列了很多分辨率选项,但你选了高级选项之后,系统依然不会往上去,因为显卡驱动没有把真实的分辨率能力暴露给操作系统。装好增强功能后,VBox 虚拟显卡会把"可调节范围"交给系统,这时候分辨率列表才会变得丰富,窗口拖动时分辨率也会自动跟随变化,也就是所谓的"Auto-Resize Guest Display"功能。

鼠标问题就更好理解了。虚拟机的鼠标输入本质上需要"捕获"你移动鼠标的位置,并把它转换成客户机内部的输入信号。没有增强功能时,VirtualBox 只能靠"独占鼠标"的方式工作:鼠标在窗口内移动,就被虚拟机捕获;鼠标移出窗口边界,VirtualBox 根本感知不到。有了增强功能里的鼠标集成模块,系统会通过一个虚拟 HID 设备直接读取绝对鼠标坐标,所以移动不再需要捕获,自然也就不存在"锁死"和"用按键释放"的问题了。

至于复制粘贴,这是绝大多数用户安装增强功能时最初的目的,也是"宿主和客户机之间最简单也最刚需的交互"。它的底层原理是:增强功能在宿主机侧和客户机侧各运行一个后台进程,宿主机侧的进程监听宿主机的剪贴板变化,客户机侧的进程监听客户机的剪贴板变化,两者通过 VirtualBox 的虚拟通道通信,把剪贴板内容同步到另一侧。一旦这个通信通道没建立起来(也就是增强功能没装好),不管你在设置里怎么勾选"共享粘贴板",它都不会有任何反应。这也是很多新手卡在"明明选了双向却复制不了"的根本原因。

2. 安装前的准备:宿主机、客户机和依赖检查

增强功能的安装过程不算复杂,但它有一个前置条件常常被忽略:客户机系统必须和 VirtualBox 主程序版本匹配。这一点要特别提醒,因为很多人下载虚拟机镜像很积极,却对 VirtualBox 版本变化不上心,结果安装增强功能时报出五花八门的错误。

2.1 适配的 VirtualBox 版本与客户机系统要求

先明确一件事:增强功能的安装包不是独立散装的,它是随 VirtualBox 主程序一同发布的。也就是说,你安装 VirtualBox 7.0.x 之后,对应版本号的增强功能 ISO 已经存在于主程序目录里,并不需要额外单独下载。

版本匹配的规则很简单:增强功能必须和宿主机上的 VirtualBox 主版本一致。比如宿主机装的是 VirtualBox 7.0.18,那客户机里安装的增强功能也应该是 7.0.18,这一点在你后续从"设备"菜单挂载光盘映像时会自动保持一致。如果你从别处下载了一个完全不相干版本的增强功能 ISO 去挂载,或者升级了 VirtualBox 之后没有同步重装增强功能,那就很容易出现模块加载失败、剪贴板无响应等问题。

客户机系统层面,对 Windows 客户端来说基本没有什么额外的依赖要求,Win7、Win10、Win11 都能顺利安装。不过在 Windows 10/11 的新版本上,有个别安全策略会拦截驱动安装,需要留意安装时是否出现数字签名无法验证的提示(这个我放到故障排查部分细说)。

对 Linux 客户机来说,准备工作就要稍微讲究一点了。因为增强功能里有一大部分模块(vboxguest、vboxsf、vboxvideo)需要编译成内核模块加载进系统,编译过程需要客户机里有完整的编译工具链和当前内核对应的头文件。常见的报错,比如Build of the kernel module failed、Unable to find the kernel source tree,基本都是因为内核头文件没装或版本对不上导致的。

2.2 Linux 客户机需要先装的编译工具链

如果你用的是 Ubuntu 或 Debian 系列的 Linux,安装前面可以先执行下面一组命令,把编译环境提前备好:

sudo apt update sudo apt install -y build-essential linux-headers-$(uname -r) dkms

解释一下这组命令做了什么:

  • build-essential是一整套编译工具,包含 gcc、g++、make 等。VirtualBox 的增强功能脚本在编译模块时,会调用这些工具把 C 语言源码编译成内核模块(.ko文件)。
  • linux-headers-$(uname -r)是根据当前运行内核的版本号,安装与之完全匹配的头文件。不同内核版本的头文件不能混用,所以用uname -r自动获取当前版本是最稳妥的。
  • dkms(Dynamic Kernel Module Support)是一个动态内核模块管理工具,它能让模块在后续内核升级时自动重新编译,避免每次升级内核后增强功能失效。

对于 CentOS、RHEL、Rocky Linux 这类基于 Red Hat 的系统,命令变成了:

sudo yum install -y epel-release sudo yum install -y gcc make perl kernel-devel dkms

这里必须使用current模式安装kernel-devel,也就是说安装时需要解析到与当前内核一致的版本。如果你之前手动升级过内核而没有重启,那么uname -r显示的是旧内核,而kernel-devel装的是新内核的头文件,两者会对不上。碰到这种情况,最简单的办法就是重启一次虚拟机,让系统运行在最新内核上,再装kernel-devel就会一一对上了。

注意:如果你安装的是最小化安装的 CentOS(比如只装了 Core 环境的服务器版),虚拟机里可能连gcc都没有,这时候执行增强功能安装脚本会直接报gcc: not found。别慌,先补齐工具链再重新执行安装脚本就行,不需要重装系统。

总体上的原则是:先把编译环境弄干净,再去跑增强功能的安装脚本。很多时候"安装失败"的根源并不在脚本本身,而是前置依赖缺失。

3. 动手实操:Windows 客户机和 Linux 客户机装增强功能

准备工作做完,真正的高潮来了。接下来我分别拆解 Windows 客户机、Ubuntu 客户机和 CentOS 客户机三条安装路线,每一步都写得具体一点,方便你直接照着操作。

3.1 Windows 客户机:一路下一步,但有几个细节要注意

Windows 客机是安装增强功能最省心的一条路线。启动虚拟机并在 Windows 登录桌面后,在 VirtualBox 主窗口的菜单栏点"设备(Devices)",选择"安装增强功能(Insert Guest Additions CD image)"。此时 VirtualBox 会把一个虚拟光驱挂载到客户机里,Windows 系统通常会自动弹出安装引导界面。

如果 Autorun 没有自动触发,你可以在 Windows 的资源管理器里找到新出现的 CD 驱动器(一般标记为"VirtualBox Guest Additions"),双击打开,运行里面的VBoxWindowsAdditions.exe(64 位系统)或VBoxWindowsAdditions-x86.exe(32 位系统)。接下来的安装向导和普通 Windows 软件安装几乎一样,一路 Next 即可。安装过程中会短暂黑屏、分辨率切换几次,这是显卡驱动在装载生效,属正常现象。安装结束后按提示重启虚拟机,增强功能就生效了。

这里有几个细节值得单独强调:

  • 安装向导里的组件默认全选即可,其中"VirtualBox Guest Additions"主组件是必装的,其他附带的比如 Direct3D 支持、Shared Folders 驱动也都建议一并选上,省得以后要用共享文件夹时还得重装一遍。
  • Windows 7 或更老的客户机系统,如果宿主机 VirtualBox 版本较新,安装时可能提示"SCC"或者"驱动未签名"之类的兼容性问题。原因是新版 VirtualBox 对老系统的驱动兼容策略有调整。遇到这种情况时,可以先在 Windows 客户机里安装所有系统更新,尤其是"重要更新"里的驱动程序更新,因为 Windows 7 在后续补丁里增强了驱动签名校验的兼容性。装完更新再重试增强功能安装,大部分问题能解决。
  • 装完增强功能之后,Windows 客户机右下角任务栏会多出一个 VirtualBox Guest Additions 的小图标,你可以右键退出或查看版本信息。这个图标不是摆设,它对应一个管理服务,剪贴板、共享文件夹、时间同步都依赖这个后台服务在跑。

3.2 Ubuntu/Debian 客户机:挂载 ISO 后跑脚本

Linux 客机的安装流程比 Windows 多两步:挂载光盘镜像、执行安装脚本。我用 Ubuntu 22.04 作为示例,Debian 系列操作完全一致。

首先,确保虚拟机处于开机状态,并且你有一个能执行sudo的普通用户账号。然后,在 VirtualBox 主窗口再次点击"设备 → 安装增强功能"。这时在 Ubuntu 的桌面文件管理器里会看到一个名为VBox_GAs_7.x.x的光盘图标,它已经被加载为块设备/dev/cdrom。

如果桌面没有自动挂载,或者你在 server 版(无桌面)环境里,需要手动挂载。先执行:

sudo mkdir -p /mnt/cdrom sudo mount /dev/cdrom /mnt/cdrom

然后进入挂载目录,运行安装脚本:

cd /mnt/cdrom sudo ./VBoxLinuxAdditions.run

脚本执行时会先检查依赖,然后开始编译并安装内核模块。这个过程会有大量编译日志刷屏,只要末尾没有异常退出,就算成功了。脚本结束后,重启虚拟机:

sudo reboot

重启后再看看 VM 窗口能不能自由调整大小、鼠标能不能随意进出、宿主机复制的文字能不能粘贴到虚拟机里。如果这些都正常,说明安装成功。

有个细节要多说一句:安装脚本如果检测到客户机里没有桌面环境,它会只安装内核模块,不安装 X11/VirtualBox 显示服务相关的组件。对于 server 版的 Ubuntu 来说这完全够用,因为共享粘贴板功能在纯命令行环境下也可以用了。但对于桌面版用户,脚本执行时如果系统缺少gcc或者内核头文件,编译阶段会报错,把第 2 节列举的依赖装全再重试即可。

3.3 CentOS/RHEL 客户机:搞定内核头文件和缺失依赖

CentOS 系列装增强功能和 Ubuntu 的最大差异,在于默认安装源里没有那么多预装工具,而且默认 SELinux 策略可能对内核模块加载有一定限制。操作流程上,挂载 ISO 和跑脚本跟 Ubuntu 一样,但前置依赖必须检查到位。

假设你用的是 CentOS 7 或 8,第一步先安装增强功能所需的编译环境和内核开发包:

sudo yum install -y gcc make perl kernel-devel

有些精简系统还会缺bzip2、tar等基础解压工具,而增强功能安装脚本在解压源码包时需要它们。保险起见,可以把这些也一并装上:

sudo yum install -y bzip2 tar

确认kernel-devel版本和当前内核一致:

rpm -qa | grep kernel-devel uname -r

如果两个输出不一致,你需要把内核开发包升级到对应当前内核的版本。比如当前内核是3.10.0-1160.el7.x86_64,而kernel-devel显示的是别的版本,就执行:

sudo yum install -y kernel-devel-$(uname -r)

注意,内核开发包如果找不到对应版本号,可能是因为 yum 源里的索引没刷新。先跑一次sudo yum update或者sudo yum makecache,再尝试安装。

依赖就绪后,挂载光盘并执行安装脚本的方法和 Ubuntu 一模一样。CentOS 下有一个操作习惯需要强调:千万别在yum update自动升级内核之后,不方便重启就继续装增强功能。因为安装脚本编译模块时会去/usr/src/kernels/下面找当前运行内核的源码目录,新旧内核版本不一致直接导致编译失败。正确操作是升级完内核先重启,让系统跑在新内核上,再安装增强功能。这和我之前说的"先重启再装增强功能"是同一个道理。

4. 共享粘贴板:双向剪贴板设置与使用

增强功能装好之后,共享粘贴板只是一个下拉菜单的事。但这个"简单"的功能,其实藏了两个容易掉坑的地方:方向设置和 Linux 下的剪贴板依赖。我拆开来讲。

4.1 设置"双向"模式:搞清楚单向和双向到底是什么

在 VirtualBox 主窗口,选择正在运行的虚拟机,点击菜单栏"设备 → 共享剪贴板(Shared Clipboard)",你会看到四个选项:禁用(Disabled)、宿主到客户机(Host to Guest)、客户机到主机(Guest to Host)、双向(Bidirectional)。默认是"禁用"。

简单理解一下这几种模式的实际含义:

  • 宿主到客户机:只能把宿主机复制的内容粘贴到虚拟机里。适合"我只需要把外部资料传进去"的典型场景。
  • 客户机到主机:只能把虚拟机里复制的内容粘贴到宿主机。适合在虚拟机里复制代码、日志,然后带到宿主机的编辑器里处理。
  • 双向:两边都能复制粘贴,不做任何方向限制。这是绝大多数人实际的选择,也是日常使用中最省心的模式。

设置的步骤就是下拉菜单里点一下"双向",没有更多操作了。如果你装了增强功能,但菜单里没有反应,那问题通常出在客户机内部,我把排查方案放在下一节。

需要特别提醒的是,共享剪贴板共享的是"文本和图片"这类常规剪贴板数据,并不会共享文件。比如你在宿主机里按 Ctrl+C 复制了一个文件,然后在虚拟机里按 Ctrl+V,并不会出现这个文件被粘贴进虚拟机的情况。文件的跨系统传输要用拖放功能或共享文件夹来完成,这一点很多人第一次用都会困惑。

4.2 Linux 客户机剪贴板不生效:xclip/xsel 解决方案

Linux 客户机装完增强功能、设置了双向共享,却仍然复制粘贴不了,这是被问得最多的问题之一。原因在于 Linux 的剪贴板实现和 Windows 不一样,桌面环境里常见的是"X11 selections"机制,而 VirtualBox 的剪贴板服务依赖客户机侧能够访问剪贴板内容。

在 WSL 和无桌面的 server 版 Linux 环境中,剪贴板功能相对简单,大多数情况没有问题。但在带 GNOME/KDE 桌面的 Ubuntu、Fedora 等系统里,有时 VirtualBox 后台服务无法正确读取剪贴板内容,表现为从宿主机复制内容到虚拟机粘贴是空的,或者反过来一样无效。

解决方法是安装xclip或xsel工具,它们是 X11 剪贴板命令行接口,VirtualBox 客户机服务在读取或写入剪贴板时会尝试通过它们来操作:

sudo apt install -y xclip xsel

CentOS 系列:

sudo yum install -y xclip xsel

装完重启一次虚拟机,让服务重新加载,剪贴板基本就恢复正常了。这里面的原理我简单说一下:X11 系统里剪贴板内容并不是"存了一份副本",而是由一个进程"持有"再提供给其他程序读取。如果持有剪贴板内容的程序退出,内容就丢了。VirtualBox 客户机服务很依赖这套机制通过工具来和剪贴板对接,而xclip/xsel就是最通用的桥接工具。

如果你用的是 Wayland 显示协议的 Linux 发行版(比如 Ubuntu 22.04 的 GNOME 默认桌面),情况会更微妙一些。Wayland 在安全模型上限制了后台服务读取全局剪贴板的权限,VirtualBox 的剪贴板共享可能因此失效。目前最省事的办法是从系统的登录管理器选择"GNOME on Xorg"会话登录,以 X11 方式运行桌面环境,剪贴板共享就能正常工作了。这个限制是协议层面的,不是 VirtualBox 单方面能绕开的,因此理解原因之后选择会话就能避坑。

5. 常见故障排查与实用建议

装了无数次增强功能,我几乎把能踩的坑都踩了一遍。这一节我把最常见的问题、现象和解决思路完整整理出来。如果你在操作中碰到了跟文章对不上的问题,也可以对照这个清单逐条排查,往往问题就藏在某个不起眼的细节里。

5.1 增强功能安装失败:黑屏、模块加载、编译报错

我把典型的故障现象和对应解法整理成一张表,你按图索骥就行:

故障现象可能原因解决办法
安装脚本提示build failed或kernel module failed to load缺少内核头文件或编译工具按第 2 节补齐build-essential/kernel-devel,确认版本与uname -r一致
VBoxLinuxAdditions.run运行后无任何输出脚本权限问题或未安装perl先bash VBoxLinuxAdditions.run而不是./执行,并安装perl
装好后分辨率依然无法调整模块加载失败,或客户机没有重启执行lsmod | grep vboxvideo看看模块是否加载,没有就重装;重启虚拟机
装好后虚拟机黑屏无法进入桌面Secure Boot 阻止了模块加载(常见于 Windows 11 和部分 Linux 发行版)关闭虚拟机对应的 Secure Boot 选项,或者在客户机中给模块签名
增强功能安装后,虚拟机启动非常慢内存分配不足或与客户机系统不兼容检查虚拟机内存和显存设置,把显存提高到 128 MB 以上

Secure Boot 这个问题值得单独多说几句。现在很多 Linux 发行版默认开启 UEFI Secure Boot,而 VirtualBox 增强功能编译出来的内核模块并没有经过合法的密钥签名,因此被系统拒绝加载。如果你是在 UEFI 模式下安装的 Linux,而且开机自检时能看到 Secure Boot 相关的提示,那就打开虚拟机的"设置 → 系统 → 主板",把"启用 EFI"相关的 Secure Boot 选项关掉,或者使用 MOK(Machine Owner Key)对模块进行签名。签名过程比较繁琐,对普通用户来说直接关闭 Secure Boot 是最省心的选择。

5.2 剪贴板不工作:检查项与命令逐条排掉

共享剪贴板失灵,按下面顺序逐项检查,基本能定位到问题:

第一步,确认增强功能确实装好了。在客户机里打开终端,执行:

lsmod | grep vboxguest

有输出,说明内核模块已加载;没输出,说明增强功能没有正确生效,需要重新安装。Windows 客户机则在"设备管理器 → 系统设备"里查看是否存在"VirtualBox Guest"设备。

第二步,确认 VirtualBox 全局设置和虚拟机设置都把共享剪贴板设为"双向"。有些时候你之前在全局设置(File → Preferences → Input)里设过,但单独某个虚拟机的设置覆盖了全局配置,导致这个虚拟机仍然禁用。这时以当前虚拟机的"设备 → 共享剪贴板"为准重新选择一次即可。

第三步,检查客户机里的剪贴板辅助服务是否在运行。Linux 客户机执行ps aux | grep VBoxClient,正常会看到VBoxClient --clipboard相关的进程;如果进程没起来,执行:

VBoxClient --clipboard

再测试复制粘贴。有些桌面环境下这个服务需要等桌面完全加载后才启动,所以如果刚进系统就测试发现不工作,可以等几秒再试。

第四步,检查是否缺xclip/xsel。这个我在 4.2 节已经详细说过了,对各版本的 Linux 发行版都建议补装上。

第五步,如果上面都排查过仍不行,试着重启虚拟机和宿主机上的 VirtualBox 服务。Windows 宿主机可以在任务管理器里结束所有VBoxSVC.exe进程,然后重新打开 VirtualBox。VBoxSVC是 VirtualBox 的主服务进程,偶尔因为版本升级残留导致剪贴板通道异常,重启这个进程就能刷新连接。

5.3 顺手做完的三件事:拖放、缩放和共享文件夹

既然增强功能都装好了,我建议你顺手把这几个配套功能也一起配好,能省不少事。

第一件事:开启拖放支持。在 VirtualBox 菜单"设备 → 拖放(Drag and Drop)"里选择"双向"。这之后,你可以直接从宿主机桌面把一个文件拖进虚拟机窗口里。注意,拖放也是基于增强功能的,方向设置同样有"宿主到客户机、客户机到主机、双向"三种,日常用双向最省心。

第二件事:安装增强功能后如果虚拟机窗口被拉伸时桌面没有自动缩放,你可以按一下"宿主键 + C"切换为"无缝模式"(宿主键和你在 VirtualBox 全局设置里设置的组合键一致,默认是右 Ctrl)。无缝模式下,虚拟机的应用程序窗口会直接浮现在宿主机桌面上,完全看不出是跑在虚拟机里的。这个模式特别适合那种"只想用 Linux 里的某个 GUI 软件、又不想在宿主机装"的场景。

第三件事:配置共享文件夹。点击虚拟机窗口的"设备 → 共享文件夹 → 共享文件夹设置",添加一个宿主机目录,然后勾选"自动挂载"。Linux 客户机里这个共享目录会自动出现在/media/sf_共享名下,Windows 客户机里会多一个网络磁盘。需要提醒的一点是,Linux 客户机的用户要加入vboxsf用户组才有权限读写这个目录,操作命令是:

sudo usermod -aG vboxsf $USER

执行完后注销重新登录生效。如果你不加这个用户组,会一直看到权限不足的报错,这是很多人配置完共享文件夹后遇到的第一个坎。

结尾的几点实际体会

最后再分享几个我在多次实践中积累的习惯。第一,升级 VirtualBox 主程序后,一定要重新安装一遍客户机里的增强功能。版本不匹配是剪贴板、分辨率这些功能出现怪问题的第一嫌疑,重新安装的过程通常也就一两分钟,比花半小时排查各种疑难杂症划算得多。第二,Linux 客户机如果换了内核,增强功能的模块会被 dkms 机制自动重编,但偶尔还是有掉链子的时候。遇到升级内核后虚拟机无法启动或者功能失效,重新执行一次VBoxLinuxAdditions.run往往比翻日志更快。第三,如果你经常要在宿主机和虚拟机之间传递大量代码或文件,与其依赖剪贴板,不如直接把共享文件夹配好,把虚拟机的工作目录指向共享目录,两边数据实时同步,那才是真正的一劳永逸。

这些经验都是我在实际折腾中积累下来的,照着文章走一遍,你的 VirtualBox 虚拟机应该能脱离"半残废"状态,真正做到顺滑使用。以后有朋友再说"VirtualBox 难用",你可以很淡定地反问一句:你是不是忘了装增强功能?

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进