血的教训
新电脑和当前电脑具有不同的平台和操作系统
- 导出 environment_name.yml 文件:
conda env export > environment.yml - 在新电脑上,利用生成的 environment_name.yml 文件复现环境:
conda env create -f environment.yml
折腾虚拟机(一定要养成创建系统还原点和定期备份注册表的好习惯 T…T)

我一直用的是 VirtualBox-7.1.6-167084-Win 版本的 VirtualBox。但是在其上安装了 ubuntu-24.04.2-desktop-amd64
运行完:
sudo apt install build-essential dkms linux-headers-$(uname -r) |
准备好了安装增强包前的编译环境后,安装了 VirtualBox 的增强包,可还是无法使用双向文件拖拽、无缝模式、共享文件夹这三大功能。

一开始该问题怀疑可能与 Ubuntu 的版本有关,于是又下载了 ubuntu-22.04.5-desktop-amd64 结果该版本安装好后竟然连 Terminal 都打不开,更别提安装增强包了。经过多次反复重装 ubuntu 后还是没解决问题。
于是我怀疑或许是 VBoxGuestAdditions.iso 增强包与 VirtualBox 版本不一致?(可能性极小)于是我抱着试一试的态度便升级了 VirtualBox 到其最新版 VirtualBox-7.1.10-169112-Win 这时还能正常安装 VirtualBox,我将它安装到了上一个版本 VirtualBox 的安装目录下(安装前未卸载上个版本)。结果用新版 VirtualBox 启动虚拟机时出现了以下错误:

我无奈,想着是不是我的 Windows11(我前一天刚从 Windows10 更新到 Windows11)和 VirtualBox 不兼容?而且我用不惯 Windows11,在文件夹中右键居然没有刷新按钮!于是我又利用官方的系统恢复回到了 Windows10。
恢复完运行虚拟机还是报以上的那个相同错误:

我只能怀疑是旧版本的 VB 的残留影响了新的 VB,我于是准备全部卸载掉重装,结果一卸载发现,卸载也报错,卸载不了 VB 了:

