
做运维和开发这些年VirtualBox搭配Ubuntu虚拟机几乎成了我的标配环境。手上这台主力机是Windows系统但很多服务端工具、脚本、容器编排的调试放到Linux环境里才真正顺手。VirtualBox免费开源、跨平台Ubuntu是社区最活跃、资料最多的Linux发行版之一这两个名字放在一起基本就是虚拟化入门最稳妥的组合。网上关于VirtualBox安装Ubuntu的教程多如牛毛但大多数是碎片化的步骤截图装完了不知道下一步干什么遇到报错也不知道往哪里查。这篇文章想给你一条完整的链路从下载VirtualBox、获取Ubuntu 22.04镜像到创建虚拟机、装系统、装增强功能、配置共享目录和快照我会把每一步背后的理由也讲清楚。不管你是刚接触Linux的大学生、想转运维的测试还是偶尔需要在Linux环境里跑实验的开发者照着这条路走一遍能避开九成的坑。1. 搭建前先想明白为什么是VirtualBox Ubuntu1.1 VirtualBox和VMware怎么选虚拟化工具市面上能选的不少最常见的就是VirtualBox和VMware Workstation。VMware功能确实全快照、克隆、网络模拟这些做得都很成熟商业版还有技术支持很多公司内部统一用它。但VMware的授权费不便宜个人学习场景没必要一上来就掏钱。VirtualBox是Oracle维护的开源项目跨平台能力很强Windows、macOS、Linux宿主机都能跑。它对个人用户完全免费功能也足够用快照、共享文件夹、3D加速、USB设备直通、NAT网络、Host-Only网络这些日常开发测试需要的它都有。最让我满意的是它的轻量程度同样配置的虚拟机VirtualBox起来的速度和内存占用通常比VMware更克制一点对只有8GB内存的笔记本用户来说这个差距还是很明显的。还有个比较实际的点VirtualBox的虚拟硬盘格式是VDI但它也能直接读取VMware的VMDK格式。这意味着你从同事那边拷一个虚拟机文件过来VirtualBox可以直接打开反过来也行。这种兼容性在团队协作里很省事不需要在两种工具之间来回转换格式。1.2 为什么推荐Ubuntu 22.04 LTSLinux发行版几十个但新手最不需要纠结版本选择。Ubuntu从诞生那天起就主打“友好”软件仓库全、驱动兼容性好、遇到问题搜索到的解决方案最多。别的发行版你也许能体会小众的快乐但那是折腾熟之后的事入门阶段把自己的时间花在Linux本身的命令和思想上比花在环境修复上值钱得多。版本细节要单独说。我推荐你下载22.04 LTS不是最新的24.04不好而是长期支持版的意义在于稳定和生态。22.04的官方支持会持续到2027年软件源里的包都经过充分测试不会出现今天升级明天某个依赖坏掉的状况。24.04虽然更新一些但很多第三方软件还没跟上适配日常使用中遇到问题的概率要高不少。如果你后面要跑Docker、Nginx、数据库这类服务LTS版本能给你省很多心。下载的时候注意区分两个镜像Ubuntu Server和Ubuntu Desktop。如果你只是想要一个没有图形界面的纯命令行环境Server版更省资源但考虑到大多数人用虚拟机是为了学Linux或者复现项目Desktop版带桌面环境操作起来有反馈、有视觉提示学习曲线平缓得多。我建议第一次装选Desktop版用熟了再考虑Server都不迟。1.3 这套方案到底适合谁在技术选型上拍脑袋不如看需求。VirtualBox加Ubuntu这套组合最适合三类人。第一类是Linux初学者需要在Windows电脑上有个安全的实验环境随便敲键盘、随便删系统文件坏了就重装不影响主力系统。虚拟机的隔离性在这里就是最大的安全感。第二类是开发和运维人员需要在Linux环境跑脚本、验证部署流程、调试网络配置但公司发的机器是Windows或者不想为了一个小实验就装双系统。虚拟机快照可以让你在干坏事之前留一个后悔药这是双系统永远给不了的体验。第三类是做软件测试的同学需要验证软件在不同系统、不同版本下的表现。多建几个不同版本的Ubuntu虚拟机用快照隔离环境比用物理机一台台装省事儿太多。但如果你需要大量运行图形性能密集型应用比如玩Linux游戏或者GPU计算虚拟机方案就不太合适了。VirtualBox的图形虚拟化能力再强也终究隔着一层性能损耗在那里这部分需求还是得靠真机或者专业虚拟化平台。2. 准备工作下载、安装与虚拟化检查2.1 下载VirtualBox的正确姿势打开VirtualBox官网默认页面会给你推荐Windows版本。下载时注意两点一是认准官网域名不要从乱七八糟的第三方下载站来路不明的安装包官网下载的包有数字签名出了问题好排查二是看版本号新版本通常修复了已知的虚拟化兼容性问题但也可能引入新的奇怪小毛病。如果你要装的环境比较老比如用Windows 7做宿主机那就得选对应的旧版本这种情况我会直接去官网的“Download Old Builds”页面找。Windows下安装没什么难度一路Next就行。但有几个安装选项要留个心眼VirtualBox安装到快结束时会询问是否安装网络适配器相关的驱动这个一定要允许安装不然虚拟机创建出来后网络功能是残缺的后面你会发现NAT模式下连不上网重启网卡也没用。还有一点安装路径尽量不要放在带有中文或者空格的目录里虽然新版对路径的容忍度高了一些但VirtualBox的扩展包和后续功能对这种路径的兼容仍然不够好别在这种小事上浪费排查时间。安装完成后如果打开软件提示“VirtualBox Installation failed”或者类似无法初始化的问题先别急着重装查看一下是不是以前装过旧版本卸载不干净。用Windows的“添加或删除程序”卸载旧版本然后重启电脑再装新版本。我遇到过不少次这种情况解构下来基本都是残留注册表项在捣鬼。2.2 获取Ubuntu系统镜像Ubuntu镜像直接在官网下载即可。打开Ubuntu官网的下载页面你会看到两个醒目按钮一个给桌面版一个给服务器版。这里我建议选桌面版来学习原因前面说过有图形界面对新手更友好。需要注意的是官网下载页给的默认版本可能不是LTS。如果页面提示的是“Latest release”而非LTS版本那可以往下翻找到“Find older releases”之类的入口手动选择LTS版本下载。以22.04为例文件名一般是ubuntu-22.04.x-desktop-amd64.iso这种格式看到desktop和amd64两个关键字就对了。amd64没问题它只表示CPU架构不是AMD品牌专属Intel的CPU也照样可以用这个镜像。下载完镜像后建议顺手做一下sha256校验这个步骤很多人会跳过。其实不复杂Windows终端里执行certutil -hashfile 你下载的镜像路径 SHA256把得到的值和官网公布的值对比一下一致就说明镜像完整不是半路下载损坏的文件。这一步能避免后续装机到一半报错的文件系统损坏问题。2.3 检查CPU虚拟化开关这个步骤经常被忽视但它是整个教程里最值得提前确认的环节。VirtualBox运行虚拟机需要CPU支持虚拟化技术Intel平台叫VT-xAMD平台叫AMD-V。如果你的电脑配置不低但虚拟机一直启动失败报错信息里写着“VT-x is not available”或者“The hardware virtualization is enabled but not operational”那基本就是BIOS里没打开这个开关。Windows下检查虚拟化是否已启用很简单打开任务管理器切到“性能”标签页点“CPU”右下角会有一行“虚拟化已启用”或“已禁用”。如果显示被禁用那就得重启电脑进入BIOS设置。不同品牌主板进入BIOS的方式不一样多数是按Del键或F2键在Advanced、CPU Configuration或者Security菜单里找到Intel Virtualization Technology或SVM Mode改成Enabled保存退出重启即可。这个步骤对笔记本用户尤其重要有些出厂默认会关掉虚拟化而且某些机型的BIOS选项藏得特别深。如果你进BIOS以后实在找不到可以搜一下自己笔记本型号加“enable virtualization”的组合关键词。这不算教程外的负担因为打不开虚拟化后面所有操作都白搭提前五分钟排查能省一个晚上。3. 创建虚拟机与Ubuntu安装完整实操3.1 新建虚拟机名称、类型和版本别乱填VirtualBox主界面点“新建”会弹出创建向导。第一项是名称你给它起个容易认的名字比如“Ubuntu-Dev”。第二项“类型”选Linux第三项“版本”下拉列表里找Ubuntu 22.04 LTS 64位。为什么这里要选对版本因为VirtualBox会根据这个选择提供合理的默认硬件配置比如默认的显存大小、磁盘控制器类型选错了虽然也能装但容易出现兼容性问题。这里有个实操细节不要把虚拟机文件放在C盘默认目录。VirtualBox默认把虚拟磁盘放在用户目录下的VirtualBox VMs文件夹这个目录在C盘。虚拟机磁盘动辄几十GB系统盘一旦满了会影响整机性能。我习惯在D盘或者其他数据盘建一个专门的目录比如D:\VirtualMachines然后创建虚拟机的时候把“存储文件夹”改过去。这样重装系统也不用担心虚拟机文件被格式化掉解耦性更好。接着是“内存大小”向导会给出一个推荐范围。这里我给一个比较具体的原则宿主机有16GB内存的给虚拟机分4GB宿主机只有8GB的最多给3GB留5GB给Windows自己跑。Ubuntu桌面版2GB内存勉强能开但开几个浏览器标签再编译点东西就会卡出动画效果。内存分配不是越多越好虚拟机占用的内存在宿主机看来就是多个进程在抢内存分配过多会让宿主机本身开始交换内存两边都慢。3.2 CPU和显存怎么分配更合理CPU核数配置上我建议保持跟随向导默认即可通常向导会按宿主机核心数的一半来建议。如果你非要手动调也建议不超过宿主机物理核心数的百分之五十比如四核八线程的CPU给虚拟机2个核心比较合理。因为CPU线程还承担着宿主机系统、各种后台软件的任务全塞给虚拟机宿主机会变得异常敏感。显存的设置是很多人会忽略的重点。VirtualBox默认显存只有16MB进Ubuntu桌面后分辨率被锁在1024x768想调高也调不了。建议在“显卡”设置里把显存拉到128MB同时勾选“启用3D加速”。128MB对日常桌面使用完全够了没必要再往上拉显存是从宿主机物理内存里划分出来的给太多反而浪费。3.3 虚拟硬盘动态还是固定选错很麻烦到了“创建虚拟硬盘”这一步VirtualBox会问你要不要创建磁盘默认选项是“现在创建虚拟硬盘”你还需要选择硬盘文件类型和大小。文件类型选VDI就行和VirtualBox的兼容性最好。接着是“动态分配”和“固定大小”的选择这是新手最容易纠结的点。动态分配的意思是虚拟磁盘文件一开始只有几MB实际用到多少才逐步膨胀到多大。固定大小则是一开始就占用你指定的全部磁盘空间。听起来动态分配很划算但有个隐藏代价动态分配在磁盘增长过程中会产生更多碎片写入性能比固定大小稍慢。考虑到虚拟机的性能本来就有开销我做开发用还是会选固定大小直接把容量一步到位。如果宿主机磁盘空间紧张那折中方案是选动态分配但你要知道虚拟磁盘文件一旦膨胀上去再用普通办法缩小很麻烦不如一开始就给足容量。容量给多少合适Ubuntu桌面版本身安装后约占用6GB左右但你要装开发工具、Docker镜像、编译缓存这些都会快速消耗空间。建议初始给50GB如果做服务端实验习惯囤各种依赖直接给80GB也合理。记住这里是虚拟磁盘物理磁盘消耗的是实际大小50GB不是马上占用宿主机50GB只是给虚拟机画了一个50GB的圈。3.4 挂载ISO并启动安装虚拟机创建完成后回到主界面选中虚拟机点“设置”切到“存储”选项卡。在“存储树”里能看到一个光驱设备点旁边的光盘图标选择“选择一个磁盘文件”把下载好的Ubuntu 22.04 ISO挂载进去。这一步做完再回到主界面点“启动”虚拟机就会从ISO文件引导开始Ubuntu的安装流程。开机后的安装界面第一个问题是语言选择这里有一个新手容易踩的坑选中文没问题但当你后面进入系统某些软件、命令行工具的信息可能仍是英文而且很多教程里给的命令输出是英文的你会对不上。我个人建议系统语言选英文中文显示问题可以后续通过安装字体和设置输入法解决。当然你如果坚持中文界面也完全可以用只是自己心里要有数遇到问题排查时多一步翻译。安装类型界面非常重要。默认给你的是“清除整个磁盘并安装Ubuntu”但这里的“整个磁盘”指的是虚拟磁盘不是你的物理硬盘这点放心。新手直接选这个默认选项就好因为它会自动完成分区。如果你有一定基础想手动控制分区布局那至少需要三个分区EFI引导分区、根分区/和数据分区/home。这里提醒一下虚拟机上分区的意义主要在于学习实际生产服务器的手动分区方案要考虑的东西比这多得多不是本文重点。3.5 名字、用户名和密码这些细节安装过程会让你填“你的姓名”、“您的计算机名称”、“选择一个用户名”和“密码”。计算机名称默认是根据你的名字加后缀生成的它会出现在命令行提示符里比如userubuntu。这个名称不追求花哨简洁就行。用户名建议用小写英文不要带空格和特殊字符因为后面很多命令行的路径、目录名称都和它相关。安装过程中还会问你是否加密主目录实际虚拟机场景没必要选加密。加密主目录会增加磁盘I/O开销而且一旦忘记密钥数据恢复路径极其曲折。虚拟机的隔离性已经给你足够的安全基础加密是物理机场景下隐私保护的手段虚拟机上用是给自己找麻烦。安装大概会持续十分钟到二十分钟进度条到哪一步不重要关键是耐心等待。安装完成后系统会提示重启记得重启过程中把安装介质移除。VirtualBox一般会自动帮你卸载ISO如果它忘了手动把虚拟光驱从存储设置里移除再重启。4. 装完系统的必做配置Guest Additions与配合技巧4.1 为什么一定得装Guest Additions很多人装完Ubuntu第一件事就是打开终端敲命令很快就发现鼠标卡顿、窗口不能自由缩放、剪贴板不能互通。这些体验问题全是没装Guest Additions导致的它是VirtualBox为虚拟机提供的一组驱动和系统服务装上之后虚拟机和宿主机之间的协作才能顺畅。Guest Additions具体能带来什么支持虚拟机窗口自适应分辨率、支持双向剪贴板共享、支持拖拽文件到虚拟机、提升显卡性能、开启共享文件夹功能。翻译成人话就是你不再需要用鼠标在窗口里慢慢挪全屏体验良好复制文本可以随手从Windows贴到Ubuntu里批量文件可以直接拖进去。没装Guest Additions的虚拟机只能算“能开机”装了才算“能用”。4.2 Guest Additions安装步骤安装过程其实不复杂在虚拟机窗口顶部的菜单栏点“设备”选择“安装增强功能”选项。这时Ubuntu桌面会自动挂载一个虚拟光盘内容就是Guest Additions的安装包。如果没有自动弹出打开文件管理器找到光驱设备里面应该有一个VBoxLinuxAdditions.run文件。打开终端先安装这个安装包所需的编译依赖sudo apt update然后sudo apt install build-essential dkms linux-headers-$(uname -r)。这里千万不要嫌麻烦跳过依赖安装Guest Additions的编译过程需要内核头文件和编译器工具链缺了任何一个都会安装到最后一步报错。依赖装好后切换到root权限执行挂载到光驱目录然后运行sudo sh ./VBoxLinuxAdditions.run。安装过程会打印一堆编译输出看到类似于“Building the main Guest Additions module”和“Done”字样就算成功了。安装完成后需重启虚拟机重启后分辨率选项变丰富窗口能够自适应缩放剪贴板也能共享了效果立竿见影。4.3 共享文件夹宿主机和虚拟机传文件的桥梁共享文件夹是使用频率非常高的功能它让你在宿主机上建一个文件夹虚拟机里直接访问两边共用一个真实目录。这样以后下载的安装包、保存的文档都放共享文件夹两边都能读写省去来回拖动文件的麻烦。在VirtualBox的虚拟机“设置”里找到“共享文件夹”点添加选择一个宿主机目录给它起一个共享名比如share。勾选“自动挂载”和“固定分配”。自动挂载会让虚拟机启动时自动挂载好的目录固定分配表示这个配置不被快照恢复影响这两个选项建议都勾上。回到虚拟机里你可能发现共享文件夹没有自动出现在桌面上。运行下面的命令手动挂载一次sudo mkdir -p /mnt/share然后sudo mount -t vboxsf share /mnt/share。注意这里的share要和共享文件夹设置里填写的名字完全一致。如果提示mount命令找不到vboxsf文件系统类型说明Guest Additions安装失败了回到上一步重新检查安装日志。4.4 调整显存、分辨率与3D加速如果你想让Ubuntu桌面运行得更流畅在VirtualBox“设置”的“显示”选项卡里把显存拉到128MB硬件加速选择“启用3D加速”。重启虚拟机后Ubuntu桌面环境会尝试开启硬件加速渲染窗口拖动和动画效果会明显顺滑。分辨率方面装了Guest Additions之后全屏模式下虚拟机窗口会自动调整分辨率不再局限于固定值。如果全屏后分辨率还是不对可以在Ubuntu的“显示”设置里手动选一个和屏幕匹配的分辨率。这里有个经验虚拟机的桌面分辨率最好和宿主机一致或接近不然看代码、看文档时窗口内容会显示模糊或者布局错乱。5. 踩坑记录常见问题与排查速查表5.1 报错排查速查表现象常见原因解决思路启动虚拟机提示“VT-x is not available”BIOS中未开启CPU虚拟化重启进BIOS开启Intel VT-x或AMD SVM创建虚拟机后无法启动报NtCreateFile相关的错误VirtualBox安装路径含中文或权限问题以管理员身份运行VirtualBox或重新安装到纯英文路径Ubuntu安装过程中黑屏或卡在logoISO镜像损坏或显存不足验证SHA256校验值把显存调到128MB安装增强功能失败缺少编译工具链和内核头文件执行sudo apt install build-essential dkms linux-headers-$(uname -r)虚拟机内无法上网NAT网络适配器被禁用检查虚拟机的“网络”设置确保启用并选择NAT模式剪贴板无法双向共享Guest Additions未安装或未启用重新安装增强功能检查设备菜单里的“共享剪贴板”选项磁盘空间很快见底初始虚拟磁盘容量过小参考5.4节扩容步骤或下次创建直接给80GB全屏后分辨率不跟着变显存或3D加速未正确设置检查显示设置确保128MB显存和3D加速已启用5.2 开机黑屏进不去桌面怎么办有一段时间我频繁碰到虚拟机开机后卡在类似“黑屏只有一个光标”的状态起初以为是Ubuntu的驱动问题排查下来发现多出现在显卡设置不当或内核更新之后。如果宿主机开启了Hyper-V也可能和VirtualBox争抢CPU虚拟化资源导致虚拟机性能异常甚至无法启动。最简单的排查路径是这样先看报错信息如果提示VT-x被占用去Windows的“启用或关闭Windows功能”里关掉Hyper-V和虚拟机平台相关组件重启后再试。如果是Ubuntu启动到一半卡在黑屏幕按CtrlAltF2切换到字符终端登录能登录说明桌面环境崩了可以尝试sudo apt install --reinstall ubuntu-desktop修复。5.3 增强功能装了但功能不生效有段时间我在一台虚拟机里装Guest Additions安装过程没有任何报错但全屏怎么试都只有固定分辨率。后来发现是EFI模式下的问题而VirtualBox对UEFI环境的增强功能支持有时需要额外的内核参数。解决办法是编辑/etc/default/grub文件找到GRUB_CMDLINE_LINUX那一行在后面加上videohyperv_fb参数保存后执行sudo update-grub重启就能自动适配高分辨率了。如果你用的是一个老旧的VirtualBox版本而Ubuntu内核太新编译增强功能时大概率会出现模块签名验证失败的情况。这种兼容性问题最容易通过升级VirtualBox来解决这也是我前面强调要关注版本的原因。5.4 虚拟磁盘空间不够的扩容方法当你发现虚拟机磁盘空间告急不需要重装系统可以用VirtualBox自带的命令扩容。先关闭虚拟机然后在宿主机命令行里进入VirtualBox安装目录执行VBoxManage modifyhd 你的虚拟磁盘路径 --resize 80000。80000的单位是MB这里是扩展到80GB。执行成功后重新启动虚拟机系统里还需要最后一步使用分区工具扩大现有分区。Ubuntu桌面版默认自带gparted用sudo apt install gparted安装图形界面操作分区表把根分区拖动到全部可用空间即可。这个操作建议在扩容前先给虚拟机拍一个快照万一分区操作失误还能回滚到扩容前的状态。分区操作虽然成熟但任何操作磁盘表的步骤都有风险这是虚拟机的优势所在别浪费了。5.5 快照从装完系统那一刻就养成习惯快照是虚拟机区别于物理机最有价值的功能没有之一。安装完系统、配置好Guest Additions、装好常用软件、验证系统能正常启动后务必创建一个干净环境的快照。这个快照相当于一台“出厂长”的虚拟机之后随便折腾搞坏了随时一键恢复到这个状态。快照不是备份它记录的是虚拟机当前磁盘状态和内存状态。恢复时会回退到那个时间点的所有文件、配置和安装的软件。我通常的习惯是基础环境一个快照装完Docker一个快照做完某个实验前再来一个快照。快照名称和描述写清楚不然几个月后看一列快照根本分不清哪是哪。6. 一些使用心法和实用小技巧说到最后分享几个我长期使用VirtualBox积累下来实操经验。很多人装完虚拟机就当作一次性工具用过即弃其实几个小习惯能极大提升长期使用体验。虚拟机和宿主机之间的时间同步是个容易被忽略的问题。虚拟机会因为宿主机休眠、性能状况产生时间漂移尤其是你跑定时任务、写日志的时候时间偏移很让人头疼。装了Guest Additions之后建议额外安装一个软件包sudo apt install ntpdate并添加一个简单定时任务每小时校准一次系统时间。这个方法非常便宜但对一致性要求高的场景特别实用。另外我建议在虚拟机里配置一个固定的快照策略每做完一个重要配置或者准备升级一些关键软件之前手动创建一个快照。有些操作比如升级内核、安装显卡驱动一旦翻车会让你想不起之前系统是正常的而现在只要有快照十分钟回到初始状态完全不用担心“折腾坏了”。最后提一下Vagrant如果你后续需要频繁创建、销毁多台虚拟机直接在终端里用Vagrant管理VirtualBox会高效很多。只需要写一个Vagrantfile配置文件里面指定box名字、内存、端口转发规则然后vagrant up一条命令就把整台虚拟机建好并启动。它能帮你把虚拟机环境变成“代码”换一台电脑也能复现出完全一样的开发环境。这个工具值得任何经常和虚拟机打交道的人深入了解。