
1. 先聊清楚为什么都过去这么多年了还有人在装 Ubuntu 18.04我第一次装 Ubuntu 18.04 的时候笔记本还是机械硬盘装完开机转圈转了快两分钟。那会儿 18.04 刚发布代号 Bionic Beaver属于长期支持版本标准维护周期五年后面还接了一段扩展安全维护所以到现在它依然没有被彻底扫进历史垃圾桶。你可能会问现在 20.04、22.04 都出来了为什么还要回头折腾一个老版本这个问题我这两年至少被问过几十次答案其实很现实不是我们想用它是手上一堆工具链只认它。Ubuntu 18.04 最特殊的地方在于它正好卡在一个技术栈的断层上。它自带的内核是 4.15 系列默认桌面从 Unity 换成了 GNOMEglibc 版本停在 2.27默认 Python 是 3.6GCC 是 7.5。这些版本号看着有点古老但恰恰是很多工业软件、机器人框架、仿真工具、老版本 SDK 编译通过的环境。你要是直接上 22.04Python 3.10 一上来很多老项目的setup.py直接报错改起来能把人改到怀疑人生。我自己在做一套自动驾驶相关的标定工具时就深刻体会过这一点——工具本身要求的就是 18.04 的环境你换个系统它连编译都过不去。所以这篇内容到底写给谁看我给三类人第一类是被特定软件逼着必须用 18.04 的开发者比如搞机器人、做视觉标定、跑老版本仿真平台的朋友第二类是刚接触 Linux想找一个相对稳定、资料又多的版本入门的同学18.04 的中文资料量非常夸张几乎所有坑都有人踩过第三类是需要在虚拟机里搭一个干净环境做测试的人18.04 体积小、依赖少非常适合当沙盒。这三类人的共同点是都需要一份能照着做、别中途卡住的安装流程。我接下来的安排是这样先从安装前的整体思路讲起把物理机和虚拟机两条路线的取舍说清楚然后手把手拆镜像获取、校验和启动盘制作接着把虚拟机安装的每一屏都过一遍包括分区这种新手最容易翻车的地方再讲物理机和双系统的关键点最后重点放在装完之后必做的几件事以及一堆我亲自踩过的坑。这篇东西不追求短平快你可以当作一份放在书签里、以后随时翻的操作手册。2. 安装前的整体规划物理机还是虚拟机先做决定2.1 两条路线的本质差异很多人一上来就问我装哪个版本镜像在哪下但我一般会先反问一句你是要把它当主力系统用还是只是需要一个能跑特定软件的环境这个问题决定了后面所有选择。物理机安装意味着 Ubuntu 独占一块硬盘或者和 Windows 共存性能是实打实的显卡、USB 设备、串口这些都能直通适合长期开发、跑图形密集型程序、做硬件调试。代价是分区有风险装崩了可能连 Windows 都进不去而且驱动兼容性得自己调。虚拟机安装则是把 Ubuntu 当成一个程序跑在现有系统里删掉就是删掉对宿主机毫无影响。我强烈建议所有第一次装 Linux 的人先用虚拟机走一遍全流程等心里有数了再考虑物理机。虚拟机唯一的硬伤是性能和硬件直通3D 加速是模拟的跑图形界面勉强够用跑深度学习训练就别想了USB 设备需要手动挂载串口调试、摄像头这些用起来会有点别扭。但对于装个环境跑代码学命令行测试脚本这些需求虚拟机完全够用而且出问题恢复成本几乎为零——大不了删掉重建我自己的虚拟机就重建过不知道多少次。这里有个经验判断如果你的需求里出现CUDA 训练实时控制多摄像头采集工业总线通信这类关键词那基本要上物理机如果只是装个 Python 跑脚本学 Linux 命令搭个测试服务器虚拟机闭着眼睛选。2.2 为什么我要强调版本号要和需求对齐这是我最想提醒的一点也是很多人装完之后才后悔的地方。Ubuntu 的版本号是 年份.月份 的格式18.04 就是 2018 年 4 月发布的 LTS 版本LTS 意味着长期支持。它的小版本更新18.04.1 到 18.04.6主要是修 bug 和更新安装镜像里预装的软件系统主体不变。最后一个小版本是 18.04.6这也是我推荐下载的那个因为安装后需要打的补丁最少。但更重要的是你得确认你的目标软件到底认哪个版本。举个我遇到过的真实例子有个朋友要装一个国产的机器人操作系统工具包官方文档写的是支持 Ubuntu 18.04他图省事装了 20.04结果脚本里一堆python调用指向 Python 2而 20.04 已经默认没有 Python 2 了最后他花了整整一天往回装 Python 2 和相关依赖还不如一开始就装 18.04。这类版本错配带来的时间浪费远比多下几个 G 的镜像要严重。所以我的建议是先确定目标软件的官方支持列表再决定系统版本不要凭越新越好的直觉来。2.3 硬件配置的最低门槛Ubuntu 18.04 桌面版官方要求是 2 核 CPU、2GB 内存、25GB 硬盘。但我实测下来2GB 内存开机就用掉一大半稍微开个浏览器就卡得不行。我给的实用配置是虚拟机至少给 4GB 内存、2 核 CPU、40GB 硬盘如果后面要装 ROS、CUDA 这类吃硬盘的东西硬盘直接给 60GB 到 80GB省得以后扩容麻烦。分配逻辑很简单——宿主机内存减去 4GB 留给自己用剩下的才是能分给虚拟机的上限。比如你宿主机 16GB 内存给虚拟机 4GB 到 8GB 都是合理的宿主机只有 8GB那虚拟机给 4GB 就别再多了不然宿主机自己先卡死。3. 镜像获取与校验这一步省事后面省心3.1 镜像从哪下为什么建议走国内镜像站Ubuntu 官方镜像存放站点的下载速度在国内环境下经常让人抓狂一个快 3GB 的文件能下到你睡着。所以我的习惯是直接去国内高校和企业提供的镜像站点取文件这些站点同步官方内容速度通常能跑满带宽。常见的几个稳定来源清华大学的开源软件镜像站、中国科学技术大学的镜像站、阿里云的镜像站、华为云的镜像站这些都是公开、正规的公共服务同步频率很高18.04 的安装镜像在它们的ubuntu-releases/18.04/目录下都能找到。文件名一般是ubuntu-18.04.6-desktop-amd64.iso其中desktop是带图形界面的桌面版server是无图形界面的服务器版amd64指的是 64 位架构——不管你用的是 Intel 还是 AMD 的 64 位 CPU都选这个。文件大小在 2.9GB 左右我印象里精确到字节是接近 29 亿字节的量级。如果你只是想在虚拟机里跑命令行、搭个服务其实下server版更省资源几百 MB 就搞定了但新手学桌面操作还是选desktop。3.2 做一次校验别偷懒这一步很多人跳过我早期也跳直到有一次下了个镜像装到一半报读取错误才发现是下载过程断流导致文件损坏。校验方法很简单官方目录下会有一个SHA256SUMS文件里面记录了每个镜像的哈希值。在 Linux 或 macOS 下打开终端进入镜像所在目录执行sha256sum ubuntu-18.04.6-desktop-amd64.isoWindows 下可以用 PowerShell 的Get-FileHash命令Get-FileHash .\ubuntu-18.04.6-desktop-amd64.iso -Algorithm SHA256把出来的那串长字符和SHA256SUMS里对应文件名的那一行比对完全一致才算下载成功。这一步花不了三十秒但能帮你排掉一整类莫名其妙的安装失败。我的经验是从国内镜像站下的文件偶尔会因为同步中途出问题校验一下心里踏实。3.3 启动盘制作物理机才需要虚拟机安装可以直接挂载 ISO 文件不需要启动盘。只有物理机安装才要制作 U 盘启动盘。常用的工具是跨平台的镜像写入工具比如开源的 balenaEtcher或者 Windows 下的 Rufus。制作时选以 DD 模式写入或者镜像模式不要选ISO 模式因为 ISO 模式有时候会破坏 Ubuntu 镜像里的引导结构导致开机识别不了。U 盘容量 4GB 以上就够写完后里面的数据会被清空所以先备份。制作过程中有个细节balenaEtcher 写完会自动校验看到绿色的Flash Complete再拔盘别写到一半就拔。Rufus 则要确认分区类型和你的电脑引导方式匹配——现在大部分机器是 UEFI 引导分区类型选 GPT老机器是 Legacy BIOS选 MBR。选错了开机可能压根看不到 U 盘。4. 虚拟机安装 Ubuntu 18.04 的完整实操4.1 虚拟机创建与参数选择我用的是 VMware Workstation版本 15 及以上都行现在 16、17 也很常见。新建虚拟机时选典型配置然后关键的一步来了它会问你是安装程序光盘映像文件还是稍后安装操作系统。我强烈建议选稍后安装操作系统。原因是如果直接选 ISOVMware 会走简易安装流程自动帮你把用户名、密码、语言都填了看起来省事但装出来的系统往往缺少一些组件分区也不受你控制后面想改很麻烦。选稍后安装等于让它只创建一个空壳真正安装时你手动挂载 ISO全程自己掌控。接着选客户机操作系统时选 Linux版本选 Ubuntu 64 位。位置就放在你空间充足的盘里别放 C 盘。处理器给 2 核如果宿主是 8 核以上给 4 核也行内存给 4GB 起。网络类型选 NAT这是最省心的模式虚拟机能上网宿主机也能访问虚拟机的服务。磁盘容量给 40GB 以上存储方式选将虚拟磁盘拆分成多个文件方便以后整体搬移。创建完空壳后编辑虚拟机设置在 CD/DVD 里选使用 ISO 映像文件指向你下载好的那个ubuntu-18.04.6-desktop-amd64.iso。顺便在显示里勾上加速 3D 图形桌面动画会顺一点。然后开机。4.2 安装向导逐屏拆解开机后会先出现一个黑底白字的启动菜单一般默认选中Ubuntu不用管等它自己进或者按回车。如果你机器有 NVIDIA 显卡、又是 UEFI 模式可能会卡在黑屏或者满屏雪花这是驱动问题后面问题排查章节会讲怎么加nomodeset参数。进入图形界面后第一屏是语言选择选中文简体或者英文都行。我建议新手选中文学起来门槛低但如果你后面要看大量英文文档、习惯英文环境选英文也没问题而且英文环境下很多报错信息搜起来更精准。语言定了往下走会问你是否要安装 Ubuntu还是试用 Ubuntu选安装。然后是键盘布局默认的英语美国就对除非你是特殊键盘。接下来是更新和其他软件这一屏这里有三个选项正常安装、最小安装、以及两个勾选框安装 Ubuntu 时下载更新安装第三方软件。这一屏是新手最容易踩坑的地方我重点说。那个安装 Ubuntu 时下载更新的勾在虚拟机里可以勾但要注意——如果它试图连接国外源会因为网络问题卡在下载阶段很久很久安装界面看着像死机。省事的做法是先不勾等系统装完、换好国内源再统一更新速度会快十倍不止。安装第三方软件这个勾涉及一些图形驱动和媒体解码器虚拟机里可有可无物理机上如果要用无线网卡、显卡最好勾上。下一步是安装类型也就是分区。如果你不熟悉分区就选默认的清除整个磁盘并安装 Ubuntu虚拟机里这么干绝对安全它只清空虚拟磁盘不会碰你宿主机的数据。如果还想更省心Ubuntu 还提供将 Ubuntu 与它们一起安装用于双系统但虚拟机里通常没别的系统这个选项用不上。真正要手动折腾的是其它选项那是给物理机双系统准备的下一章讲。4.3 手动分区方案给想搞清楚原理的人如果你选了其它选项会进入手动分区界面。这里我给出一个适合 18.04 的分区方案先讲清楚每一块的作用再给数字。EFI 系统分区这是 UEFI 引导必须的挂载点是/boot/efi格式化成 EFI 系统分区efi system partition大小给 512MB。它相当于系统的引导小仓库存的是引导程序不能省。交换分区 swap内存不够时当作虚拟内存用也用于休眠。经验算法内存 8GB 以下给内存的 1.5 到 2 倍8GB 到 16GB给和内存差不多大16GB 以上给 8GB 基本够。不过 18.04 桌面版默认用的是swapfile文件而不是分区手动分区时给不给都行我一般给 8GB 求稳。根分区 /剩下所有空间都给它格式化成 ext4。这是系统的大本营所有程序、数据、配置都在这。如果你要双系统、还想单独把/home分出来重装系统时保留用户数据那就再划一个/home格式 ext4大小看你怎么分。但说实话对新手来说单独的/home是加分项不是必须项第一次装别给自己加难度。分完区点现在安装会弹出一个确认框列出要格式化的分区。这里一定要看清楚别把自己宿主机上已经挂载的 Windows 盘给格了——虚拟机里不会有这个问题物理机双系统务必逐条核对这是最危险的时刻手一抖数据就没了。4.4 首次启动与基础配置分区确认后系统开始复制文件同时会让你填时区、用户名、密码、计算机名。时区在地图上点上海就行或者手动选上海时区。用户名建议全小写字母别用中文、别用大写开头Linux 对此很敏感大写开头的用户名以后各种工具会给你找麻烦。密码设一个记得住的虚拟机里不用太复杂。等进度条走完提示重启。重启前它会让你拔掉安装介质虚拟机里直接在设置里把 ISO 断开或者不管它都行。重启后进入登录界面输密码进桌面第一次进系统可能会弹出一堆欢迎提示跟着走就行。进桌面后马上做一件事装 VMware Tools。在虚拟机菜单里选安装 VMware Tools它会在系统里挂一个虚拟光驱然后把里面的压缩包解压、运行安装脚本。这一步的作用是让鼠标能在宿主机和虚拟机之间自由穿梭、支持拖拽文件、自动调整分辨率。18.04 里也可以直接装开源的open-vm-tools命令是sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y装完重启分辨率和鼠标就好用了。我个人更推荐open-vm-tools因为它能被包管理器统一维护升级方便。5. 物理机安装与双系统风险点全在这里5.1 UEFI 和 Legacy 引导的区别物理机安装的第一道坎不是 Ubuntu而是你主板用的是哪种引导方式。UEFI 是现在的主流Legacy BIOS 是老机器的。两者最大的区别在于磁盘分区表UEFI 通常配 GPT 分区表需要一个 EFI 系统分区Legacy 配 MBR 分区表引导信息写在磁盘开头。你在 BIOS 里能看到Boot Mode或者UEFI/Legacy的选项装系统前必须先确认。如果不一致可能出现装完了开机进不去看不到引导菜单这类问题。怎么判断自己的机器进 BIOS 看启动模式或者看 Windows 里磁盘管理——如果磁盘是 GPT那基本就是 UEFI。还有个更简单的办法Windows 下按 WinR 输入msinfo32看BIOS 模式那一行写的是 UEFI 还是 传统。U 盘启动前还要进 BIOS 关掉快速启动和安全启动Secure Boot。快速启动会让 Windows 关机时不真正关机导致 Linux 无法正确挂载 Windows 分区安全启动有时候会拦截非签名的引导程序。关掉这两个能省掉一堆玄学报错。5.2 和 Windows 共存的分区操作双系统最难的不是装 Ubuntu而是给 Ubuntu 腾地方。千万、千万、千万不要在 Windows 的磁盘管理里直接删分区来腾空间尤其是没备份的情况下。正确流程是先在 Windows 里用磁盘管理或第三方分区工具从某个盘压缩卷腾出一块未分配空间注意不要把它格式化成任何东西就是未分配状态。然后进 Ubuntu 安装程序的手动分区界面在那块空闲空间上建 EFI、swap、根分区。这里有个很多人忽略的点Ubuntu 的安装器有时候不太会算 Windows 的快速启动留下的隐藏占用压缩卷时如果你压得太狠比如压到一个字节不剩Windows 那边可能出问题。我的经验是留出一点余量另外压缩之前一定把 Windows 的重要数据备份到外部硬盘这是我反复强调的底线。安装时另一个关键选择是引导程序安装位置。UEFI 机器上引导程序默认装到那个 EFI 系统分区就行安装器一般会自动选对。装完后重启应该出现 GRUB 引导菜单让你选进 Ubuntu 还是 Windows。如果没出现直接进了 Windows那多半是引导顺序问题进 BIOS 把 Ubuntu 调前面或者用 Windows 的bcdedit修复也可以在 Ubuntu 下用os-prober让 GRUB 重新扫描 Windows 引导。5.3 安装过程容易卡住的几个环节物理机安装比起虚拟机多出来的坑主要有这么几个。第一个是显卡驱动导致的黑屏前面提过在 GRUB 界面按e编辑启动项在quiet splash后面加nomodeset然后按 F10 启动就能绕过专有驱动进安装界面装完系统再单独装显卡驱动。第二个是无线网卡不认尤其是某些较新的笔记本网卡18.04 的内核里可能没有对应驱动解决办法是先用有线网或者用手机 USB 共享网络临时上网装完驱动再说。第三个是触摸板不工作这个通常也是驱动问题同样先接个 USB 鼠标应急。还有一类是磁盘相关的问题。如果 BIOS 里硬盘模式是 RAID 而不是 AHCIUbuntu 安装器可能会看不到硬盘需要在 BIOS 里切成 AHCI改之前注意 Windows 那边可能需要改注册表否则会蓝屏这个要提前查清楚再动。这些都是有章可循的遇到时先别慌记下报错信息去搜八成有人踩过。6. 装完之后必做的几件事不做等于白装6.1 换国内镜像源把下载速度拉满这是我装完系统第一件要做的事没有之一。原因很直接默认的软件源在国外apt update和apt install慢到能让你泡杯茶回来还在转。换成国内镜像源速度能翻好几倍。18.04 的源代号是bionic注意别写成别的版本的代号不然会报错。操作方法是先备份原来的源列表再写入新的。用命令sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo vim /etc/apt/sources.list把里面内容全删粘贴清华源的 18.04 版本注意bionic这个关键词deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse保存后执行sudo apt update看到刷屏速度就说明生效了。如果你更习惯命令行一键替换也可以用sed命令批量把旧域名换成新域名但手动改更直观适合新手。除了 apt 源Python 的 pip 源也建议换mkdir -p ~/.pip cat ~/.pip/pip.conf EOF [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple EOFnpm 用户则执行npm config set registry https://registry.npmmirror.com。Docker 如果也要装官方源在国内慢可以换成国内的 Docker 镜像源这个按你实际需求来。换源的核心逻辑就一句话把从国外拉变成从国内拉能省下大量等待时间这也是热词里国内镜像镜像源反复出现的原因。6.2 显卡驱动和基础外设虚拟机上驱动基本不用管open-vm-tools装完就齐活。物理机上就麻烦些尤其是 N 卡。18.04 装显卡驱动有两种常见方式一是用系统自带的软件和更新里的附加驱动选项它会扫描可用驱动让你选闭源驱动一般标着 proprietary, tested选中安装、重启就行二是用命令行的ubuntu-drivers工具sudo ubuntu-drivers autoinstall让它自动挑最合适的版本。我一般先试第一种图形界面看得清楚。装完之后用nvidia-smi验证能看到显卡型号和驱动版本就说明成了。输入法和中文支持也是装完要处理的。Ubuntu 18.04 默认的 IBus 输入法体验一般我习惯装fcitx加搜狗或 Google 拼音。装之前把系统语言补全运行sudo apt install language-pack-zh-hans然后在语言支持里把键盘输入法系统改成 fcitx重启后配置拼音方案。这块也是新手容易乱的地方实在搞不定就先能打字再说别卡在这一步影响后面。6.3 开发环境速装清单如果你的目的是开发装完系统后这套基础环境建议一次配齐。Python 方面18.04 自带 Python 3.6很多项目够用了但如果你要管理多个版本可以装pyenv或者直接用virtualenv建隔离环境别直接往系统 Python 里装库容易把系统搞乱。Git 安装很简单sudo apt install git -y git config --global user.name 你的名字 git config --global user.email 你的邮箱编辑器方面vim和vscode都是常选。编译器build-essential装一下包含 gcc、g、make很多源码编译都靠它。如果要做深度学习那 CUDA 和 cuDNN 的版本要和你的驱动、框架对齐18.04 上比较常见的是 CUDA 10.x 或 11.x这个要单独查对应关系装错版本是最容易浪费时间的地方。Docker 也可以在这时候装上用国内的镜像源拉基础镜像会快很多。7. 常见问题与排查速查7.1 安装阶段问题安装阶段最高频的问题就那么几个我整理成表格方便你对照。现象可能原因处理办法开机黑屏 / 满屏雪花显卡驱动 / UEFI 模式GRUB 界面按 e在quiet splash后加nomodeset卡在下载更新连了国外源网络不通安装时不勾下载更新装完换国内源再更新安装器看不到硬盘BIOS 硬盘模式为 RAID进 BIOS 改为 AHCI需提前处理 Windows 兼容分区确认框显示要格 Windows 盘分区没认清立刻取消逐条核对分区虚拟机里无此风险校验失败镜像下载不完整重新下载并重新做 SHA256 校验处理原则是先看报错信息再判断是引导、硬件还是网络问题。引导问题大多和nomodeset、引导模式有关硬件问题多半是驱动网络问题基本就是源的问题。7.2 使用阶段问题系统用起来之后问题又是另一批。比如apt update报 GPG 错误、包依赖冲突、中文文件名乱码、虚拟机时间不对等等。乱码问题在解压文件时特别常见比如从 Windows 传过来的 zip 解压出来全是问号那是因为文件名编码不是 UTF-8可以用unzip -O gbk 文件名.zip指定编码解决。时间不对一般是虚拟机时区或者 UTC 设置问题用timedatectl set-timezone Asia/Shanghai设一下。还有一个容易被忽略的Ubuntu 18.04 的标准支持期已经结束如果你用默认源apt update可能会提示部分源不再维护。这时候要么开启扩展安全维护要么把源指向提供 ESM 的地方或者接受它能用但不更新的状态。我自己的测试机就挂在 18.04 上不更新反正只是跑固定工具链够用就行。但如果你把它当生产系统安全更新这事必须认真对待。7.3 几个我踩过的坑掏心窝说第一个用户名别用大写、别用中文、别带空格。这个我说过但还是要再说一遍我见过有人用户名设成中文结果一堆命令行工具直接报错改起来要新建用户再迁移文件特别折腾。第二个虚拟机磁盘别给太小也别一次性给成单个文件。给太小后面扩容虽然能扩但流程繁琐单个大文件虽然性能略好但搬移时特别不方便分成多文件更灵活。第三个装显卡驱动前先把重要数据备份。有极小概率驱动装完进不了图形界面这时候要用 CtrlAltF1 进文本模式卸载驱动。我遇到过一次幸好数据都在不然真要哭。第四个别在物理机上随便双击运行来路不明的脚本尤其是那些号称一键安装的东西。热词里一键安装出现频率很高便利是真的但脚本里干了什么你得心里有数装之前最好打开看一眼。7.4 一个收尾的小技巧快照和备份如果你在虚拟机里装好了环境装各种软件之前顺手打一个快照虚拟机会把当前整个系统状态存下来以后搞崩了直接回滚几秒钟的事。物理机上没有这么方便的东西那就退而求其次至少把/etc、/home和你重要的项目目录定期备份到外部硬盘。/home是你所有数据的家重装系统前把它保住其他都好说。我自己维护的几台机器每台都有一份定期同步的/home备份这习惯救过我至少两次。回头看18.04 这个版本就像一个过渡时期的老朋友虽然官方维护周期快走到头但在很多特定领域它还在一线扛着。装它的过程本身其实就是一次很完整的 Linux 入门练习你会在里面接触到分区、引导、驱动、源、包管理这些核心概念把这些理顺了以后换任何发行版都是同一套思路。我个人的体会是与其纠结是不是要装最新的不如想清楚我到底要用它做什么想明白这一点版本选择和安装路径自然就清晰了。