
1. 准备工作与版本选择思路1.1 为什么选择 VirtualBox 搭配 Ubuntu 18.04很多人第一次接触 Linux 都是从虚拟机开始的而 VirtualBox 加 Ubuntu 18.04 这个组合可以说是新手入门最稳妥的搭配之一。VirtualBox 是某公司开源的虚拟化软件免费、跨平台Windows、macOS、Linux 主机都能跑Ubuntu 18.04 则是长期支持版本生命周期长、软件源丰富、社区资料多遇到问题一搜就能找到解决方案。我实际操作下来的感受是这对组合对硬件的门槛很低普通办公电脑甚至几年前的旧笔记本都能流畅运行。而且 VirtualBox 的界面逻辑很直观——左边是虚拟机列表右边是当前选中虚拟机的详细配置几乎不需要学习成本。相比 VMware WorkstationVirtualBox 唯一的短板可能是部分高级功能不够完善但对学习 Linux、跑开发环境、测试服务来说完全够用。需要明确一点Ubuntu 18.04 现在已经停止官方安全更新如果你是要上生产环境我更推荐升级到 20.04 或 22.04 LTS。但如果你是学习 Linux 基础、复现老项目、跑特定课程实验18.04 依然是一个稳定且资料充足的选择。1.2 镜像下载与文件校验安装 Ubuntu 之前要做两件事下载镜像、校验镜像完整性。Ubuntu 各版本镜像可以从国内各大高校的镜像站下载速度比官方源快很多以 18.04.6 这个最终维护版本为例下载的是桌面版desktop镜像还是服务器版server镜像取决于你的用途桌面版带图形界面适合新手熟悉 Linux 操作日常办公、浏览网页、写代码都行服务器版纯命令行适合部署服务、学习服务器运维占用资源少学习建议直接用桌面版图形界面能帮你降低挫败感。镜像文件一般有 1.8GB 左右下载完务必校验 SHA256 值镜像站页面会给出对应的校验码。Windows 下用 PowerShell 执行Get-FileHashmacOS 和 Linux 下用sha256sum对比一下跟官方公布的一致再开始安装。这一步很多人会跳过但网络传输中文件损坏的情况并不罕见镜像文件坏了安装到一半报错反而更浪费时间。1.3 VirtualBox 版本选择与安装注意点VirtualBox 的版本选择有个容易被忽略的细节新版 VirtualBox 通常会把旧版虚拟机的兼容性放在首位所以不用追求绝对最新选一个稳定版本即可。另外VirtualBox 的扩展包Extension Pack也值得一并下载它提供了 USB 3.0 支持、磁盘加密、远程显示等增强功能和主程序版本号严格对应装错版本会提示不匹配。Windows 主机上安装 VirtualBox 时要注意安装向导会提示网络功能相关的驱动安装可能会短暂断开本地网络这是正常现象。macOS 上安装则需要在系统设置里允许这个软件的加载。安装包一路默认选项即可不建议修改安装路径到带中文的目录避免后续虚拟机文件出现编码问题。2. 虚拟机创建与关键参数设置2.1 新建虚拟机的完整流程打开 VirtualBox 主界面点击“新建”会进入创建向导。名称建议用英文比如ubuntu18-learn因为虚拟机的名称会直接用作默认文件夹名中文名在某些路径解析场景下可能出现异常。类型选 Linux版本选 Ubuntu 18.04 (64-bit)如果下载的是 32 位镜像就选对应 32 位版本现在基本没有 32 位需求了。这里有个经验如果你在宿主机的 BIOS 里没开启硬件虚拟化VT-x/AMD-VVirtualBox 只能跑 32 位系统而且性能极差。Windows 下可以用任务管理器-性能-CPU 查看“虚拟化”是否已启用没启用的话需要重启进 BIOS 打开 Intel Virtualization Technology 或 SVM Mode。内存大小分配上给虚拟机 4GB 比较合理宿主机内存 8GB 以下的话可以减到 2GB。Ubuntu 18.04 桌面版最低要求是 2GB但真给 2GB 运行起来会有明显的卡顿尤其是打开浏览器和 IDE 的时候。虚拟硬盘选择 VDI 格式动态分配空间容量给 30GB 左右这个容量对学习环境来说足够了。动态分配的意思是虚拟硬盘文件会随着实际占用慢慢增大不会一开始就把 30GB 全部占掉比你物理磁盘空间小也能正常创建。2.2 虚拟硬盘的存储策略与建议虚拟硬盘有三种格式VDI、VHD、VMDK。默认的 VDI 是 VirtualBox 自家格式VHD 是 Windows 的虚拟硬盘格式VMDK 是 VMware 的格式。如果没有特别的跨平台迁移需求直接选 VDI 就好。分配方式有动态分配和固定大小两种动态分配节省宿主机空间固定大小性能略好且更稳定但会立刻占用你设置的容量。我给学习场景的建议是动态分配因为虚拟机里实际用不了太多空间30GB 的动态文件通常只会占据宿主机十几GB。有一点需要注意动态分配的磁盘用久了虚拟硬盘文件不会自动缩小即使你在虚拟机里删了大量文件宿主机上的 .vdi 文件还是那么大。想回收空间需要做一次零填充加压缩操作后面常见问题部分我会详细讲。2.3 显卡、显存与 EFI 引导设置默认显存 16MB 只能满足纯文本控制台Ubuntu 桌面版跑起来会非常卡建议直接拉到 128MB。启用 3D 加速也勾上安装增强功能之后桌面特效和窗口拖拽会更流畅。存储控制器不用改默认的 SATA 控制器加光驱就好。系统引导方式默认是传统 BIOS如果你后续计划安装其他较新的系统比如 Ubuntu 20.04可以在创建虚拟机时勾选“启用 EFI”这样能避免部分新系统在传统 BIOS 模式下的兼容问题。但 18.04 用传统 BIOS 引导完全没问题不需要额外折腾。3. Ubuntu 18.04 安装全流程实操3.1 启动与引导菜单点击“启动”VirtualBox 会弹出一个选择启动光盘的窗口指向你下载的 Ubuntu 镜像文件即可。如果错过了这个弹窗可以在虚拟机窗口右下角的光驱图标上右键选择“选择磁盘映像文件”来重新挂载。启动后会出现紫色界面有“尝试 Ubuntu”和“安装 Ubuntu”两个主要选项。新手建议选“尝试 Ubuntu”先进 Live 环境看看硬件识别情况尤其是无线网卡和显卡是否正常。确认没问题后双击桌面的“安装 Ubuntu”进入安装程序。3.2 语言、键盘布局与联网更新选项安装界面第一步选语言中文简体在最底部。键盘布局选 English (US)如果你用的是中文输入法布局可以在系统安装完成后再添加。接下来会问“您希望安装其他软件吗”这里关键的选择是是否勾选安装时下载更新。建议不要勾选“安装 Ubuntu 时下载更新”因为安装过程中联网下载更新会让总耗时翻倍而且国内网络环境下载速度不稳定。系统装好后换国内软件源再执行更新速度会快得多。3.3 安装类型与手动分区详解到“安装类型”这一步选择“清除整个磁盘并安装 Ubuntu”这是整个向导里唯一一个可能对宿主机产生影响的选项——注意这里的“整个磁盘”是指虚拟机的虚拟硬盘不是宿主机真实硬盘。如果你不小心在物理机上运行安装程序选了这一项会造成不可逆的数据丢失所以务必确认自己是在虚拟机里操作。如果你希望手动分区选择“其他选项”后看到类似这样的布局分区大小类型挂载点/dev/sda1512MBEFI 系统分区/boot/efi/dev/sda24GBswapswap/dev/sda3剩余全部ext4/对绝大多数人来说这个手动分区不是必须的“清除整个磁盘”的自动方案已经把/和 swap 都安排好了。手动分区主要的好处是可以单独划分/home方便以后重装系统时保留用户数据但对虚拟机学习场景意义不大。3.4 时区、账户设置与正式安装时区输入 shanghai自动匹配到东八区。账户设置这里要记住一个细节在 Ubuntu 18.04 中如果你把用户名设成admin之类的系统保留名称安装器会直接拒绝。用户名建议全小写英文不要带空格和特殊符号。密码复杂度随意但既然是学习环境建议设一个自己记得住又不太简单的组合。点击“继续”后安装器会开始复制文件、安装软件包。这个过程大概 10 到 20 分钟取决于镜像性能和虚拟磁盘 IO 速度。期间有个提示叫“您需要重新启动计算机以完成安装”等它出现就可以重启了。重启时不要直接关掉虚拟机窗口用虚拟机窗口菜单里的“重启”操作。等它还让你按 Enter 键按一下就会进入全新的 Ubuntu 系统。4. 安装后的必做配置与系统优化4.1 安装 VirtualBox 增强功能Ubuntu 装好进入桌面后第一件事是安装增强功能。这个工具包提供三项核心能力动态调整虚拟机分辨率、宿主机与虚拟机之间的剪贴板共享、拖拽文件传输。没有装增强功能的 VirtualBox 虚拟机分辨率固定在 800×600很难受。安装流程虚拟机窗口菜单栏“设备 → 安装增强功能”Ubuntu 桌面上会弹出一个光盘图标打开后运行里面的autorun.sh。实际上我建议手动打开终端执行sudo apt update sudo apt install -y build-essential dkms linux-headers-$(uname -r) sudo mount /dev/cdrom /mnt cd /mnt sudo ./VBoxLinuxAdditions.run为什么要先装内核头文件VBoxLinuxAdditions.run 本质上是编译加载内核模块如果没有匹配的内核头文件编译会直接报错。提示Building the VirtualBox Guest Additions kernel modules ... fail就是缺了这些依赖。装完后重启虚拟机分辨率就能自适应窗口拉伸剪贴板共享也能用了。如果重启后发现分辨率还是不对检查窗口菜单的“视图 → 虚拟显示器”是否设置了“自动调整显示尺寸”。4.2 更换 apt 软件源与系统更新Ubuntu 18.04 默认的软件源指向官网国内访问速度不理想。中期系统升级或者 apt install 某个软件时要等很久所以装完系统第一件事就是把软件源换成国内镜像站。我习惯用下面的方式先备份原始源列表然后直接用 sed 替换。sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g /etc/apt/sources.list sudo apt update sudo apt upgrade -y源的选择上清华、阿里、中科大源都是长期稳定运营的公开镜像服务。不同时期各源的速度略有差异自己可以测试比较规则就是把archive.ubuntu.com全部替换成镜像站域名。Ubuntu 18.04 还有个特殊性——它的源使用的是bionic代号镜像站一般会同时保留这个目录不用额外适配。4.3 中文输入法与字体美化Ubuntu 18.04 默认使用 IBus 输入法框架设置里能直接添加汉语输入法但默认的智能拼音词库比较弱候选词排序也一般。如果你能接受这个小缺点直接在“设置 → 区域和语言 → 输入源”里添加即可不需要装额外组件。需要更好用输入法的话可以安装 fcitx 框架下的拼音输入方案这两个在 18.04 的年代是主流选择。安装完成后可能需要注销重新登录才能生效。注意不要在 IBus 和 fcitx 之间反复切换两套框架共存有时会有冲突表现为输入候选框无法正常弹出遇到这种问题果断选择一套留用另一套彻底卸载。字体的部分中文显示发虚是 Ubuntu 的老问题因为默认中文字体是文泉驿微米黑小字号下渲染效果一般。装一套 Noto Sans CJK 字体能明显改善sudo apt install -y fonts-noto-cjk fonts-noto-cjk-extra装完之后在“字体”设置里把默认字体调到 Noto Sans CJK SC界面整体会舒服很多。4.4 设置快照与备份习惯很多人用虚拟机不重视快照功能直到某一天把系统搞坏了才后悔。VirtualBox 的快照就是虚拟机的“存档点”你可以随时回退到某个时间点的系统状态。比如刚装好系统、配好源、装完增强功能这个状态非常值得打一个快照。操作方式虚拟机窗口右上角菜单“控制 → 生成备份”或者主界面选中虚拟机后点击“备份”按钮填写名称和描述。快照可以多打几个刚装完系统一个、配好开发环境一个、准备跑实验项目一个。但快照不是越多越好每个快照都会占用额外磁盘空间而且快照过多会加大 IO 开销运行速度下降。我的建议是保留 2-3 个关键节点即可确定稳定后可以删除旧快照把空间还给宿主机。5. 常见问题与排查技巧5.1 虚拟机启动黑屏或无法引导这个问题在 VirtualBox 装 Ubuntu 时出现过多次典型现象是启动后一直黑屏、有_光标闪烁但进不了系统的图形界面或 Grub 界面。排查看起来复杂实际原因通常就几个镜像文件下载不完整SHA256 校验不一致。这是第一个要查的重新下载镜像最稳。虚拟机的系统类型选错了比如选了 Ubuntu 32-bit 却用 64 位镜像。宿主机 BIOS 没有开启 VT-x/AMD-VVirtualBox 无法进行硬件虚拟化。可以在主界面“全局设定 → 硬件加速”检查半虚拟化接口是否正常可用。显卡控制器配置问题。可以在虚拟机的“设置 → 显示”里把显卡控制器从 VBoxVGA 改成 VMSVGA一些旧版本镜像对 VBoxVGA 支持不佳。经验之谈黑屏问题 70% 以上是前三个原因先把前三个排除掉别急着改显卡配置。5.2 增强功能安装失败前面提到过编译内核模块依赖缺失的问题这里再补充一个情况如果你在虚拟机里升级了内核之前装好的增强功能可能在新内核下失效需要重新执行一遍安装脚本。出现Module vboxguest is not found这类报错时方案就是sudo apt install -y build-essential dkms linux-headers-$(uname -r) sudo /mnt/VBoxLinuxAdditions.run --force sudo reboot还有个小细节VBoxLinuxAdditions.run要挂载光盘后运行如果你挂载/dev/cdrom时提示/dev/cdrom不存在检查光驱是否已经挂载了 ISO 。如果没挂载到点击菜单“设备 → 安装增强功能”后再执行 mount。5.3 共享剪贴板不生效剪贴板共享在“设置 → 常规 → 高级”里单向或双向模式都要在虚拟机启动前配置好才生效。如果你配好了还是不能用确认增强功能是否已安装成功gem 用户组权限是否正常sudo usermod -aG vboxsf $USER注意vboxsf组是 VirtualBox 增强功能创建的共享文件夹用户组如果没装增强功能这个组不存在命令会报错。所以这个操作排在安装增强功能之后。重启后宿主机和虚拟机之间就能互相复制文本了。拖拽文件如果也不可用检查虚拟机设置里“拖放”方向是否选对这个选项在运行时修改需要先对虚拟机执行“重置”操作才能生效。5.4 USB 设备无法识别VirtualBox 默认对 USB 设备的支持有层次鼠标键盘这类模拟设备不需要增强功能就能用但插个 U 盘、Android 手机之类的就需要两样东西扩展包Extension Pack和 USB 控制器设置。解决步骤安装扩展包主界面“全局设定 → 扩展”点击右侧加号导入对应版本的 .vbox-extpack 文件如果导入按钮灰了检查版本号匹配问题。虚拟机设置“USB 设备”中启用 USB 2.0/3.0 控制器。启动虚拟机后插入 U 盘在“设备 → USB”菜单里选择要挂载的设备。如果 U 盘在其他设备中能被识别但这里始终不出现优先级思路是把 USB 控制器改成 2.0 试试个别主控对 3.0 的支持有兼容问题。5.5 宿主机磁盘空间被 .vdi 文件蚕食动态分配磁盘的典型问题是“只增不减”。你在虚拟机里删了 10GB 数据宿主机看到的.vdi文件大小并不会下降。解决方法有两个方向一是用 VirtualBox 自带的工具压缩磁盘。先在虚拟机里把空闲空间清零sudo dd if/dev/zero of/tmp/zero bs1M sudo rm -f /tmp/zero然后在宿主机上关机执行 VBoxManage 压缩VBoxManage modifymedium disk ubuntu18-learn/ubuntu18-learn.vdi --compact二是干脆用快照管理。删除旧快照有时能释放大量空间前提是你确定不需要回到那个快照状态。两招配合使用虚拟硬盘文件能瘦身不少。5.6 虚拟机开机自动启动与网络模式选择如果希望虚拟机随宿主机启动而自动运行VirtualBox 提供了VBoxManage命令行工具可以配置 autostart。但这在桌面场景中用得不多更多人关心的是网络连接。默认的 NAT 模式让虚拟机能访问外网但宿主机访问虚拟机里的服务比如 nginx、SSH比较麻烦。要解决这个问题把网络模式改成“桥接网卡”即可让虚拟机和宿主机处于同一局域网直接互相访问。NAT 模式下配置端口转发也可以实现部分访问但不如桥接直接。虚拟机上跑开发服务时我一般直接切换到桥接模式并用静态 IP 配置避免每次开机 IP 漂移。注意桥接模式要求你的局域网允许设备接入如果宿主机本身在用 Wi-Fi 且是访客网络隔离环境桥接可能不通此时端口转发更可靠。6. 实际使用场景与扩展玩法6.1 当作本地开发沙箱Ubuntu 18.04 虚拟机最常见的用途就是做开发沙箱。不管你是要在上面写 C/C、Python 还是 Node.js虚拟机都可以充当一个干净、独立的实验环境。即使代码写崩了、环境依赖乱到不可修复恢复到快照只要半个小时这在学习阶段非常重要。Python 开发的话18.04 自带 Python 3.6对老项目兼容性很好。某些课程项目需要 Python 2.7 环境18.04 也比较好找安装源这点比 20.04 之后的新版本省事。如果你把这套虚拟机一直留着它反而成了你复现老项目的一个“时光机”。6.2 复制虚拟硬盘快速创建新环境VirtualBox 支持直接复制虚拟硬盘文件来克隆虚拟机。主界面右键虚拟机 →“复制”可以完整复制当前系统的全部状态。这意味着你配置好一套基础环境后模板化复制出一台新虚拟机改用不同的 IP 和主机名就能快速做出多节点集群环境。实际操作中要注意三点复制时选择“重新初始化网卡的 MAC 地址”否则两台虚拟机网卡 MAC 相同可能出现 ARP 冲突如果两台机器在同一个网络里运行服务一定要改 hostname动态磁盘复制后不做压缩的话新副本也会把膨胀后的空间一并复制所以模板虚拟机保持精简更好。6.3 迁移与跨平台使用VirtualBox 的虚拟硬盘文件格式是通用的你可以把.vdi文件拷到另一台电脑用“控制 → 添加”导入虚拟机只要对方也装了 VirtualBox就能直接使用。如果目标机器是 VMware 环境也能通过VBoxManage clonemedium转换成.vmdk格式再导入 VMware。这种迁移方式适合团队协作一个人把系统环境调好、打好快照打包发给其他人解压使用比在每台电脑上重新装一遍高效得多。需要注意的坑是路径问题直接拷.vdi文件而不带虚拟机配置.vbox文件需要新建虚拟机时手动选择已有的虚拟硬盘步骤会多一点但数据完全不会丢。我在实际使用中还有一个习惯核心虚拟机坚持只用英文路径包括虚拟机名称、虚拟硬盘存放路径都不带中文这样可以避开很多工具链的编码问题。6.4 清理与卸载如果虚拟机不再需要删除虚拟机时会在主界面右键“移除”这会把虚拟机配置删除但虚拟硬盘文件默认保留。想彻底删除需要额外勾选“删除所有文件”或手动删除整个虚拟机目录。动手前一定要确认虚拟机里没有重要数据这一步没有撤销选项。如果整个 VirtualBox 软件都不需要了推荐在宿主机控制面板正常卸载卸载后会残留.VirtualBox配置目录和默认虚拟机目录VirtualBox VMs手动删除即可。其实留着虚拟机文件也没什么哪天想用还能重新导入磁盘空间够的话不必急着清理。我把这整套流程跑下来的心得很简单耐心、备份、勤快照。耐心的意思是别指望一次成功环境问题本身就是学习的一部分备份指的是关键数据导出到宿主机或外部硬盘不要全压在虚拟硬盘里勤快照意味着每到一个稳定状态就打一个还原点把试错的成本压到最低。VirtualBox 加 Ubuntu 18.04 这套组合陪伴了很多人的 Linux 入门阶段。它性能不算最强、界面不算最炫但胜在简单直接、出错了容易排查。按这篇教程走一遍你不仅能装出一台能用的 Ubuntu还会对虚拟机、磁盘分区、软件源这些概念有真实的理解——这些东西在云服务器上同样适用一通则百通。