☰
Ubuntu 18.04.6装机全流程:Rufus分区与网卡驱动排障
2026/10/24 12:20:24 网站建设 项目流程

简介:面向需要在个人电脑或企业终端部署 Ubuntu 18.04.6 的用户,这份 PDF 文档聚焦系统安装环节的高频障碍,按启动盘制作、分区规划、特定机型驱动适配与常用软件配置四条线索组织内容,适合具备基础 Linux 操作经验、希望少走弯路的运维与开发人员参考。压缩包仅含 1 个 PDF 文件,体积约 172KB,篇幅紧凑,便于随取随查和离线留存。文档结合联想 E480、老式 MBR 台式机、航嘉 i7-11700K、Aigo 水冷 i7 等实际机型,梳理无线网卡与 Realtek 8125 有线网卡的驱动获取和命令行安装思路,并给出 boot、EFI、swap、根目录与 home 的分区容量建议。日常应用部分覆盖 Chrome、DBeaver、WPS、搜狗拼音和 Flameshot 的安装渠道与快捷配置方式,形成从装系统到投入使用的闭环参考。该文档已有 438 人学习,适合作为装机排错清单与驱动适配速查手册。

1. 一台装完没网的 i7 台式机

上周又有一台 i7 台式机摆在我面前,硬盘全新,任务只有一个:ubuntu18.04.6 系统安装。U 盘插上去,Rufus 进度条走完,向导一路下一步,二十分钟后重启进桌面——右上角空空如也,连个网络图标都没有。没有网络,apt就是块砖,后面什么软件都装不了。

这套环境在装机场里太常见了:老机器要跑遗留业务、新主板要兼容旧内核、实验室的机器统一版本。装不好不是蓝屏那种明显失败,而是「进去了但什么都干不了」——网卡没驱动、分区选错引导装不上、软件包装一半依赖断裂。这篇笔记是按机型、按步骤把这条链走一遍,新手照着能装完,熟手能对照看版本取舍和那几个容易翻车的点。

2. 启动盘到装完重启:Rufus 3.15 与五刀分区

装系统这件事,成败有一半在插 U 盘之前的准备工作里。启动盘做错、分区表选错,后面在安装器里怎么点都是白费劲。这一章把从下载 ISO 到重启进桌面的整段路拆成四步,每步都写清选什么、为什么不选另一个。

2.1 Rufus 3.15 的两个关键选项

工具用rufus-3.15.exe,Windows 上免安装直接跑。这个版本值得单独提,是因为它在 UEFI 引导上的处理比老版本稳,写盘时会明确问你用 ISO 镜像模式还是 DD 模式,选 ISO 模式兼容性更好,能在 U 盘上看到文件结构,出问题也好排查。

写盘前有两组选项必须对上看:

选项新机器(UEFI 引导)老机器(MBR 硬盘 / 传统 BIOS)
分区类型GPTMBR
目标系统UEFI(非 CSM)BIOS(或 UEFI-CSM)
文件系统FAT32FAT32
写入模式ISO 镜像模式ISO 镜像模式

那台奔腾台式机就是栽在这里:硬盘是 MBR 格式,BIOS 里也没开 UEFI,第一次按默认 GPT 写完盘,开机在启动菜单里能看见 U 盘,点进去直接黑屏跳回 BIOS。改成 MBR + BIOS 之后一次就进安装界面。所以做盘之前先做一件事——进 BIOS 看一眼启动模式,不要凭机器新旧猜。

写盘过程本身没什么可调的,Rufus 会把 ISO 里的引导文件解出来,进度条走完提示 READY 就行。如果提示 U 盘被占用或者写入失败,多半是资源管理器还开着那个盘,关掉窗口重插一次即可。

2.2 镜像下哪个版本,以及为什么留一个 16.04.7

主用镜像是ubuntu-18.04.6-desktop-amd64.iso,桌面版,amd64 架构。另外备一份ubuntu-16.04.7-desktop-amd64.iso在 U 盘根目录,不是为了装,是为了对照——有些老机器 18.04 的引导盘进不去,16.04 反而能进,用它先进去确认硬件是不是好的,再回头处理 18.04 的问题。

