解决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 的基础上,需要确保其他构建工具和内核头文件存在。

bash 复制代码
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.可以看到双向是打开的

相关推荐
戴为沐16 小时前
Linux内存扩容指南
linux
zylyehuo1 天前
Linux 彻底且安全地删除文件
linux
用户805533698032 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297912 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo4 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10155 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao5 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3107 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