根据 Gemini,我怀疑是两个版本的.msi 文件互相干扰,我便尝试了解压旧版本 VB 的安装包,尝试找到.msi 文件替代不知道出了什么问题的.msi 文件,结果一解压完旧 VB 的安装程序在里面根本没找到.msi 文件。我又尝试不卸载了,直接换个安装目录,再装一遍新版,结果安装也是报和卸载同样的错误。
事情到这个地步,我顿感大事不妙,心态开始变化。
我又折腾了一通各种卸载和清理注册表的软件,那些破软件全是广告,要不就是收费太贵。下次还是用 winget 吧。
这时我心态已经爆炸了,抱着明天就去创建完系统还原点后暴力修改注册表的最糟打算,就上床睡觉了,此时已深夜了。
结果第二天又是一顿折腾,都已经创建好系统还原点了,抱着再试试的想法最后还是根据 Gemini 的建议到微软官方下载了 修复无法安装或删除程序的问题 - Microsoft 支持 疑难解答,安装和卸载故障排除程序。结果真的修复成功了,可以正常安装和卸载 VirtualBox 了。如果又天使的话那一定是 安装和卸载故障排除程序 一切又回到了折腾之初,然鹅我的``Ubuntu`还是不能用扩展包的功能…
最后附上和 Gemini 的对话记录:https://g.co/gemini/share/0e98a69490b5(VirtualBox 安装/卸载错误)
2025.11.20 更新
此次参考资料汇总:
VMware下载:https://github.com/yanghao5/VM-download
Ubantu下载:Index of /ubuntu-releases/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
Kali下载:Get Kali | Kali Linux
VirtualBox共享文件夹设置全面解析和实际操作:https://www.bilibili.com/video/BV1Lt4y1x7M4
VMware虚拟机三种网络模式:VMware虚拟机三种网络模式
VMware入门视频:https://www.bilibili.com/video/BV1bU411U7rp/
linux C socket–raw socket:https://www.bilibili.com/video/BV1b94y1W75N
黑马SSH链接虚拟机教学:https://www.bilibili.com/video/BV15N411T7nT/
之前的二手机械革命蛟龙7(1800购入)用了7个月成功报废…无奈只得含泪换了天选6pro ultra7 + 5060版本。因为是新机并恰巧赶上要在Linux环境下用row socket做计网的课程设计,所以就又开始折腾起了虚拟机…(痛苦的回忆开始攻击我了…)
因为之前的Virtual Box实在莫名其妙的Bug太多,故我吸取教训直接下了VMware Workstation Pro。但是VMware也不是什么好鸟,首先在官网下载需要注册账号、注册要填一堆东西、填完下软件还得填一堆、主要是折腾完还不立马给你下验证个账号pending了整整俩天还没结束…我忍不了——上Github!
我先下的Kali的VMware & VirtualBox pre-built版本。下好了一顿折腾结果不仅连客机增强功能都没debug完、网也连不上…于是又换Ubuntu_24.04.3一顿折腾还是一个鬼样子(我的半下午+一晚上啊啊啊啊啊啊啊)。得,还是换VirtualBox吧。VirtualBox比VMware不稳定很多,经常在启动Ubuntu时卡住。但好在它的NAT模式不用自己设置,安好了系统直接就能联网、甚至在主机软路由时可以科学上网。但是还是之前那个问题:扩展功能不太行…又折腾了一个下午除了拖拽文件的问题还是没解决,其它的问题都边查资料边解决了。
以下为具体步骤:
安装 Guest Additions:
适用版本: Ubuntu 18.04 / 20.04 / 22.04 / 24.04 都可以
功能: 全屏、自适应分辨率、共享剪贴板、拖拽文件、共享文件夹等
在 Ubuntu 终端输入:
sudo apt update |
Guest Additions 需要编译内核模块,因此必须装这些依赖(这一步是最常见的坑)。
在虚拟机窗口的菜单中:
设备(Devices) |
或者中文版:
设备 |
📌 如果提示下载 ISO,点“下载”即可。
你会看到桌面出现一个类似 VBox_GAs_7.x.x 的 CD 图标。
安装完后运行 Guest Additions 安装脚本:
方式 A(最简单)
在 CD 图标上右键 → Run Software 或 运行软件
方式 B(终端运行脚本)
打开终端,执行:
cd /media/$USER/VBox_GAs_*/ |
运行几分钟后若显示:
Installing the Window System drivers ... |
然后没有报红色大错误 → 就成功。
重启系统:
sudo reboot |
五、验证是否安装成功
1.分辨率是否能自动拉伸?
拖动虚拟机窗口 → 分辨率是否自动变化?
2.查看内核模块是否已加载:
lsmod | grep vboxguest |
如果有类似:
vboxguest xxxx ... |
就是成功。
常见错误与解决
❌ 1. 运行脚本时报错:
Building kernel modules ...failed原因:没装 build-essential / headers
解决:回到第一步重新安装依赖
❌ 2. 没看到 VBox_GAs 镜像
按:
设备 → Insert Guest Additions CD Image...若仍没有,说明 ISO 下载失败 → 重新下载。
❌ 3. Wayland 桌面导致拖拽失效(Ubuntu 22.04+ 常见)
改回 Xorg:
登录界面左下角选择:
Ubuntu on Xorg
我之前怎么弄都不能自动随窗口变化调整分辨率大小就是没用Xorg版的Ubuntu
Ubuntu 中的 Wayland 和 Xorg 是两套 图形显示系统(Display Server),负责处理键鼠输入、窗口显示、绘图等。
它们的关系可以理解为:
Xorg = 老、但兼容性最好
Wayland = 新、更安全、更流畅,但兼容性不够
可以自动调整分辨率后在VirtualBox的相关设置中开启双向共享文件夹、双向剪贴板共享后双向剪贴板共享应该可以直接用了,而双向共享文件夹需要再配置一下。具体的内容看视频,这里把用到的命令和注意点总结一下:
命令:
sudo su |
视频中打开fstab文件并修改后的例子:

至此共享文件夹便已大功告成。
注意:1.临时共享文件夹在虚拟机关闭或重启后会消失;2.固定(permanent)共享文件不会消失;3.要用哪个文件夹就挂载哪个文件夹
2025.11.21更新:
今天在VMware中安装了Ubuntu并配置了VScode和row socket开发环境。
bash中输入以安装VMtools:
sudo apt update |
安装完成后在虚拟机中设置开启拖放和复制黏贴后便可正常使用,但是和VirtualBox相比拖放只能从主机到虚拟机中反过来却不行(但VMware各方面的稳定性真是比VirtualBox强太多了)。

接着开启共享文件夹,和在VirtualBox中一样开启后需要挂载:
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=$(id -u),gid=$(id -g) |
若要开机自动挂载,同样要在/etc/fstab,添加一行:.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000 0 0
然后执行:
sudo systemctl daemon-reload |
注意:uid=1000,gid=1000 替换为你当前用户的 UID 和 GID(id 命令可以查看)。 现代 VMware + Ubuntu 22.04+ 时,有时 fstab 挂载会报 hint,这是正常的,只要 vmhgfs-fuse 命令能挂载即可。