下载源走国内镜像站,高校开源镜像那几家速度都够,地址按你手头常用的替换。目录结构一般是ubuntu-releases/18.04.6/,进去只认两个文件:ISO 本体和同目录下的SHA256SUMS。下完别急着写盘,先对一遍校验值:

# 在 Linux 或 WSL 下比对镜像完整性,输出需与 SHA256SUMS 中对应行一致 sha256sum ubuntu-18.04.6-desktop-amd64.iso # Windows 下没有 sha256sum,用 PowerShell 等价命令 Get-FileHash .\ubuntu-18.04.6-desktop-amd64.iso -Algorithm SHA256

sha256sum会吐出一串 64 位十六进制,和SHA256SUMS文件里那行逐字符比对。这一步看着啰嗦,但镜像站偶尔会碰到下载中断留下半截文件,U 盘写进去能启动、装到一半报I/O error,回头查半天以为是硬盘坏道。校验两分钟,省两小时。

版本选择上还有个现实考虑:i7-11700K 那台机器必须上 18.04.6,不能图省事装 16.04。16.04 的内核版本偏低,认不出这块主板的以太网控制器,装完直接没网口,连补驱动的前提都没有。新平台往上选,老平台才考虑 16.04 兜底。

2.3 五刀分区:挂载点、容量、类型

安装向导走到「安装类型」时选「其他选项」,手动分区。默认的「清除整个磁盘」在装机场里不建议用,一是会连带清掉数据盘,二是它给的分区布局不适合后面跑数据库和编译环境。

一套用下来比较稳的切法是这样:

挂载点容量类型说明
/boot512MBext4 逻辑分区放内核和 initrd,独立出来方便出问题时单独处理
EFI 分区512MBefi 类型UEFI 引导必须,挂载点留空或填/boot/efi
swap10000MB交换空间内存 16GB 以下建议给到内存大小,编译大项目不容易 OOM
/100000MBext4 逻辑分区系统和软件都在这,100GB 够装一套完整开发环境
/home剩余全部ext4 逻辑分区重装系统时可保留,是最值钱的一块

几个判断依据说清楚。/boot给 512MB 是因为 18.04 的内核包加上 initrd 单个接近 60MB,留出能同时存三四个版本的空间,内核升级把/boot塞满是这类机器最常见的「开机进不了系统」原因之一。swap 给 10GB 是按编译场景估的,纯办公机给 4GB 也够。/和/home分开,是为了以后换版本重装时只格式化/。

分区类型这里有个硬约束:UEFI 模式下那个 EFI 分区必须是独立分区,且在安装器里类型选成「EFI 系统分区」,不要和/boot合并。合并之后安装器会报「未找到 EFI 分区」或者装完重启直接进 BIOS。老 MBR 机器则相反,不需要 EFI 分区,/boot建成主分区更稳。

2.4 安装向导里容易点错的几处

分区确认之后往下走,还有几个位置值得停一下。

「安装时下载更新」这个勾,机器能联网就勾上,能省掉装完再补一轮的功夫;但那台没网卡驱动的 i7 台式机必须取消勾选,否则安装器会卡在「正在下载语言包」,一路等到超时。这种卡住不是死机,鼠标还能动,很多人以为装崩了直接断电,结果分区表写了一半,得重来。

「安装第三方软件」勾上,主要是显卡和无线网卡的闭源驱动。有 RTL8821CE 那类无线网卡的笔记本勾了也不一定生效,后面还得手动编译,但勾上没坏处。

「设备用于引导程序的安装位置」默认是整块硬盘(比如/dev/sda),别手滑改成某个分区。UEFI 模式下它会自动往 EFI 分区写引导文件,改成分区号之后会出现「开机无系统」的情况,得用 Live 盘修复。

写入过程大概十几分钟,中间会黑屏一两次,属于正常。装完提示重启,把 U 盘拔掉再按回车,否则可能又从 U 盘引导回到安装界面。

3. 网卡驱动:四类机型的落差与 r8125 编译五步

重启进桌面之后,先别管桌面好不好看,第一件事是看右上角有没有网络图标。有,说明驱动齐全,后面的活都好办;没有,就得按机型对症下药。这一章把手上遇到过的四类机型摊开,重点写 RTL8125 那块网卡的完整编译过程,因为它是唯一一个必须先从别处搞到网络才能装驱动的死循环场景。

