解决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.可以看到双向是打开的

相关推荐
chian-ocean31 分钟前
Linux线程同步实战:多线程程序的同步与调度
linux·运维·redis
杨了个杨89822 小时前
Centos系统搭建主备DNS服务
linux·运维·centos
Watink Cpper4 小时前
[Redis] Redis:高性能内存数据库与分布式架构设计
linux·数据库·redis·分布式·架构
墨染天姬4 小时前
android平台驱动开发(六)--Makefile和Kconfig简介
linux
?!7145 小时前
Socket编程之TCP套件字
linux·网络·c++·网络协议·tcp/ip
挺6的还11 小时前
15.进程间通信(一)
linux
一个不知名程序员www12 小时前
Linux基本指令/下
linux·服务器·centos
zhcong_12 小时前
LVS+Keepalived高可用群集
linux·运维·lvs
Angel Q.12 小时前
系统是win11+两个ubuntu,ubuntu20.04和ubuntu22.04,想删除ubuntu20.04且不用保留数据
linux·运维·ubuntu
JzjSunshine12 小时前
配置远程无密登陆ubuntu服务器时无法连接问题排查
linux·运维·ubuntu