讲真,VirtualBox加Ubuntu虚拟机这套组合,我在好几台电脑上装过不下二十遍,真心推荐给所有想学Linux的人。VirtualBox是Oracle开源的虚拟化产品,Ubuntu是目前用户量最大的Linux发行版之一,两者搭配起来完全免费,还能在你现有电脑上隔出一个隔离环境,随便折腾坏了也不影响主系统。无论你是刚接触Linux的新手、运维转岗的技术人员,还是需要在干净环境里跑服务的开发,这篇文章应该能帮你把整套流程走通。
一开始我也不太愿意用虚拟机,总感觉多一层会卡,实际用下来发现桌面级需求完全够。最关键的是,装坏了不用重装物理机,快照一恢复就和没发生过一样。这篇就按我自己的操作习惯,从选型、安装、配置到踩坑,从头到尾梳理一遍。
1. 方案选型与整体设计思路
1.1 为什么我选VirtualBox而不是VMware
很多人在第一步就纠结。VMware Workstation Pro是老牌商业软件,功能确实全,性能调教也很激进。但VirtualBox免费开源、跨平台,Windows、macOS、Linux宿主机通吃,没有授权费用,对个人学习和中小团队测试来说毫无压力。
从我实际体验看,VirtualBox跑Ubuntu桌面版日常操作很流畅,开机速度和内存占用虽然比VMware稍微差一点,但差距不是“能不能用”的级别,而是“心里舒服不舒服”的级别。加上VirtualBox的快照功能、克隆功能都用得很顺手,共享文件夹和剪贴板双向同步也能满足绝大多数工作需求。
还有一点很现实:VirtualBox的安装包很小,下载快,安装过程几乎没有坑。VMware在Broadcom收购之后,个人许可证的流程改来改去,虽然也有免费方案,但绕圈子浪费时间。对新手来说,“打开就装、装完就能用”这件事本身就是最大的优势。
当然,如果你要跑复杂的3D应用、大型数据库压测或者vGPU相关实验,VirtualBox确实不如VMware Workstation,甚至不如直接上KVM。但在“搭一个Ubuntu虚拟机学Linux”这个场景里,VirtualBox绰绰有余。
1.2 Ubuntu版本和镜像来源怎么选
Ubuntu分长期支持版(LTS)和普通版,我建议一律选LTS。比如之前一直在用的22.04 LTS,以及现在主推的24.04 LTS。24.04 LTS支持周期到2029年,新硬件、新内核支持都更好;22.04 LTS相对保守但非常稳定,软件源兼容性极好。选哪个都行,新手直接上24.04 LTS就好,别选中间版本找罪受。
然后是镜像下载。一定去Ubuntu官网或者国内高校镜像站下载,不要随便在第三方博客或网盘里拿ISO,容易被植入乱七八糟的东西。官网地址是ubuntu.com/download,进去选Desktop版本,下载ISO文件。如果官网速度慢,用清华TUNA镜像、阿里云镜像或者中科大镜像,速度和稳定性都好很多。
镜像下完以后,我习惯先看一眼校验值。官网每个ISO旁边都会给SHA256值,下完在本地终端算一下:
sha256sum ubuntu-24.04.2-desktop-amd64.iso对比一下输出结果是不是和官网一致。这一步看着多余,但能避免很多“解压到一半报错”“安装进程莫名其妙崩溃”的疑难杂症,值得养成习惯。
1.3 虚拟机的资源配置思路
给虚拟机分资源要遵循一个原则:够用但别贪心。虚拟机的内存、CPU、硬盘都是从宿主机“借”的,你要是给虚拟机分了太多,宿主机自己卡成PPT,体验反而更差。
我自己的参考配置是:内存给4096MB,CPU给2个核心,显存给128MB,硬盘动态分配40GB。如果你的宿主机只有8GB内存,那虚拟机内存减到2048MB也够跑Ubuntu桌面;如果宿主机是16GB以上,给虚拟机4GB到8GB会更舒服。磁盘方面动态分配模式很灵,你不用一开始占满40GB,用多少才涨多少,所以即使宿主机紧张,分配大一点也没关系。
这里有一个特别容易被忽略的点:CPU核心数尽量别超过宿主机物理核心数的一半。比如你的电脑是4核,虚拟机给2核就比较正常;你要是强行给4核,两个系统抢资源,反而会造成卡顿和功耗飙升。
2. 环境准备与核心细节
2.1 VirtualBox安装与版本选择
VirtualBox的官方下载页是virtualbox.org,进去以后根据你的宿主机平台选Windows还是macOS还是Linux版本。Windows安装包就是一个exe,一路Next就能装完,安装过程中会提示安装虚拟网卡驱动,一定要允许,否则后面网络和USB功能都会出问题。
版本方面,建议直接下载最新的稳定版,而不是老版本。比如旧版7.0.x在某些新CPU上会有虚拟机无法启动的兼容性问题,升到7.1以后就正常了。如果你之前装过旧版,新版装之前最好先卸载干净,避免驱动残留。
装完以后打开VirtualBox主界面,左上角会有一个“新建”按钮,别急着点,先到“管理-全局设定”里看一眼默认虚拟机文件夹路径,改成你磁盘空间比较充裕的盘符。我见过太多人默认装在C盘,装完Ubuntu虚拟机之后C盘直接飘红。
还有一个容易忽略的扩展包:Oracle VM VirtualBox Extension Pack。这个扩展包提供USB 2.0/3.0设备支持、RDP远程桌面协议支持等功能,不装的话USB设备基本用不了。去官网同一个下载页面找到Extension Pack下载,双击安装即可。这一步和USB相关,装完再进USB配置就不会头大。
2.2 创建虚拟机前必改的几个参数
点“新建”后,VirtualBox会弹出一个向导。名称我建议写清楚,比如“Ubuntu-24.04-LTS”,这样以后开多了虚拟机也能一眼认出来。类型选Linux,版本选Ubuntu 64-bit,这一步基本不会错。
接下来是内存和CPU设置,参考前面说的配置就行。到“虚拟硬盘”这一步,选“现在创建虚拟硬盘”,硬盘类型选VDI,大小给40GB即可。这里要注意:如果你以后计划把这台虚拟机搬到别的软件上用,选VHD的兼容性会更好;如果只在这台机器上用,VDI就够了,磁盘性能和体积控制更优。
创建完成后,先不要急着启动。选中虚拟机,点“设置”,重点检查这几个地方:
- “系统-主板”:内存再核对一次,启动顺序里光驱排在硬盘前面,这样后面才能从ISO启动。
- “系统-处理器”:CPU核数按需要调整,如果是Intel CPU,确认“VT-x/AMD-V硬件虚拟化”没有被禁用。这个选项如果没开,虚拟机启动会直接报错。
- “显示”:显存调到128MB,显卡控制器选VMSVGA,启用3D加速。这样Ubuntu的桌面特效和分辨率调整都更正常。
- “网络”:默认NAT模式就够用了,后面再单独聊网络模式。
这些参数里,最容易让新手“装完就黑屏”的就是显示配置和硬件虚拟化,我后面会专门讲。
2.3 Ubuntu镜像挂载与启动顺序
参数设置完之后,需要把下载好的Ubuntu ISO挂载到虚拟光驱上。操作路径是:设置-存储-存储介质-光驱图标-点右侧光盘图标-选择虚拟盘-选择Ubuntu ISO文件。挂载完成后,启动虚拟机就会自动进入Ubuntu安装界面。
如果你的光驱没有排在硬盘前面,启动时会直接进入系统找不到引导设备,所以在“系统-主板”里再把启动顺序检查一遍:光驱在上,硬盘在下。
有些新版VirtualBox里新建虚拟机会让你直接选ISO镜像,然后自动帮你创建并挂载,这种情况下更方便。但如果你用的是旧版,或者手头已经有现成虚拟机,手动挂载的操作还是要会,因为以后重装系统、装增强功能、换内核驱动都得用到这个操作。
3. 从创建到系统安装的完整实操
3.1 新建虚拟机完整步骤演示
我把完整操作按步骤拆开,你用的时候照着点就行:
- 打开VirtualBox,点击“新建”。
- 名称填“Ubuntu-24.04”,文件夹选非C盘路径,类型选Linux,版本选Ubuntu 64-bit。
- 内存大小填4096MB,点击下一步。
- 硬盘选“现在创建虚拟硬盘”,硬盘类型选VDI,存储选“动态分配”,大小填40GB,点击创建。
- 选中虚拟机,点“设置-存储”,把Ubuntu ISO挂载到光驱。
- 点“设置-系统-主板”,确认启动顺序里光驱在硬盘前。
- 点“设置-显示”,显存128MB,显卡控制器VMSVGA,勾选启用3D加速。
- 点“启动”,虚拟机开始从ISO引导。
启动以后,屏幕上会出现一个紫色界面,底部有几个图标,分别是Try or Install Ubuntu、Boot from first hard disk等。选第一项“Try or Install Ubuntu”并按回车。
这里有一个特别常见的误区:很多人看到界面卡在一个紫色屏或者黑屏上,就以为出问题了,其实ISO加载速度和物理机光驱不一样,耐心等20到40秒,进度条就会出来。你如果等了一分钟以上还卡着,再考虑ISO损坏或者显存过低的问题。
3.2 Ubuntu安装过程关键选项解读
进入安装界面后,左边选择语言。想练英文环境就选English,想日常用就选中文简体,这里无所谓,装完以后随时可以改。接下来是键盘布局,默认就行。到“Updates and other software”这一步,我建议勾选“Normal installation”,再勾选“Install third-party software for graphics and Wi-Fi hardware”,这样显卡驱动和无线网卡固件会自动带上,省去后面装驱动的麻烦。
然后是安装类型。这是最核心的一步。新手直接选“Erase disk and install Ubuntu”(清除整个磁盘并安装Ubuntu),这里要提醒一句:这个操作会清空虚拟硬盘里的所有数据,但因为是虚拟机里的虚拟硬盘,不会影响你宿主机里的文件,放心大胆操作就行。
选完以后,Ubuntu会弹出分区预览。默认会创建一个比较大的根分区和一个swap分区,对新手足够。如果你以后想玩高级分区,可以选手动分区,比如分配一个1GB的/boot、一个4GB的swap、剩下的全挂到/。但初次安装,我强烈建议不要手动分区,先跑通流程,以后熟练了再折腾。
接下来设置用户名、主机名和密码。记住你在这里填的用户名,后面登录系统、用sudo都要靠它。最后等待安装完成,进度条走完后会提示重启,点击“Restart Now”,然后按提示移除安装介质(其实就是弹出ISO),回车后虚拟机就会进入全新的Ubuntu系统。
3.3 首次登录后必做的五件事
系统装完不是终点,有几个配置建议第一时间做,能让后面使用顺畅很多:
- 先打开终端,执行一遍更新:
sudo apt update && sudo apt upgrade -y这会把系统自带软件包更新到最新,也能让后面装增强功能时不会缺依赖。
- 安装常用基础工具:
sudo apt install -y vim git curl net-tools openssh-server确认网络通不通。直接在浏览器里访问一个网站试试,或者用
ping测试外网。如果上不了网,大概率是虚拟网络模式或网卡驱动问题,后面第5章详细说。修改软件源为国内镜像(如果你在国内环境)。这步能明显提升安装软件的速度。打开“软件和更新”,把下载服务器换成阿里云或清华TUNA的镜像地址,保存即可。
设置开机自动登录或锁屏密码策略,看个人习惯。虚拟机主要是测试和学习用,我一般就把自动登录关掉,防止放着不管被别人动到里面的环境。
第1步和第4步特别重要,因为很多后续操作都要安装软件包,如果源没配好,装什么都会卡在下载阶段。我最初给客户搭建环境时经常卡在这一步,后来每次都先换源再干活,一步到位。
4. 装完系统后的“半个系统”:增强功能与共享配置
4.1 为什么要装VirtualBox增强功能
刚装完的Ubuntu虚拟机只有默认的1024x768分辨率,鼠标切换不顺畅,剪贴板不共享,拖拽文件更不可能,整个体验非常“隔阂”。这时候就要装增强功能,也就是Guest Additions。它就像给虚拟机装了一个驱动包,解决分辨率自动调整、双向剪贴板、共享文件夹、拖放、3D加速等一堆痛点。
在我眼里,增强功能是虚拟机“能用”和“好用”的分水岭。不装也能跑,但装了以后你完全感觉不到自己在一台虚拟机里操作。
4.2 增强功能安装的具体步骤和依赖坑
安装增强功能的路径是:虚拟机窗口菜单栏-“设备(Devices)”-“安装增强功能(Insert Guest Additions CD image)”,VirtualBox会挂载一个虚拟光驱。然后在Ubuntu终端里执行下面的流程:
sudo apt update sudo apt install -y build-essential dkms linux-headers-generic gcc sudo mkdir -p /media/cdrom sudo mount /dev/cdrom /media/cdrom cd /media/cdrom sudo ./VBoxLinuxAdditions.run sudo reboot这里大家最容易踩的坑就是:不装dkms和linux-headers-generic,直接跑VBoxLinuxAdditions.run,结果编译模块时报错说找不到内核头文件,安装失败。所以依赖步骤千万不能省。
另外就是Secure Boot。如果你的虚拟机开启且启用了安全启动(Ubuntu默认安装时一般会启用),那么第三方内核模块(就是VirtualBox增强功能)会因为没有签名而拒绝加载。现象是安装脚本跑完没报错,但重启后共享剪贴板、共享文件夹还是不能用。解决办法是在BIOS里禁用Secure Boot,或者在MOK管理里手动注册密钥,这一步比较繁琐,所以我在创建虚拟机时一般会先禁用Secure Boot。
4.3 共享文件夹和双向剪贴板配置
装好增强功能以后,共享文件夹和剪贴板就顺手了。
剪贴板设置:虚拟机菜单栏-“设备-共享剪贴板”,选“双向”;拖放(Drag and Drop)同样选“双向”。这样宿主机和虚拟机之间复制文字、拖文件都跟操作本地电脑一样。
共享文件夹设置:菜单栏-“设备-共享文件夹-共享文件夹设置”,点添加,选择宿主机上一个目录,勾选“自动挂载”和“固定分配”。然后在Ubuntu里执行:
sudo mkdir -p /mnt/share sudo mount -t vboxsf 文件夹名字 /mnt/share如果报错说mount: unknown filesystem type 'vboxsf',说明增强功能没装成功,回头去补装。另外,想开机自动挂载就把挂载命令加到/etc/fstab里,格式是这样的:
共享文件夹名 /mnt/share vboxsf defaults,uid=1000,gid=1000 0 0uid和gid用id -u和id -g查一下就行,这样登录后就能直接读写,权限问题全避开。
5. 网络模式与常见故障排查
5.1 四种网络模式怎么选
VirtualBox的虚拟网络模式是很多新手搞不懂的地方,我来对比一下。
| 模式 | 上网 | 与宿主机互访 | 与局域网其他机器互访 | 适用场景 |
|---|---|---|---|---|
| NAT | 可以 | 默认不行,需端口转发 | 不行 | 普通上网、更新软件包 |
| 桥接模式 | 可以 | 可以 | 可以 | 测试SSH、搭服务、模拟独立主机 |
| 仅主机模式 | 不行 | 可以 | 不行 | 宿主机和虚拟机私密通信 |
| 内部网络 | 不行 | 不行 | 虚拟机之间可以 | 模拟内网环境 |
默认的NAT模式适合大多数人,虚拟机通过宿主机地址访问外网,互不影响。但如果你想在局域网里直接通过SSH访问这个虚拟机,那就得用桥接模式。桥接模式下,虚拟机直接占用一个局域网IP,就像电脑旁又插了一台真机。
我个人做实验时最喜欢桥接模式,因为它直接把虚拟机和局域网拉平,应用调试特别方便。但要注意:桥接模式下虚拟机暴露在局域网里,如果系统里没什么防护,容易被扫描到,测试环境没有问题,生产绝对不建议。
如果你只是想在宿主机和虚拟机之间传文件,又不想折腾共享文件夹,NAT+端口转发也是个办法。在“网络-高级-端口转发规则”里,把宿主机的2222端口转发到虚拟机的22端口,然后宿主机执行ssh -p 2222 用户名@localhost就能连进虚拟机,非常灵活。
5.2 常见问题与解决办法速查
我整理一下这些年遇到最多的几个问题,基本就是你搜到的那些热词。
虚拟机启动就黑屏,进不去桌面多半是显卡配置问题。把“设置-显示-显存”调到128MB,确认启用了3D加速。如果还黑屏,启动时按Shift进入GRUB菜单,选“Ubuntu高级选项-恢复模式”,然后修复损坏的驱动。还有一个常见原因是没有开启硬件虚拟化,开机进BIOS把VT-x/AMD-V开启,或者检查Windows的Hyper-V和VirtualBox是否冲突。
“不能为虚拟机电脑打开一个新任务”的报错这是VirtualBox和驱动层的问题。先确认VT-x/AMD-V是否开启;如果是Windows宿主机,关闭Hyper-V、内核隔离等功能可能就正常了。我遇到过一台老机器,更新完VirtualBox以后这个报错消失,建议升级到最新版本。
USB设备接不上没装Extension Pack,或者虚拟机没设置USB控制器。去VirtualBox官网下载对应版本的Extension Pack安装,然后在虚拟机的“设置-USB”里启用USB 3.0控制器,再点菜单栏的“设备-USB”选择要接入的设备。
共享文件夹能挂载但无法读写大多是权限问题。挂载命令里加uid和gid,直接指定当前用户名对应的ID,比在宿主机上开放整个目录权限更安全,也更容易解决。
安装后中文输入法调不出来Ubuntu 24.04默认自带IBus输入法框架,去“设置-系统-键盘-输入源”里添加“Chinese (Intelligent Pinyin)”就行。如果还是调不出来,安装fcitx5再重启一次基本搞定:
sudo apt install -y fcitx5 fcitx5-chinese-addons虚拟机时间总是不对设置-系统-主板里勾选“硬件时钟使用UTC时间”再调整一下,或者直接装NTP同步服务,免得每次开机都要手动改时间。
装增强功能时报gcc版本不匹配先sudo apt update && sudo apt upgrade,确保内核和gcc都是最新版本,再重新运行VBoxLinuxAdditions.run。这个报错绝大多数是内核升级后旧编译器残留导致的,升级完重启再装就好。
5.3 最后再分享一个小习惯
每次刚装好一台Ubuntu虚拟机,我做的第一件事不是急着用,而是先做一次快照。VirtualBox的快照功能就在“机器-生成备份/快照”,给快照起个名字叫“纯净初始状态”,然后随便折腾系统、装东西、跑测试。哪天把环境玩坏了,右键快照点恢复,几分钟回到干净状态,比重新装系统省心太多。
这个习惯帮我省过无数时间。早期我总觉得自己操作不会出错,结果好几次改库表、改内核参数把自己锁在系统外面,悔得肠子都青了。快照就是后悔药,一定要养成习惯。
6. 一些留给你的扩展建议
如果你把上面这些步骤走完,VirtualBox加Ubuntu这套环境已经能覆盖绝大多数学习场景。接下来可以试着在这台虚拟机里再装一个Docker环境,测试容器编排;或者搭一个LAMP环境,体验真实网站部署流程;再或者利用快照做实验回滚测试,对系统的理解会深很多。
我个人在实际操作中的体会是:虚拟机的价值不在于“像一台真机”,而在于它能让你毫无心理负担地去试错。Linux不是看书学出来的,是敲命令敲出来的。VirtualBox加Ubuntu这套组合,就是让你能放开了折腾的最安全沙盒。按照这篇教程走完之后,你就有了一台随时可以拿出来练手的Linux环境,剩下的,大胆去试就好。