3.1 四类机型的驱动落差对照

机型硬件特征缺什么处理路径
机型一某品牌 E480 笔记本,无线网卡 RTL8821CE无线驱动编译 rtl8821ce 驱动模块
机型二老奔腾台式机,硬盘 MBR引导方式不对Rufus 改 MBR,BIOS 传统模式引导
机型三i7-11700K 台式机内核版本低导致以太网控制器不识直接装 18.04.6,不降级到 16.04
机型四水冷 i7 台式机,网卡 RTL8125以太网驱动官网下 tar 包,autorun.sh编译安装

机型一那台笔记本,装上 18.04.6 之后无线列表是空的,lspci能看到网卡在,就是没有可用接口。这类 RTL8821CE 的驱动 18.04 内核里没有,得从驱动仓库拉源码编:

# 先补齐编译工具链和当前内核的头文件 sudo apt-get update sudo apt-get install -y git dkms build-essential linux-headers-$(uname -r) # 拉取驱动源码并安装,dkms 会在每次内核升级后自动重编 git clone https://github.com/tomaspinho/rtl8821ce.git cd rtl8821ce sudo ./dkms-install.sh # 加载模块并确认无线接口出现 sudo modprobe 8821ce ip link show

dkms这个参数是整套命令里最值钱的地方。不装 dkms 直接make && make install,当时能用,下次内核一升级模块就失配,无线又没了,而且现象是「昨天还好好的今天不能上网」,排查方向很容易跑偏。用 dkms 注册之后,内核更新会自动触发重编,省掉这类回头账。

linux-headers-$(uname -r)里的$(uname -r)是当前运行内核版本,必须和内核严格对应。如果apt报找不到这个包,多半是系统刚更新过内核但还没重启,uname -r显示的是旧版本,重启一次再装即可。

机型二那台老奔腾机器的问题不在驱动,在引导。硬盘是 MBR 格式,机器 BIOS 也没有 UEFI 选项,用 GPT 做的盘根本进不去安装界面。改 Rufus 的分区类型为 MBR、目标系统选 BIOS 之后正常,装完也不需要 EFI 分区。这种机器上如果强行按 UEFI 那套分区方案走,最后会卡在引导安装失败。

机型三的结论很干脆:i7-11700K 这代平台,18.04.6 是能认的,16.04 认不了。有人图稳装 16.04,装完发现没网口,又得回头重装,白折腾一轮。新平台往上选版本,这条经验在装机场里反复验证过。

3.2 RTL8125:从官网 tar 包到 autorun.sh

机型四最麻烦,因为它是个死循环:没网卡驱动就上不了网,上不了网就下不了驱动。解决办法是把驱动包用另一台机器下好,U 盘拷过去。

先确认硬件到底是什么。不要看设备管理器猜,直接在机器上查:

# 列出所有 PCI 网络设备,-nn 显示数字 ID,便于对上游驱动包 lspci -nn | grep -i -E 'ethernet|network' # 想看更细的,用 -v 展开,重点看 Kernel driver in use 那一行是否为空 lspci -v | grep -A 12 -i ethernet

输出里会看到类似Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. Device [10ec:8125] (rev 05)这样一行。10ec:8125是厂商 ID 加设备 ID,rev 05是硬件修订号。lspci -v里如果Kernel driver in use这行是空的,就说明内核确实没有接管这块网卡,编译驱动是唯一路径。

拿到型号之后去芯片厂商官网的支持页面,按型号找 Linux 驱动,下到的是r8125-9.007.01.tar.bz2这个包。版本号里的9.007.01是驱动版本,不用纠结,官网给哪个用哪个;但如果装完出现链路时通时断,可以回头试试更早一版,驱动版本和板载 PHY 的匹配偶尔有玄学。

拷到目标机器上之后,按顺序走这几步:

# 1. 解包,bz2 格式用 tar 的 j 参数 tar -xjf r8125-9.007.01.tar.bz2 cd r8125-9.007.01 # 2. 编译并安装,autorun.sh 内部会调用 make 和 insmod sudo sh ./autorun.sh # 3. 确认模块已加载 lsmod | grep r8125 ip link show

