解决VirtualBox中虚拟机(ubuntu)与主机(windows)之间互相复制粘贴(文本)
一.开始的设置
1.在VirtualBox中打开设置,常规中修改主机与虚拟机交互设置
2.虚拟机关闭状态下,存储中选中控制器SATA,勾选‘使用主机输入输出’
3.选中操作系统对应的虚拟文件,.vdi文件,勾选右边的固态驱动器。
4.启动虚拟机,右ctrl+c,切换到全屏模式,使菜单栏出现。点击安装增强功能。
5.打开文件管理,里面有增强功能的程序,点击运行软件。
6.需要认证
7.出现错误,bzip2没找到
8.运行sudo apt install -y bzip2
9.运行软件,还是报错,遇到的 touch: 无法 touch ‘/var/lib/VBoxGuestAdditions/skip-6.11.0-19-generic’: 没有那个文件或目录 这个错误,通常意味着安装程序想为一个特定版本的内核(这里是 6.11.0-19-generic)创建一个标记文件,但相关的目录结构可能不存在,或者这个内核版本可能不是你当前正在运行的。
更关键的信息是:
- This system appears to have a version of the VirtualBox Guest Additions already installed.
- If you wish to replace it with this version, please do not continue with this installation now, but instead remove the current version first, following the instructions for the operating system.
这说明我的 Ubuntu 24.04 系统可能已经通过 apt 包管理器安装了 Guest Additions 的一部分(比如 virtualbox-guest-utils, virtualbox-guest-x11 等)。直接从 VirtualBox 的 ISO 镜像运行安装脚本可能会与系统包管理器安装的版本冲突。
二.问题解决,成功文本双向复制粘贴
1.解决:
尝试卸载所有与 virtualbox-guest- 相关的包并清理不再需要的依赖:
sudo apt-get purge virtualbox-guest-*
sudo apt-get autoremove
2.重启虚拟机,确保旧的模块被卸载。
sudo reboot
3.在已经安装 bzip2 的基础上,需要确保其他构建工具和内核头文件存在。
sudo apt update
sudo apt install build-essential dkms linux-headers-$(uname -r)
- build-essential: 包含编译C/C++程序所需的基本工具(如 gcc, make)。
- dkms: Dynamic Kernel Module Support,帮助在内核更新时自动重新编译内核模块。
- linux-headers- ( u n a m e − r ) (uname -r) (uname−r): 安装与你当前正在运行的内核版本匹配的头文件。 ( u n a m e − r ) (uname -r) (uname−r) 会自动替换为你的内核版本号。
4.重新运行 Guest Additions 安装程序,打开/VBox_GAs_x.y.z 文件夹 (其中 x.y.z 是版本号),黑窗口运行命令:
sudo ./VBoxLinuxAdditions.run
5.内核模块可能已经编译好了,但它们还没有被激活和加载。重启:
sudo reboot
6.效果,这样虚拟机与主机就可以双向复制文本。
三.解决拖放问题(待完善)
可以先用共享文件夹进行挂载,由于文本复制粘贴已够用,且拖放不常用,这里占时空着。
1.拖拽文件出现问题
2.可以看到双向是打开的