
1. 为什么我最终选了 VirtualBox而不是 VMware先交代一下背景。我过去几年里反复折腾过 VMware Workstation、VirtualBox也短暂试过 Hyper-V。早期的主力其实是 VMware但后来因为几个很实际的痛点慢慢把日常测试和演示的工作流迁到了 VirtualBox 上。一个是授权问题。VMware Workstation Pro 的授权策略变动过几次商用环境下要格外注意合规成本VirtualBox 是 Oracle 开源的个人用、学习用、企业内部做测试用基本没有授权方面的心理负担。另一个是跨平台。VirtualBox 在 Windows、macOSIntel 芯片、Linux 都有官方安装包如果团队里有人用 Windows、有人用 Ubuntu、有人用 macOS大家一起用 VirtualBox 能减少很多协作上的摩擦。还有一点是我个人很看重的——VirtualBox 的虚拟硬盘格式 VDI/VMDK/VHD 兼容性不错我经常需要把做好的镜像从一台机器迁移到另一台或者从 VirtualBox 导出再导入到其他虚拟化平台用 VirtualBox 处理这类需求省事很多。网上经常看到VMware 和 VirtualBox 到底哪个好的争论。我的观点是如果你是做生产级虚拟化集群、需要 vSphere 生态的那些高级特性那 VMware 路线自然有它的价值但如果你只是想在本地电脑上开几台虚拟机做开发测试、搭个 Linux 环境练手、跑个 Windows 老系统验证软件兼容性那 VirtualBox 完全够用而且学习成本更低。很多相关的热门问题比如 VMware 17 虚拟机没有配置和打开选项、vmnet1 有感叹号、 ensp 与 virtualbox 不兼容这些坑我在两个平台都踩过相比之下 VirtualBox 的报错信息更直观社区里能搜到的解决方案也更丰富。所以这篇博文我打算以 VirtualBox 为例把创建虚拟机的完整过程拆开揉碎讲清楚。标题虽然叫图解但因为实际写作环境里不好一张张贴截图我就用文字把所有界面上该看的地方、该点的按钮、该填的参数全部描述到位你照着操作效果等同于看图。文章里会涉及从下载安装、新建虚拟机、挂载镜像、安装系统到网络配置、增强功能、常见报错排查的完整链路还会标注一些文档里不会写、但我实测过很有用的细节。适合谁看刚接触虚拟机的初学者可以照着一步步做用过 VMware 想换到 VirtualBox 的老手可以重点看第 4 节的网络模式和第 5 节的报错排查应该能帮你节约一些踩坑时间。2. 准备工作下载、安装、镜像选择2.1 VirtualBox 版本怎么选新版旧版有什么讲究打开 VirtualBox 官网的下载页面你会看到最新的 7.x 版本以及历史版本列表。这里有一个很多人忽略的点不是版本越新越好要看你准备安装的客户机系统和宿主机系统是什么。如果你用的是 Windows 10/11 较新的系统直接上最新版肯定没问题功能多、对新硬件的支持也好。但如果你是老旧电脑、或者准备在 Windows 7 上装 VirtualBox那就要小心了——新版 VirtualBox 在 Win7 上经常出现无法在此设备上加载驱动程序之类的报错。这种时候VirtualBox 5.2.44 反而是很多人的选择这个版本对老系统兼容性好网上也还有大量教程和讨论围绕这个版本展开。我自己实测过的情况在一台 2015 年左右的笔记本上装最新的 VirtualBox 7创建虚拟机后启动时直接报内核驱动加载失败换用 5.2.44 之后一切正常。所以我的建议是宿主机是 Win10/11 或较新的 Linux用 VirtualBox 7.x 最新版。宿主机是 Win7 或很老的硬件优先考虑 5.2.44 等老版本。你只是在做实验、跑一些很轻量的系统版本选择没那么关键顺手就行。另一个容易漏掉的安装细节安装过程中会提示安装VirtualBox USB 驱动和VirtualBox Networking相关的组件别取消否则后面 USB 设备识别和网络功能会出各种幺蛾子。安装路径也尽量不要放在系统盘之外的加密目录或中文路径某些特殊字符可能导致虚拟机配置加载异常。2.2 下载系统镜像Windows 和 Linux 镜像怎么选这一块很多人会纠结装什么系统去哪下载镜像我的建议是如果你是第一次接触虚拟机先用 Linux 练手首选 Ubuntu。原因有三个一是免费不需要担心激活问题二是对虚拟化环境的兼容性最好VirtualBox 对 Linux 客户机的支持最成熟驱动和增强功能基本不会出大问题三是命令行操作空间大能学到的东西多。如果你确实需要装 Windows那么要注意 VirtualBox 对 Windows 版本的适配。Windows 7 虚拟机安装是很多教程里常见的例子因为 Win7 镜像相对小、资源占用低跑起来流畅。Windows 10/11 也可以装但需要给足内存建议 4GB 起步和磁盘空间否则体验很差。镜像下载渠道Windows 的话建议从微软官方渠道获取 ISOLinux 发行版从各自的官网下载Ubuntu 的桌面版镜像一般在官网直接能下。下载时注意选择 64 位还是 32 位这个要和后面创建虚拟机时选择的系统类型对应起来。我自己犯过的低级错误是下载了 32 位镜像创建虚拟机时选了 64 位系统类型结果启动时提示无法启动介质不可引导——后来才发现是镜像架构选错了。2.3 安装 VirtualBox 扩展包Extension Pack很多人装完 VirtualBox 就急着创建虚拟机结果后面发现 USB 设备识别不了、磁盘加密用不了、远程桌面连不上这才意识到少装了一个东西——扩展包。扩展包Extension Pack是 VirtualBox 的增强组件提供 USB 2.0/3.0 支持、Remote Desktop Protocol (VRDP) 支持、磁盘加密、PCI 透传等额外功能。扩展包的版本必须和 VirtualBox 主程序版本严格一致版本号对不上会直接提示安装失败或者在启动虚拟机时报错。安装方法打开 VirtualBox 主界面菜单栏 文件 - 工具 - 插件管理器不同版本路径略有差异点击安装按钮选择下载好的扩展包 .vbox-extpack 文件按提示接受协议即可。Windows 下可能需要管理员权限Linux 下如果提示权限不足就用 sudo 启动 VirtualBox 再安装。这里有个实用小技巧Ubuntu 下很多人用 apt 安装 VirtualBox但 apt 源里的版本往往不是最新的而且扩展包还得单独去官网找对应的版本号。我后来改成从官网下载 .deb 包手动安装能保证版本新、扩展包也好找省去很多麻烦。3. 创建虚拟机的完整流程每一步该填什么、为什么这样填3.1 新建虚拟机名称、文件夹和类型选择的讲究打开 VirtualBox 主界面点击新建按钮会弹出一个对话框需要填写三个基本信息名称这个名称会用来标识虚拟机而且 VirtualBox 会根据名称自动猜测操作系统类型。比如你输入 Ubuntu-22.04它会自动把类型选为 Linux、版本选为 Ubuntu (64-bit)。但如果名称里有特殊字符或者你随手打了个 test它可能猜错所以下一步要仔细检查。文件夹虚拟机文件存放的位置。这里强烈建议不要放在默认的 C 盘用户目录下因为虚拟硬盘文件动辄几十 GBC 盘容易被塞满。我的习惯是单独建一个目录比如 D:\VMs\Ubuntu22或者 Linux 下的 /home/用户名/VirtualBox VMs方便备份和管理。类型和版本这个选择决定了 VirtualBox 对客户机的适配方式。选 Linux 还是 Windows、选 64 位还是 32 位都要和镜像对应。如果你在类型下拉列表里找不到你要的系统版本选一个相近的通常也没问题比如选 Linux 2.6 / 3.x / 4.x (64-bit) 来装绝大多数新版 Linux 发行版都兼容。注意一个细节如果你创建后发现系统类型选的 Windows 10 但你想装的是 Windows 7不用重来。虚拟机启动后引导逻辑主要看 ISO 镜像内容本身类型设置更多影响的是默认启用哪些虚拟硬件特性比如 ACPI、I/O APIC、EFI 等之后在设置里也能改。3.2 内存和处理器给多少合适给多了反而有问题在向导的下一步会让你设置内存大小默认值通常是基于创建时选择的系统类型推测出来的。比如选 Ubuntu 64 位默认可能是 1024 MB选 Windows 10默认可能是 2048 MB。我的建议是遵循够用且留余量的原则Ubuntu 桌面版建议至少 2048 MB如果宿主机内存充足给 4096 MB 体验会流畅很多。Windows 72048 MB 起步3064 MB 比较舒服。Windows 10/114096 MB 起步低于这个容易卡。纯命令行版本的 Linux比如 Ubuntu Server1024 MB 也够跑。千万不要给超过宿主机物理内存的一半。我给一台 8GB 内存的宿主机分配了 6GB 给虚拟机结果虚拟机里操作流畅了宿主机直接卡到鼠标漂移。虚拟机的内存是独占式的宿主机还得留出内存给系统本身、浏览器、IDE 这些工具。处理器核心数量同理。我之前图省事把 8 核全给虚拟机分配结果虚拟机启动变慢宿主机也卡成 PPT。合理做法是给宿主机留至少一半核心比如 4 核宿主机虚拟机给 2 核最多给 3 核还要结合你实际要跑的负载来判断。3.3 虚拟硬盘动态分配还是固定大小VDI 还是 VMDK虚拟硬盘是 VirtualBox 里最核心的存储组件创建时有几个选择需要注意。磁盘文件类型默认是 VDIVirtualBox 自有格式也可以选 VMDKVMware 格式、VHD微软格式。我的建议是如果你只是自用选 VDI 就行如果你可能要迁移到 VMware 或其他平台选 VMDK 会更灵活。动态分配和固定大小这是最容易让人困惑的地方。动态分配虚拟硬盘文件一开始很小比如几十 MB随着你往里面装东西逐渐增长最大值不超过你设定的大小。好处是节省磁盘空间坏处是性能略差因为文件会随着使用产生碎片而且一旦增长到很大收缩比较麻烦。固定大小创建时就一次性分配设定的大小比如你设 50GB那磁盘上立刻就会出现一个 50GB 的文件。好处是性能稍好坏处是创建时间长、占空间。其实在日常使用中动态分配和固定大小的性能差距你基本感觉不到除非你的负载是数据库这种高并发读写场景。我个人的习惯是默认选动态分配省空间如果那个虚拟机要做较重的服务测试我才选固定大小。磁盘大小这里有一个很多人问的问题——磁盘设 50GB装完系统只剩 20GB是不是设小了其实虚拟硬盘的大小是可以扩容的后面用命令VBoxManage modifymedium disk 路径 --resize 102400就能把虚拟硬盘扩大到 100GB。但为了避免后面折腾建议一开始就按需求上限来设置比如 Ubuntu 装桌面环境和日常工具50GB 起步比较舒服Windows 则至少 60GB。3.4 系统设置里那些默认选项哪些要改哪些别动创建向导完成之后先别急着点启动。在列表里选中虚拟机点设置把下面几个地方检查一遍。系统 - 主板启动顺序建议把光驱Optical放到硬盘前面这样从 ISO 镜像引导安装系统会更快。如果你要装的是较新的系统比如 Win10 或较新版 Ubuntu可以考虑勾选启用 EFI但如果系统是 Win7 这类老系统默认的 BIOS 模式更稳妥。如果没有足够把握启用 EFI可以先不勾装好了系统之后再改模式反而容易引导失败。系统 - 处理器如果你前面在向导里设置了多个处理器核心这里可以看到并确认。启用 PAE/NX 一般保持默认勾选老系统可能需要新系统不受影响。显示 - 显存大小VirtualBox 默认给的是 16MB 或 32MB这个值对于现代 Linux 桌面版来说偏小容易导致安装界面分辨率低、显示模糊。建议拉到 64MB 或 128MB。如果你之后遇到 Ubuntu 界面卡顿、分辨率只能 800x600 这类问题优先排查是不是显存给的太少。如果客户机是 Windows 10/11可以考虑开启 3D 加速但选择对应的图形控制器VBoxSVGA/VMSVGA时要结合系统类型Linux 里用 VMSVGA 兼容性更好Windows 里用 VBoxSVGA 通常是默认且没问题。存储这里要确保 IDE/SATA 控制器下挂载了你的 ISO 镜像文件。点击空的光驱设备然后在右侧属性里点光盘图标选择选择一个磁盘文件指向你下载的 ISO。这一步很多人会漏掉或者镜像指向错误导致启动时出现FATAL: No bootable medium found! System halted。网络默认是 NAT 模式这个模式适合大多数场景先不用改。后面讲到网络配置时再详细展开。全部设置好了再点启动虚拟机开始从 ISO 引导接下来就是正常的系统安装流程了。这一步之后的操作跟在一台真实的物理机上安装系统几乎一样区别只是鼠标键盘的输入需要先被虚拟机捕获——你在虚拟机窗口内点一下鼠标鼠标指针就会被锁定在虚拟机里按右边的Ctrl键可以释放出来。这个交互细节新手一定要记住不然会以为鼠标卡死了。4. 系统装完后的关键操作增强功能、网络模式和双向传输4.1 安装增强功能不装的话屏幕小、剪贴板不通、拖放也不行系统安装完成、进入桌面之后第一件事不是急着去配置软件而是安装VirtualBox Guest Additions增强功能。增强功能是运行在客户机内部的一套驱动和系统服务它能提供自适应分辨率虚拟机窗口拉大客户机分辨率自动跟着变。双向剪贴板宿主机和虚拟机之间共享剪贴板内容。拖放文件可以直接从宿主机把文件拖进虚拟机。鼠标指针无缝集成不需要按右 Ctrl 释放鼠标了。更完善的显示驱动性能有明显提升。安装方法很简单在虚拟机窗口菜单栏点 设备 - 安装增强功能VirtualBox 会挂载一个虚拟光驱里面有一个安装镜像。Windows 客户机直接打开光驱运行 VBoxWindowsAdditions.exe 即可Linux 客户机通常需要手动挂载并执行安装脚本或者通过包管理器安装virtualbox-guest-utils类的软件包。这里提一个很常见的问题Windows 客户机安装增强功能时报无法在此设备上加载驱动程序。这个通常发生在老版本 WindowsWin7或系统缺少某些更新补丁的场景。解决办法是先用 Windows Update 把系统补丁打全或者下载 VirtualBox 5.2.x 对应的旧版本增强功能试试。另外如果你用的是 Windows 7安装增强功能之前记得把系统激活某些精简版 Win7 会阻止驱动安装。Linux 客户机装增强功能时如果提示缺少编译环境需要先执行sudo apt install build-essential linux-headers-$(uname -r)Debian/Ubuntu 系然后重新运行安装脚本。这个坑我在 Ubuntu 上踩了两次一次是内核头文件缺失一次是 GCC 版本不对装上之后一路顺风。4.2 网络模式选哪个NAT、桥接、仅主机分别解决什么问题很多人用虚拟机一段时间后遇到的第一个网络问题就是虚拟机里能上网但宿主机访问不了虚拟机里的网站或者反过来宿主机能访问虚拟机但虚拟机连不上网。这背后的核心是网络模式的选择。VirtualBox 常用的有三种网络模式我整理成一张表网络模式虚拟机能否上外网宿主机能否访问虚拟机其他局域网设备能否访问虚拟机适用场景NAT可以需要通过端口转发不能虚拟机只需要上网不需要对外提供服务桥接网卡可以可以直接用虚拟机 IP 访问可以虚拟机需要对外提供服务或需要和局域网内其他设备互通仅主机Host-Only不可以可以不能宿主机和虚拟机之间通信不涉及外部网络NAT 网络NAT Network可以多个虚拟机之间可互通宿主机通过端口转发访问虚拟机之间通过内部网络互通搭建多虚拟机环境做实验新手最常见的选择是默认 NAT它能保证虚拟机上网但宿主机和局域网都访问不到虚拟机里的服务。如果你在虚拟机里搭了一个网站想在宿主机浏览器里访问那就需要配置端口转发在 VirtualBox 网络设置里把宿主机的某个端口比如 8080转发到虚拟机的 80 端口。操作路径是设置 - 网络 - 高级 - 端口转发添加一条规则宿主机 IP 留空或填 127.0.0.1主机端口填 8080子系统 IP 填虚拟机 IP子系统端口填 80。之后在宿主机浏览器里访问 http://127.0.0.1:8080 就能打开虚拟机里的网站。如果你需要局域网内其他电脑也能访问虚拟机里的服务那就直接把网络模式改成桥接网卡。桥接模式相当于把虚拟机直接接到你家里的局域网上虚拟机会从路由器拿到一个和宿主机同网段的 IP其他设备直接访问这个 IP 即可。需要注意桥接模式需要宿主机在一块物理网卡上如果你用的是无线网卡有些无线网络环境比如公司 Wi-Fi 的客户端隔离会导致虚拟机无法和其他设备互通这不是 VirtualBox 的问题是网络环境本身的限制。仅主机模式我一般用来做不需要外网的内部实验比如两个虚拟机之间通信测试。它和 NAT 网络NAT Network的区别在于NAT Network 里多个虚拟机共享一个网段且能上网、能互通Host-Only 模式下虚拟机只能和宿主机以及其他配置了同一 Host-Only 网卡的虚拟机通信不能上外网。4.3 双向传输怎么设置剪贴板和拖放功能的配置路径前面提到增强功能装完之后剪贴板和拖放功能默认可能还是关闭的需要手动开启。在虚拟机窗口菜单栏设备 - 共享剪贴板里选择双向设备 - 拖放里选择双向。这样宿主机和虚拟机之间就能自由复制文本、拖放文件了。不过实测中我发现几个坑双向剪贴板对文本类型的内容基本无压力但复制大段文字或特殊格式时偶尔会卡顿这个是 VirtualBox 增强功能的通病正常现象。从宿主机拖文件到虚拟机如果文件较大几百 MB 以上有时进度卡住不动建议改用共享文件夹的方式传大文件。在 Linux 客户机里拖放功能在 Wayland 会话下可能不太稳定切换到 Xorg 会话会好很多。共享文件夹的配置路径设置 - 共享文件夹 - 添加共享文件夹选择宿主机的目录勾选自动挂载和固定分配。在客户机里Windows 会映射为一个网络驱动器Linux 通常挂载在 /media/sf_目录名 下。如果你在 Ubuntu 里访问共享文件夹提示权限不足需要把当前用户加入 vboxsf 用户组sudo usermod -aG vboxsf 你的用户名然后重新登录。4.4 USB 设备识别问题为什么插了 U 盘虚拟机看不到这个问题在热词里出现频率非常高ubuntu virtualbox usb 识别问题、virtualbox 虚拟机 访问打印机。在虚拟机里用 U 盘、读卡器、USB 打印机这类设备需要满足两个前提安装了和 VirtualBox 版本对应的扩展包Extension Pack因为 USB 2.0/3.0 的支持在扩展包里。在虚拟机设置里启用了 USB 控制器并添加了对应的 USB 设备筛选器。操作路径虚拟机设置 - USB - 勾选启用 USB 控制器选择 USB 2.0 (OHCIEHCI) 或 USB 3.0 (xHCI)然后在USB 设备筛选器右侧点加号从列表里选择要映射的设备。启动虚拟机后插入 U 盘宿主机会弹出提示是否将设备连接到虚拟机选择确定即可。Linux 宿主机上还有一个额外问题普通用户可能没有访问 USB 设备的权限需要把用户加入 vboxusers 用户组命令是sudo usermod -aG vboxusers 你的用户名重新登录才能生效。这个问题我第一次遇到时排查了半天最后发现就是把用户加进用户组的事。另外如果你在 Windows 宿主机上插了 USB 打印机想给虚拟机用注意宿主机上如果已经装了打印机的驱动可能会占用这个 USB 设备虚拟机就识别不到了。这时候要在 USB 筛选器里提前把该设备加到虚拟机列表中确保虚拟机优先捕获它。5. 常见问题排查与避坑技巧实录5.1 启动虚拟机报错 kernel driver not installed (rc-1908)这个报错信息我在搜索热词里看到了确实非常有代表性。完整错误类似Kernel driver not installed (rc-1908) The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem...这个问题的根源是 VirtualBox 需要加载一个内核模块vboxdrv但模块没有成功加载。在 Ubuntu/Debian 系系统上通常的解决思路是sudo apt install --reinstall virtualbox-dkms sudo modprobe vboxdrv如果重新安装后依然报错可能是内核版本升级后 vboxdrv 没跟着重新编译。执行sudo /sbin/vboxconfig它会重新编译并加载所有需要的模块。另外还要确认系统是否开启了 Secure Boot如果开启内核模块需要签名才能加载很多发行版的预编译模块在 Secure Boot 下会加载失败解决办法是在 BIOS 里临时关闭 Secure Boot或者给模块做签名比较复杂不推荐新手搞。在 Windows 宿主机上遇到类似的无法在此设备上加载驱动程序错误常见原因是系统环境不干净、安装了不兼容的安全软件或者 VirtualBox 版本太新和旧系统不兼容。先试试以管理员身份运行 VirtualBox不行就卸载后重启再安装旧版本。我之前用 Win7 宿主机装 VirtualBox 7.0 就报这个错后来降到 5.2.44 一切正常。5.2 虚拟机安装 Linux 时蓝屏或卡死怎么排查虚拟机安装 linux 蓝屏这个问题让我先澄清一个常见误解蓝屏不只有 Windows 才有Linux 安装时也可能出现内核 panic 或者图形界面崩溃表现就是屏幕花屏、卡死、报错滚动。在 VirtualBox 里遇到的 Linux 安装失败我排查时一般按以下顺序确认下载的 ISO 镜像完整。可以用 SHA256 校验和比对官方给出的值不完整的镜像在引导时会出现各种诡异问题。检查虚拟机是否启用了硬件虚拟化VT-x/AMD-V。在设置 - 系统 - 加速里确认启用 VT-x/AMD-V和启用嵌套分页都勾选了。如果在 BIOS 里没开启 Intel VT-x 或 AMD SVMVirtualBox 会默认用软件模拟性能极差有的系统会直接装不上。显存给太少。我在 3.4 节提过把显存从 16MB 提到 64MB 以上能解决很多图形界面的花屏和分辨率问题。图形控制器选择不对。Ubuntu 22.04 之后使用 VMSVGA 通常没问题如果遇到安装界面黑屏可以试试 VBoxSVGA。ISO 引导模式UEFI/BIOS不对。如果系统镜像只支持 UEFI 引导但虚拟机设置里没有启用 EFI就会出现引导不起来的现象。反过来老系统镜像在 UEFI 模式下也可能有问题。有一个很实用的做法安装系统时先选Try Ubuntu试用而不是直接安装如果在试用环境里能正常显示和操作再点安装按钮大概率能顺利装完。如果试用环境就卡死说明是虚拟硬件配置的问题优先按上面几条排查。5.3 如何删除虚拟机目录卸载后残留文件怎么清理如何删除虚拟机目录这个问题简单但不注意会踩坑。VirtualBox 主界面上右键虚拟机 - 移除会弹出两个选项仅从列表中移除和删除所有文件。选择前者虚拟机配置文件.vbox 文件会从列表消失但虚拟硬盘文件还在磁盘上选择后者VirtualBox 会尝试删除虚拟机所在的整个目录包括虚拟硬盘但有时候因为文件被占用或者权限不足删除不完整。如果你发现虚拟机目录删不掉先检查虚拟机是否还在运行先关闭。是否打开了资源管理器/文件管理器并定位到了该目录Windows 下文件被某个进程锁定会提示无法删除。手动到该虚拟机配置里记录的路径下查看是否有 .vbox-prev 或 .vbox-tmp 之类的临时文件这些都是历史残留。彻底删干净的标准做法是VirtualBox 列表里先点移除 - 删除所有文件然后到磁盘上检查一下之前的目录是否还在如果还在就手动删除。注意 Linux 下如果虚拟机所在的目录属于其他用户或 root需要sudo权限才能删除。5.4 主机访问虚拟机网站、vagrant 等疑难问题速查热词里还出现了一个比较具体的场景主机访问虚拟机网站、vagrant virtualbox 显卡直通、ensp 与 virtualbox 不兼容。主机访问虚拟机网站这个我在 4.2 节网络模式里已经讲了核心就是 NAT 模式下要配端口转发桥接模式下直接访问虚拟机 IP。补充一个很多人忽略的点虚拟机里的防火墙可能会拦截来自宿主机的访问。比如 Ubuntu 默认没有启用 ufw 还好如果启用了忘记放行端口就能导致明明网络模式对着呢但宿主机就是访问不了。排查顺序先确认虚拟机能自己访问自己的服务curl 127.0.0.1再确认宿主机能 ping 通虚拟机 IP如果 ping 不通可能是防火墙拦了 ICMP再确认端口放行和转发规则。vagrant virtualboxVagrant 是自动管理虚拟机配置文件的工具默认后端就是 VirtualBox。热词里有一段 (base) ctscts:/mnt/data/virtualbox/box/run/manage01$ vagrant ssh 这个场景其实是在 Vagrant 创建的虚拟机目录里执行 SSH 连接命令。用 Vagrant 时最容易遇到的问题是 VirtualBox 版本升级后Vagrant 报 Unknown VBox version 或者 SSH 连不上。解决思路更新 Vagrant 到最新版或者让 Vagrant 重新加载虚拟机配置vagrant reload --provision。另外Vagrant 默认会让 VirtualBox 创建 NAT 网络并自动配置端口转发默认转发 2222 到虚拟机的 22 端口如果你改了虚拟机网络模式SSH 连接参数也需要同步调整。ensp 与 virtualbox 不兼容华为的 eNSP企业网络模拟平台早期版本依赖 VirtualBox 的特定版本如果你装的是新版 VirtualBoxeNSP 可能无法识别或者设备无法启动。解决办法一般是把 VirtualBox 降到 eNSP 指定的版本通常是 5.2.x或者在 eNSP 的设置里手动指定 VirtualBox 的安装路径。这类教学工具 vs 虚拟化软件的兼容性问题本质上都是版本匹配问题没有太多神秘之处。显卡直通热词里提到 vagrant virtualbox 显卡直通。要明确一点VirtualBox 对显卡直通GPU Passthrough的支持非常有限和 KVM/QEMU、VMware ESXi 这类方案没法比。VirtualBox 里的显卡基本都是模拟出来的3D 加速能力也很弱。如果你真的需要显卡直通建议换用 QEMU/KVM 和 VFIO 方案VirtualBox 不是干这个的合适选择。6. 快照、导出导入和日常使用习惯6.1 快照功能装坏系统后的后悔药使用虚拟机最大的优势之一就是可以随意折腾折腾坏了就恢复。VirtualBox 的快照功能就是干这个的。在虚拟机运行状态下点机器 - 生成备份或拍摄快照系统会给当前状态存一个备份。之后你再安装软件、改配置、甚至把系统搞崩了都可以回到快照时的状态。这个操作特别适合实验环境比如测试一个新软件、验证一个脚本先在快照基础上跑一遍不满意就还原。我的习惯是刚装完系统并装好增强功能的时候立刻打一个干净快照。后面每完成一个重要配置再打一个快照。这样即使后面全搞坏了恢复成本也最低。需要注意快照文件会占磁盘空间每个快照都是虚拟硬盘当时状态的完整副本实际上是差异文件所以别打太多快照两三个就够用。磁盘空间紧张时优先删除不需要的旧快照。6.2 导出与导入把虚拟机搬到另一台电脑VirtualBox 支持导出为 OVF/OVA 格式这种格式可以跨平台导入。在虚拟机列表上右键 - 导出选择 OVA单个文件或 OVF分散文件导出后拷贝到另一台机器用导入功能就能还原。导出导入时要注意如果虚拟机里安装了增强功能和特定驱动换了一台硬件配置不同的宿主机后客户机可能因为硬件信息变化出现驱动问题。通常 Windows 客户机可能会要求重新激活Linux 客户机一般问题不大因为 Linux 内核在启动时能自适应大多数硬件变化。另外导出的 OVA 文件如果体积很大可以用 7-Zip 之类的工具压缩后传输能省不少时间。6.3 日常维护备份、日志和清理VirtualBox 会在虚拟机的配置目录下生成日志文件Logs 目录如果虚拟机启动失败或者运行异常可以查看 VBox.log 里的日志信息来定位问题。日志内容虽然复杂但里面通常包含了明确的错误关键字比如 I/O 错误、驱动加载失败、资源不足等搜索这些关键字能帮你大大缩小排查范围。另外定期清理不用的虚拟机、删除多余的快照、整理宿主机磁盘空间都是良好的维护习惯。我整理了一份我自己的日常操作清单供参考创建虚拟机前先确认镜像和 VirtualBox 版本匹配。装完系统和增强功能后打一个干净快照。改网络配置前先备份 .vbox 配置文件。出现问题时先看 VBox.log再搜索网络上的解决方案避免盲目重装。大批量文件传输用共享文件夹不要拖放。虚拟机删除前先导出备份或者确认不需要保留数据。我这里分享一个更省心的经验不同的 VirtualBox 版本其配置文件格式可能会在小版本升级时发生变化。升级 VirtualBox 主程序后如果之前的虚拟机打开报版本不兼容的错不要急着删数据。VirtualBox 支持导入旧版本配置可以尝试在命令行用VBoxManage import或者通过界面上的添加功能重新注册 .vbox 文件一般情况下都能恢复。说到底VirtualBox 这个工具不复杂但细节确实多。我写这篇文章的目标是让你在创建虚拟机的路上少走弯路尤其是把那些文档里不写、教程里不提的坑提前告诉你。实际操作中遇到问题也建议多用搜索引擎搜报错信息——这个工具用的人实在太多了你能遇到的问题大概率已经有人在社区里讨论过解决方案了。