tar -xjf里x是解包、j指定 bzip2 压缩、f跟文件名,三个参数缺一个都会报错。压缩包解开后是个同名目录,进去再执行脚本,别在上级目录直接跑。

autorun.sh这个脚本做的事比名字看起来多:它会检查内核头文件在不在、编译r8125.ko、把模块拷到/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek/下、跑depmod更新模块依赖、再modprobe加载。所以它需要 root 权限,也必须先有build-essential和对应的linux-headers。如果脚本执行到一半报make: command not found或者找不到头文件,回到 3.3 节先解决编译环境。

这里有个前提绕不开:编译需要build-essential,而装它需要网络。所以顺序只能是——先临时联上网,装编译工具,再编译驱动。

3.3 断网状态下的临时联网路径

机器没网卡驱动,但手机有网。最省事的做法是用数据线把手机连上电脑,开 USB 网络共享。

安卓手机在「设置 - 网络 - 热点与网络共享」里打开「USB 共享网络」,插上线之后,Ubuntu 这边通常几秒内会自动识别出一个usb0或enp0s开头的接口,NetworkManager 直接接管,右上角网络图标就活了。如果没自动起来,手动拉一下:

# 查看新出现的网络接口名 ip link show # 假设新接口是 usb0,手动请求一次 DHCP 地址 sudo dhclient usb0 # 验证是否拿到地址并能出网 ip addr show usb0 ping -c 3 223.5.5.5

dhclient是向 DHCP 服务器要地址的客户端,参数就是接口名。拿到192.168.x.x或运营商侧地址之后,ping一个公网 IP 能通,说明链路已经可用。这里用 IP 而不是域名,是为了区分「网络不通」和「DNS 没配」两种故障——IP 通、域名不通,就是/etc/resolv.conf的问题,跟驱动无关。

联上之后立刻做三件事,动作要快,手机流量是有限的:

sudo apt-get update sudo apt-get install -y build-essential linux-headers-$(uname -r)

两条命令跑完,编译环境就有了,可以回到 3.2 节执行autorun.sh。装完驱动重启,把手机线拔掉,网线插上,正常应该直接出网口。

如果手边没有安卓手机,另一个办法是用另一台机器把build-essential和内核头文件的 deb 包下全,拷到 U 盘上用dpkg -i离线装。这个路子依赖关系容易漏,apt-get install --download-only能把依赖一起抓下来,再整体拷过去,只是步骤繁琐,应急才用。

3.4 驱动装完怎么确认真的生效

reboot之后不要看到图标出来就收工,按下面几层逐级确认,能提前发现「能连但跑不满」这类隐藏问题。

# 第一层:模块是否加载 lsmod | grep r8125 # 第二层:接口是否被内核接管 lspci -v | grep -A 12 -i ethernet | grep 'Kernel driver' # 第三层:链路状态与协商速率 sudo ethtool enp3s0 | grep -E 'Speed|Duplex|Link detected'

三层的含义不一样。lsmod只说明模块在内存里;Kernel driver in use: r8125说明内核把这个设备交给了驱动;ethtool里的Speed: 1000Mb/s、Duplex: Full、Link detected: yes才说明物理链路真的协商起来了。出现过模块加载正常、接口也有,但Speed显示Unknown!的情况,那是网线或者对端口的问题,不是驱动。

接口名不一定是enp3s0,用ip link show看实际名字替换。18.04 之后网卡命名改成了基于 PCI 位置的格式,和老教程里的eth0对不上,这点别按旧文档硬套。

4. 常用软件落地与避坑排查

系统能上网之后,接下来是一轮软件安装。这批软件都是 deb 包或者 apt 源里的,看着简单,实际装的时候依赖顺序、输入法框架、字体缺失这几类问题会连着来。这一章按安装顺序排,最后把手上踩过的几条记录归拢一下。

4.1 三个 deb 直装:浏览器、数据库工具、办公套件

deb 包安装有两套命令,dpkg -i和apt install ./xxx.deb,前者不管依赖,后者会自动补。日常我一般统一用后者,省得装完再apt-get install -f补一遍。

