
如果你是做开发、运维或者想折腾 Linux 环境VirtualBox 装 Ubuntu 20.04 应该是绕不开的一步。这次我们完整走一遍下载镜像、创建虚拟机、安装系统、装增强功能、调网络、解决常见坑全程按实测顺序来每一步都给你判断标准照做就能跑起来。1. VirtualBox 安装 Ubuntu 20.04 核心信息速览先把关键信息放在前面。做虚拟机方案之前你真正关心的无非是用什么软件、用什么系统镜像、吃多少资源、能不能迁移、装完卡不卡。能力项说明宿主机平台Windows、Linux、macOS 均可VirtualBox 提供跨平台安装包虚拟化软件Oracle VirtualBox本文流程基于 VirtualBox 7.x 向导界面客户机系统Ubuntu 20.04 LTS20.04.6 及同系列镜像均可ISO 镜像类型Ubuntu 官方桌面版 ISO 或服务器版 ISO推荐桌面版做日常学习和开发测试内存分配建议4GB 起步8GB 体验较好受宿主机物理内存限制磁盘分配建议默认动态分配即可建议初始分配 30GB 左右空间不足可后续扩容CPU 分配建议 2 核起步编译和多任务场景可给 4 核需宿主机 CPU 支持并开启 VT-x/AMD-V显存设置VirtualBox 默认 128MB 左右即可满足桌面环境3D 加速按需开启是否支持迁移支持VirtualBox 虚拟机文件可复制到另一台宿主机重新导入但需要注意网卡和 UUID 问题启动方式VirtualBox 图形界面启动也支持 VBoxManage 命令行启动主要适合场景Linux 学习、Docker 环境、服务器开发、内网测试、跑 CI 本地调试、操作系统课程实验网络模式NAT、桥接、内部网络、仅主机四种默认 NAT 可上网安装后必做安装增强功能、开启双向粘贴板、设置共享文件夹、支持自适应分辨率需要明确一点VirtualBox 安装 Ubuntu 20.04 属于传统虚拟化方案不是容器方案。虚拟机里跑的是完整内核和宿主机彼此隔离适合需要 Linux 完整环境、内核模块、Docker 嵌套等场景。2. 适用场景与使用边界VirtualBox 装 Ubuntu 20.04 不是唯一选择但它是很多人的入门首选。适合这么用刚开始学 Linux 命令和服务器部署不想把宿主机搞坏。需要 Ubuntu 20.04 环境跑 Docker、MySQL、Redis、Nginx 等常见服务。做操作系统课程实验管理考试环境。想试 Ubuntu 桌面版又不想双系统。做局域网内网测试需要一台独立 IP 的虚拟机。实验性安装 Python、CUDA 开发环境后续可以随时删掉重建。有些场景不适合需要高频访问显卡做 AI 训练和推理VirtualBox 的 GPU 穿透能力有限更建议 Windows WSL2 或裸机 Linux。需要极致磁盘 IO虚拟磁盘存在性能损耗大规模数据库压测建议换原生环境或使用 Docker on Linux。需要直接读取宿主机 USB 加密狗和设备驱动需要额外加装扩展包和 USB 过滤器不是开箱即用。安全和合规边界也要注意安装的 Ubuntu 系统请从官方渠道下载 ISO。虚拟机里的服务不要随意映射到公网默认 NAT 不会暴露端口桥接模式则要自己做好防火墙。共享文件夹会把宿主机目录暴露给虚拟机只给最小读写权限不要共享整个磁盘。如果在虚拟机里运行爬虫、扫描器、代理类工具务必确认使用边界和授权范围不要用于未授权目标。镜像文件、课程环境、许可证问题需要确认来源合规。3. 环境准备与前置条件在正式动手之前先把宿主机和软件准备到位。VirtualBox 安装 Ubuntu 20.04 不需要太高的服务器配置普通办公电脑即可但下面几项直接影响体验。3.1 操作系统与硬件VirtualBox 支持 Windows、macOS、Linux 宿主机。Windows 10/11 和主流 Linux 发行版都没有问题。比较关键的是 CPU 虚拟化Intel CPUBIOS 里开启 VT-x。AMD CPUBIOS 里开启 SVMAMD-V。可以在任务管理器 - 性能 - CPU 里查看“虚拟化”是否已启用。如果没有开启后面启动虚拟机时会直接报错提示“VT-x is not available”或者类似信息这类错误排查放在常见问题里具体讲。内存方面宿主机 8GB 起步比较稳妥16GB 内存跑虚拟机会更自在。给虚拟机分配内存时不要让宿主机内存见底。磁盘空间建议预留 50GB 以上因为 Ubuntu 20.04 系统本身占 10GB 左右再安装开发工具、Docker 镜像后会快速膨胀。注意以下安装步骤以 Windows 11 宿主机为例但操作流程在 Linux 和 macOS 宿主机上基本一致只是安装包格式和菜单名称略有差别。3.2 下载 VirtualBox 安装包VirtualBox 的官网地址固定进入 Downloads 页面后选择对应宿主机平台的安装包。Windows 用户下载 exeLinux 用户选择对应发行版的包。如果你需要扩展包比如 USB 3.0 支持、RDP 远程桌面下载同一个版本的 Extension Pack这个后面安装增强功能时也可能用到。安装过程没有特殊选项按默认下一步即可。安装时会提示网络接口警告这是因为 VirtualBox 要安装虚拟网卡驱动点击安装即可。3.3 下载 Ubuntu 20.04 LTS 镜像Ubuntu 20.04 是 LTS 版本支持周期长软件源稳定很多教程和服务器环境都基于它。下载位置在 Ubuntu 官方 Releases 页面当前 20.04.x 的桌面版和服务器版都在这里。注意区分架构x86_64 架构绝大多数电脑选这个。ARM 架构需要下载 ARM64 镜像但 VirtualBox 在 Windows 宿主机上主要支持 x86_64ARM 场景建议先确认你的 VirtualBox 版本是否支持。桌面版后缀类似ubuntu-20.04.6-desktop-amd64.iso服务器版后缀类似ubuntu-20.04.6-live-server-amd64.iso。日常学习和桌面体验选 desktop纯服务器环境选 live-server。下载完成后校验一下 SHA256 值避免镜像文件不完整导致安装中途失败。Windows 下可以用 PowerShellGet-FileHash .\ubuntu-20.04.6-desktop-amd64.iso -Algorithm SHA256和官方页面给的哈希值对比一致再继续操作。3.4 检查端口与默认设置VirtualBox 管理界面通过 GUI 操作一般不占额外端口。VM 内部的 SSH 默认走 22 端口如果开启了 NAT 端口转发需要保证宿主机 22 端口没被系统服务占用。安装阶段可以先不设置端口转发装完系统后再按需添加。4. VirtualBox 创建虚拟机与安装 Ubuntu 20.04环境准备好了下面进入实操。整个流程按顺序做不需要额外命令全部在 VirtualBox 图形界面完成。4.1 新建虚拟机打开 VirtualBox点击“新建”。名称填写Ubuntu20.04VirtualBox 会自动识别类型为 Linux版本为 Ubuntu (64-bit)。如果识别不对手动选择 Linux 和 Ubuntu (64-bit)。文件夹默认放在用户目录下的VirtualBox VMs如果 C 盘空间紧张建议改到其他盘例如D:\VirtualMachines。ISO 镜像选择刚才下载的 Ubuntu 20.04 ISO 文件。点击下一步后设置硬件参数。内存大小推荐 4096 MB4GB。如果你的宿主机内存只有 8GB可以分 4GB如果 16GB 以上分 8GB 体验更好。处理器核心数推荐 2 个如果宿主机 CPU 核心足够多可以给 4 个但不要超过宿主机物理核心数的一半避免把宿主机拖死。虚拟硬盘选择“现在创建虚拟硬盘”硬盘文件类型选 VDI存储方式选“动态分配”初始大小 30GB。动态分配的意思是刚开始文件很小实际用到多少才增长多少不会瞬间占满 30GB 磁盘空间。参数配置好后点击“完成”。4.2 修改虚拟机显示设置虚拟机创建完后先别急着启动。在设置里把下面几项调好能省掉很多后续麻烦。进入“设置 - 显示”显存大小调整到 128MB。图形控制器默认 VMSVGA 即可支持 Ubuntu 20.04 桌面环境。加速3D 加速可以根据需要勾选如果安装增强功能后桌面卡顿可以尝试关闭 3D 加速。进入“设置 - 存储”确认 Ubuntu 20.04 ISO 已经挂在光驱位置。如果没有点击光驱图标选择“选择磁盘文件”把 ISO 加进去。进入“设置 - 网络”默认“NAT 网络”即可。NAT 模式能让虚拟机通过宿主机共享网络上网虚拟机启动后 DHCP 自动获取 IP不需要额外配置。4.3 启动安装 Ubuntu 20.04点击“启动”。第一次启动时VirtualBox 可能弹出“选择启动盘”对话框选择 Ubuntu 20.04 ISO 后回车。启动后进入 Ubuntu 安装界面流程如下第一步选择语言并点击“安装 Ubuntu”。第二步键盘布局默认 English (US) 或 Chinese按自己习惯选择。第三步更新和其他软件。这里建议选“正常安装”网络下载更新可以临时不勾选安装完系统后再统一更新速度更快更可控。第四步安装类型。如果是全新的虚拟磁盘直接选“清除整个磁盘并安装 Ubuntu”这是最省事的方案。你不需要担心宿主机磁盘被清掉这里的“整个磁盘”指的是虚拟硬盘不是物理硬盘。第五步选择时区为 Shanghai点击继续。第六步填写用户名、计算机名、密码。这些信息要记住后面登录系统和管理员权限都要用到。点击“继续”后Ubuntu 开始安装。安装过程取决于磁盘速度和 ISO 读取速度通常 5 到 15 分钟。安装完成后提示重启点击“现在重启”。如果重启时提示“请移除安装介质”直接把光驱里的 ISO 移除或者关闭虚拟机后手动移除再启动。4.4 安装完成后的首次启动重启后进入 Ubuntu 20.04 桌面输入刚才设置的用户名和密码登录。到这里VirtualBox 安装 Ubuntu 20.04 的“最小可用系统”已经完成。但此时系统还是原始状态分辨率和宿主机不一致粘贴板不互通也没有共享文件夹这些都要通过安装增强功能解决。5. 安装 VirtualBox 增强功能增强功能是 VirtualBox 集成工具的统称装好之后有四个直观收益支持自适应分辨率虚拟机窗口可以随意拉伸。支持宿主机和虚拟机双向共享粘贴板。支持拖拽文件。优化鼠标切换、屏幕刷新和显卡驱动。5.1 安装步骤在 Ubuntu 20.04 虚拟机顶部的菜单栏点击“设备 - 安装增强功能”。VirtualBox 会加载一个虚拟光盘VBox_GAs_6.x.xUbuntu 桌面版会自动弹出光盘窗口或者在文件管理器侧边栏能看到。如果图标没有自动运行打开文件管理器进入光盘目录在空白处右键打开终端执行ls你会看到VBoxLinuxAdditions.run这个脚本。运行它需要 root 权限和若干编译依赖所以先装依赖sudo apt update sudo apt install -y build-essential dkms linux-headers-$(uname -r)依赖装完后执行脚本sudo bash ./VBoxLinuxAdditions.run等待脚本执行完成看到类似Building the VirtualBox Guest Additions kernel modules和Successfully installed的时候说明安装成功。重启虚拟机使模块生效sudo reboot重启后在虚拟机菜单栏“设备 - 共享粘贴板”里选择“双向”再拖一下窗口试试分辨率变化。5.2 增强功能安装失败的常见原因如果你执行VBoxLinuxAdditions.run时提示找不到内核头文件通常是因为内核头文件没装好。确认一下uname -r apt list --installed | grep linux-headers如果实际运行的内核版本和linux-headers-$(uname -r)不一致重新执行安装命令sudo apt install -y linux-headers-$(uname -r)另外要注意Ubuntu 自动更新内核后需要重新编译增强功能模块。建议装完增强功能后暂时不要更新内核等工作稳定后再做系统更新。5.3 设置共享文件夹共享文件夹用于在宿主机和虚拟机之间传文件。先关闭虚拟机的“设置 - 共享文件夹”点击右上角“添加共享文件夹”图标。选择宿主机上的一个目录比如D:\share勾选“自动挂载”和“固定分配”。如果想让虚拟机有写权限勾选“读写”。在虚拟机里共享文件夹默认挂载在/media/用户名/sf_share但由于权限控制当前用户可能没有直接访问权限。把用户加入 vboxsf 组即可sudo usermod -aG vboxsf $USER退出重新登录访问/media/用户名/sf_share应该能看到宿主机D:\share里的文件并且可以读写。6. 安装后的基础配置与网络设置基础系统跑起来了不等于能直接用还需要做几项配置尤其是软件源、SSH 和剪贴板功能。6.1 更换 apt 软件源默认软件源在国外国内更新速度可能比较慢。把软件源换成国内镜像源比如清华源、阿里源或中科大源。下面以清华源为例。先备份源文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑源文件sudo sed -i s//.*archive.ubuntu.com//mirrors.tuna.tsinghua.edu.cng; s//security.ubuntu.com//mirrors.tuna.tsinghua.edu.cng /etc/apt/sources.list执行更新sudo apt update sudo apt upgrade -y如果你经常访问国外软件源也可以保持默认不换源问题也不大。6.2 启用 SSH 服务如果你想从宿主机用终端连接虚拟机需要安装 SSH 服务sudo apt install -y openssh-server sudo systemctl enable ssh --now查看虚拟机 IPip a如果你用的是 NAT 网络模式宿主机无法直接访问虚拟机需要设置端口转发。常见做法是宿主机 2222 端口转发到虚拟机 22 端口。在 VirtualBox 的设置 - 网络 - 高级 - 端口转发里添加规则名称ssh协议TCP主机 IP127.0.0.1主机端口2222子系统 IP留空或填虚拟机的 NAT 内网 IP子系统端口22之后宿主机的 SSH 命令ssh -p 2222 用户名127.0.0.1如果虚拟机用的是“桥接模式”它会直接出现在局域网像一台独立主机一样可以直接用局域网 IP 访问省去端口转发。6.3 验证虚拟机能否正常上网Ubuntu 20.04 默认 NAT 模式可联网。测试命令ping -c 4 archive.ubuntu.com ping -c 4 mirrors.tuna.tsinghua.edu.cn如果 ping 不通检查以下内容虚拟网卡是否启用了 DHCP。宿主机防火墙是否拦截了 VirtualBox。VirtualBox 网络模式是否意外改成了“未连接”。6.4 检查系统版本与内核验证当前系统信息lsb_release -a uname -a如果显示Ubuntu 20.04.x LTS说明系统安装成功。7. VirtualBox 网络模式选择与端口转发网络配置是虚拟机使用中最容易出问题的地方这里单独展开说一下。VirtualBox 有四种网络模式工作方式不同适用场景也不同。网络模式虚拟机能否上外网宿主机能否访问虚拟机局域网设备能否访问虚拟机适用场景NAT能不能直接访问需端口转发不能默认模式适合下载软件、系统更新桥接能能直接用虚拟机局域网 IP能需要局域网互动测试仅主机 Host-Only不能访问外网能不能测试内网服务、隔离环境内部网络不能访问外网不能直接用不能多台虚拟机内部通信测试日常使用默认 NAT 就足够。但如果要用 SSH 从宿主机直接连接虚拟机就需要学会端口转发或者直接切换到桥接模式。桥接模式的好处是虚拟机就像局域网里的一台真实电脑缺点是虚拟机完全暴露在局域网内需要自己做好防火墙。如果你在多台宿主机之间迁移虚拟机会发现网卡名称变了比如从enp0s3变成enp0s8。这是因为 VirtualBox 给每个虚拟网卡分配了固定的 MAC 和 PCI 地址。迁移后如果是让 Ubuntu 重新识别新硬件sudo rm -f /etc/udev/rules.d/70-persistent-net.rules然后重启虚拟机。当然这个问题在较新的 Ubuntu 上已经不太常见但遇到网络不通时可以按这个思路排查。8. 资源占用与性能优化虚拟机性能是一个相对概念取决于宿主机配置、分配资源和操作系统负载。8.1 资源占用观察方法在虚拟机运行时可以通过任务管理器观察宿主机 CPU、内存和磁盘使用情况。在虚拟机内部可以通过top、htop、free -h查看实际使用。free -h htop装完桌面环境并打开浏览器虚拟机内存占用通常在 1GB 到 2GB 之间空闲桌面大概 800MB 到 1.2GB。这只是普遍的观察经验具体数字受桌面环境、后台服务、已安装软件影响以你自己的测试为准。如果内存不够用系统会开始使用 swap这时候桌面会明显卡顿。建议把虚拟机的内存分配到宿主机物理内存的一半以内并且保留至少 2GB 给宿主机。8.2 性能优化建议处理器核心数从 2 核开始编译任务时再增加到 4 核。显存 128MB开启 3D 加速能改善桌面渲染和视频播放。虚拟磁盘默认 VDI 动态分配性能一般。固态硬盘上体验更好如果感觉磁盘 IO 慢可以尝试把虚拟磁盘文件迁移到 SSD 目录中并保持至少 20% 空闲空间。如果不需要桌面环境建议用 Ubuntu Server 版安装比桌面版流畅得多。不要同时运行多个大型虚拟机虚拟化环境本身会叠加内存和 CPU 开销。增强功能必装少了它桌面鼠标切换和分辨率适配会很难受。8.3 减少虚拟机卡顿的排查顺序如果你觉得虚拟机里操作卡顿按以下顺序检查先看宿主机资源占用是不是内存已经满了再看虚拟机分配的内存和 CPU 是否足够然后确认增强功能是否安装成功最后检查磁盘剩余空间。大部分卡顿问题出在内存不足或者没有安装增强功能。9. 常见问题与排查方法把实操中经常遇到的坑整理成表格遇到问题直接对照处理。问题现象可能原因排查方式解决方案启动虚拟机提示 VT-x/AMD-V 不可用BIOS 未开启虚拟化任务管理器查看虚拟化状态重启进 BIOS开启 VT-x/AMD-V 后重启宿主机提示“未能启动虚拟电脑可能缺少操作系统”没有挂载 Ubuntu ISO或者 ISO 损坏查看存储设置里是否有 ISO校验 ISO 哈希重新挂载官方 ISO确认 SHA256Ubuntu 安装界面黑屏或花屏显存不足或图形控制器不匹配尝试降低显存大小或切换图形控制器设置显存 128MB图形控制器切到 VMSVGA安装完成后重启卡在“移除安装介质”光驱仍挂着 ISO在存储设置里移除 ISO关闭虚拟机弹出 ISO 后重新启动虚拟机增强功能安装失败缺少编译工具和内核头文件查看/var/log/vboxadd-setup.log安装 build-essential、dkms、linux-headers虚拟机无法上网网络模式为未连接或 DHCP 异常执行ip a查看网卡状态网络模式切为 NAT重启网络服务宿主机无法 SSH 到虚拟机NAT 模式下未配置端口转发检查端口转发规则添加 2222 到 22 的 TCP 转发规则虚拟机和宿主机复制粘贴无效增强功能未安装或粘贴板方向设置错误检查增强功能运行状态安装增强功能设置共享粘贴板为“双向”虚拟机里共享文件夹不显示用户不在 vboxsf 组执行groups $USER执行sudo usermod -aG vboxsf $USER并重启迁移虚拟机到另一台宿主机后网络不通虚拟网卡 MAC 和 udev 规则冲突查看ip a检查网卡名称删除70-persistent-net.rules重启网络服务安装 docker 后网络功能异常Ubuntu 20.04 内核中 iptables 版本变化执行sudo docker run hello-world查看错误日志配置 iptables-legacy 或调整 docker 网络配置虚拟机里鼠标被“捕获”退出不了增强功能未安装按右侧 Ctrl 键释放鼠标安装增强功能以上问题覆盖了从创建虚拟机到日常使用的主要故障点新手遇到报错时不要慌先看错误弹窗里的关键词再对照表格处理。10. 最佳实践与使用建议作为一个长期使用 VirtualBox 和 Ubuntu 的组合方案给你几个工程化建议能少走很多弯路。第一第一次测试不要追求大配置。先用 2 核 4GB 内存 30GB 动态磁盘跑通全流程确认没问题后再按需调整。第二保留一份最小可运行配置。系统装好后如果没问题可以把整个虚拟机目录复制一份备份或者用 VirtualBox 的“导出”功能导出为 OVA 文件。以后环境搞坏了直接重新导入而不是重装系统。第三模型文件、ISO 镜像、虚拟机磁盘文件、共享文件夹分开存放。不要全部堆在系统盘。VirtualBox 默认把虚拟机放在用户目录机箱紧张时迁移到其他盘可以减小 C 盘压力。第四批量创建虚拟机时尽量使用无人值守安装和 VBoxManage 命令。单个虚拟机用图形界面没问题但如果你需要同时创建多个环境手动点界面的效率太低。VBoxManage 创建虚拟机的通用命令模板VBoxManage createvm --name Ubuntu20.04-auto --ostype Ubuntu_64 --register VBoxManage modifyvm Ubuntu20.04-auto --memory 4096 --cpus 2 --vram 128 VBoxManage createhd --filename Ubuntu20.04-auto.vdi --size 30720 --format VDI VBoxManage storagectl Ubuntu20.04-auto --name SATA --add sata --controller IntelAhci VBoxManage storageattach Ubuntu20.04-auto --storagectl SATA --port 0 --device 0 --type hdd --medium Ubuntu20.04-auto.vdi VBoxManage storageattach Ubuntu20.04-auto --storagectl SATA --port 1 --device 0 --type dvddrive --medium ubuntu-20.04.6-desktop-amd64.iso VBoxManage modifyvm Ubuntu20.04-auto --nic1 nat VBoxManage startvm Ubuntu20.04-auto注意上面命令里的虚拟机名、路径、ISO 文件需要按你的实际环境替换不同平台和 VirtualBox 版本参数细节会有差异建议先查看帮助文档确认。第五引入自动化配置管理。虚拟机装好后可以用 Ansible 或者 shell 脚本统一安装常用软件、配置源、设置防火墙规则。这样每台新虚拟机的交付成本会低很多。第六日常使用注意安全。虚拟机默认 NAT 模式比较安全如果切换桥接模式请确认 Ubuntu 防火墙已启用sudo ufw enable sudo ufw allow 22/tcp不要在桥接模式下暴露不安全的服务。第七遇到虚拟机和宿主机之间网络不通时先把网络模式切回 NAT确认能上网后再排查桥接问题。一个稳定可用的环境比复杂的网络拓扑更重要。第八使用快照功能。在安装增强功能、配置基础环境、安装大型软件之前分别打一个快照出错时直接恢复到上一个状态比重新安装省很多时间。11. 总结与下一步VirtualBox 安装 Ubuntu 20.04 的成功路径很明确下载官方 ISO创建虚拟机挂载 ISO安装系统安装增强功能按需调整网络。整个过程不涉及高深命令但容易在 BIOS 虚拟化、ISO 挂载、增强功能依赖这三个环节踩坑。建议拿到虚拟机后先按优先级验证几件事执行uname -a和lsb_release -a确认系统版本和内核版本。执行ping命令确认网络连通性。安装增强功能后测试复制粘贴和窗口缩放。配置 SSH 并尝试从宿主机远程连接。安装 Docker 并跑一个hello-world容器确认虚拟化环境能支撑容器服务。这套环境搭好之后后续可以继续扩展安装 Ubuntu Server 做无桌面服务器、用 Vagrant 管理虚拟机、配置多台虚拟机组成内网集群、或者把 Ubuntu 20.04 作为 Docker 宿主环境。VirtualBox 和 Ubuntu 20.04 的组合不复杂但它能承载的实践内容非常多值得花时间把它配置成一个稳定的日常开发环境。