# 进到 deb 所在目录,用 apt 安装本地包,路径前的 ./ 不能省 cd ~/Downloads # 浏览器:从官网下 deb 包 sudo apt install ./google-chrome-stable_current_amd64.deb # 数据库工具:DBeaver 社区版,文件名带 latest sudo apt install ./dbeaver-ce_latest_amd64.deb # 办公套件:WPS Linux 版,版本号按官网当前包名替换 sudo apt install ./wps-office_11.1.0.10702_amd64.deb

apt install ./xxx.deb里那个./是必须的。不写的话 apt 会把它当成软件源里的包名去搜,报Unable to locate package。这个错新手经常撞,其实不是包坏了,是路径没被识别成文件。

DBeaver 是这里唯一的 Java 应用。社区版 deb 一般自带运行时,启动没问题;如果双击没反应,终端里跑dbeaver看报错,提示找不到 Java 就补一个sudo apt install openjdk-11-jre,18.04 官方源里就是 11,别去装更新的版本,容易和自带的运行时不匹配。

WPS 装完第一次打开常提示字体缺失,界面里中文显示成方框。这是系统里没有对应的中文字体,不是装坏了。补一套中文字体再刷缓存就行:

# 装文泉驿系列中文字体,覆盖大部分办公文档的字形需求 sudo apt install -y fonts-wqy-zenhei fonts-wqy-microhei # 刷新字体缓存,让新装的字体立刻生效 fc-cache -fv

fc-cache -fv里-f强制重建、-v输出过程,跑完能看到字体目录被重新扫描。刷完不用重启,重开 WPS 即可。如果个别符号还是方框,那是文档里用了特殊字体,属于源文件问题,不是系统缺字体。

4.2 拼音输入法:先框架后输入法

中文输入法是这一轮里最容易装废的。搜狗拼音的 Linux 版跑在 fcitx 框架上,必须先有 fcitx,再装输入法本体,顺序反了就是装完切不出中文。

# 1. 先装 fcitx 框架和配置工具 sudo apt install -y fcitx fcitx-bin fcitx-config-gtk fcitx-frontend-all # 2. 装拼音输入法本体,包名按官网下载的实际文件名替换 sudo dpkg -i sogoupinyin_*.deb # 3. dpkg 装完大概率报依赖错误,用这条补齐 sudo apt-get install -f # 4. 把系统输入法框架切到 fcitx im-config -n fcitx

第 3 步的apt-get install -f是修依赖的固定动作。dpkg -i只负责把包解开,不解决依赖,报dependency problems是常态,不是安装失败。跑完-f它会自动把缺的库补上。

第 4 步的im-config -n fcitx是把输入法框架写进用户配置,重启或者重新登录之后生效。很多人装完发现Ctrl+Space没反应,就是漏了这一步,系统还在用默认的框架。切过去之后在 fcitx 配置里把搜狗拼音加到输入法列表的第一位,再试切换。

输入法这块还有个细节:fcitx 配置界面里如果搜狗拼音显示为灰色不可选,通常是本体包装了但模块没注册,fcitx-diagnose能看到具体缺哪个组件。这个命令输出很长,重点看Frontends和Addons两节里的红字。

4.3 截图工具 flameshot:apt 一行就够

截图工具是这批软件里最省心的一个,官方源里就有,不用下 deb:

# 直接从官方源安装 sudo apt install -y flameshot # 装完手动跑一次,确认能起来 flameshot gui

flameshot gui是启动图形界面截图,跑通说明依赖齐全。之后在系统设置里给它绑一个快捷键,习惯上绑Ctrl+Alt+A,和常用工具保持一致。绑定位置在「设置 - 设备 - 键盘」,加自定义快捷键,命令填flameshot gui。

如果绑完按了没反应,先确认命令本身能跑,再确认快捷键没和系统截图冲突。18.04 自带截图占着PrtSc,撞上了就把自带的解绑,别两个都留着。

4.4 五条现场踩坑记录

下面这几条是装机过程中真实撞到的,按现象、原因、解决三段落记,遇到同类问题可以直接对号。

现象一:安装器报「未找到 EFI 系统分区」,但明明划了 512MB。原因:分区建成了普通 ext4 逻辑分区,没有把类型标记成 EFI。UEFI 引导要求那个分区带esp标志,安装器只认类型不认容量。 解决:回到分区界面,选中该分区点「更改」,用途选「EFI 系统分区」,格式化选 FAT32,挂载点留空或填/boot/efi。已有数据的机器不要重划,用 Live 盘里的 GParted 改标志位即可。

现象二:装完重启直接进 BIOS,硬盘在启动项里显示为不可引导。原因:MBR 硬盘上做了 GPT 分区表,或者引导程序装到了分区而不是整块盘。机型二那台老机器就是前者。 解决:Rufus 重做启动盘,分区类型改 MBR、目标系统改 BIOS;重装时「设备用于引导程序的安装位置」选整块盘(/dev/sda),不要选/dev/sda1。

现象三:apt-get update卡在Waiting for headers或者直接超时,但ping是通的。原因:DNS 没配对,或者换了网络环境后/etc/resolv.conf还指向旧网关。手机 USB 共享切回有线之后特别常见。 解决:cat /etc/resolv.conf看 nameserver,临时改成可用的公共 DNS,再sudo systemctl restart systemd-resolved。要持久化就在 NetworkManager 的连接配置里改,别只改文件,重启会被覆盖。

现象四:RTL8125 驱动装完,接口起来了但速度只有百兆,或者频繁掉线。原因:驱动版本和板载 PHY 的兼容问题,或者网线本身是超五类老线跑不满千兆。 解决:先用ethtool看协商结果,Speed: 100Mb/s多半是线或者对端口的问题,换线换口再试。协商显示千兆但实际吞吐低,去官网换一版驱动,把旧的rmmod r8125卸掉再装新的。

现象五:搜狗拼音装上之后,Ctrl+Space切不出来,fcitx 托盘图标也没有。原因:im-config没切框架,或者本体包装在了 fcitx 之前,模块注册失败。 解决:按 4.2 的顺序重来一遍,先apt install fcitx,再dpkg -i本体,再apt-get install -f,最后im-config -n fcitx,注销重登。顺序不能颠倒。

5. 验收:重启后十分钟内跑完的一张检查表

装完最后一款软件,我不会立刻交付,而是重启一次,然后照着下面这张表走一遍。这张表是踩坑攒出来的,每一项都对应过至少一次实际故障,看着琐碎,跑完只要十分钟,能挡掉后面几天的返工。

检查项命令通过标准
内核与版本lsb_release -a/uname -r显示 18.04.6,内核为 18.04 对应版本
网卡驱动lspci -v | grep 'Kernel driver'有线无线都有驱动名,不是空白
链路速率sudo ethtool <网口> | grep Speed显示 1000Mb/s,Duplex 为 Full
软件源sudo apt-get update全部命中,无 404、无超时
数据库工具dbeaver --version或图形启动能起界面,能连一个测试库
输入法fcitx-diagnose | head -40框架运行中,拼音模块已加载
截图按绑定的快捷键出现选区界面,保存正常

表里的顺序不是随便排的。先看版本和驱动,是因为这两项决定后面所有操作能不能进行;apt-get update放在第三位,是验证网络和源配置的联合结果;软件检查放最后,属于功能确认。

有两个位置我每次都会多看一眼。一个是ethtool的Link detected,只有显示yes才算物理层真的通了,接口存在但链路没起来的情况遇到过不止一次,表现是「网络图标有但打不开网页」。另一个是fcitx-diagnose的前 40 行,里面会直接标出框架有没有在跑、模块有没有加载,比在托盘里点来点去靠谱。

# 一条命令把关键项串起来,适合远程或者懒得逐条敲的时候 echo "== kernel ==" && uname -r && \ echo "== nic driver ==" && lspci -v | grep -A 3 -i ethernet | grep 'Kernel driver' && \ echo "== link ==" && for i in $(ls /sys/class/net | grep -v lo); do sudo ethtool $i 2>/dev/null | grep -E "Speed|Link detected"; done

这段脚本没有复杂逻辑,就是把三处检查合并输出,for循环遍历所有非回环接口,逐个打印速率和链路状态。远程维护时用它一眼看完全部网口,比一条条敲省事。

从那以后我每次装完系统,不管多赶时间,这张表都强制走一遍,尤其是ethtool那两行——它们能在用户发现问题之前,把「能上网但跑不满」这种半残状态揪出来。装机这活儿的玄学在于,当时省下的两分钟,后面往往要用两小时补。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询