Ubuntu 18.04.6 装机排坑:Rufus、分区与网卡驱动
简介:这份PDF面向初次安装Ubuntu 18.04.6的个人用户、运维人员和装机爱好者,聚焦系统部署阶段常见故障的排查与解决。内容围绕启动盘制作、自定义分区、特定硬件驱动适配及常用软件安装展开,涵盖UEFI与MBR两种启动场景,并针对联想E480无线网卡、老式奔腾台式机、航嘉i7-11700K以太网卡、aigo水冷Realtek 8125网卡等机型给出对应的驱动获取与安装思路,同时整理了Chrome、DBeaver、WPS、搜狗拼音和Flameshot等日常工具的获取方式。资源还涉及boot、EFI、swap、根目录与home等挂载点的容量规划建议,以及安装后保持系统更新、及时补齐驱动和做好数据备份的注意事项,便于读者对照自身硬件快速定位线索。资源包为1个PDF文件,大小约172KB,篇幅紧凑,随查随用;已有438人学习,适合希望减少装机反复试错、系统掌握分区与驱动排错思路的Linux初中级用户参考。
1. 一台 11 代 i7 的台式机,装完 ubuntu18.04.6 系统安装向导一路绿灯,重启后ip a只剩一行 lo
这是这类装机记录最典型的开场:安装器不报错,分区也过了,进系统发现有线网卡压根没被识别,桌面右上角的网络图标是个空壳。这份 PDF 就是一线装机人把大半年里踩过的坑按机型攒成的流水账——启动盘怎么做、四个挂载点怎么切、四类机器各自的网卡驱动从哪来、装完先补哪几个软件。它不体系化,但每一项后面都挂着具体芯片型号、具体命令和具体版本号,照着抄能省掉大半排查时间。适合还在批量部署 18.04.6、又必须保证网卡、输入法、截图工具全部就位的人。
2. 启动盘与固件模式:rufus 里三个下拉框,决定后面一半的坑
很多人把 U 盘启动失败归到“玄学”,其实九成是分区方案和目标固件不匹配。rufus 这个工具的价值不在于能写盘,而在于它把「分区类型」和「目标系统」拆成两个独立开关让你显式选,选错了它也不会拦你,只会安静地写出一张在目标机器上根本不出现的启动盘。
2.1 先判定目标机器吃哪种引导方式
UEFI 和 Legacy 的区别不在“新旧”,而在引导文件的存放位置:UEFI 固件会去磁盘上第一个 FAT32 分区(ESP)里找EFI/BOOT/BOOTX64.EFI这类可执行文件;Legacy BIOS 则直接读磁盘最前面 446 字节的引导代码。rufus 写盘时按你选的分区方案决定把引导文件放在哪里,方案选反了,主板启动菜单里要么完全看不到这个 U 盘,要么看到了点进去黑屏一行No bootable device。
判定方法有三个,从快到慢:开机狂按 F2/F12/Del 进固件设置看 Boot Mode 是 UEFI 还是 Legacy/CSM;已经在跑 Windows 的机器,msinfo32里看「BIOS 模式」那一行;实在进不去设置界面,就直接看机器年份——2012 年之后出货的商用机基本都支持 UEFI,但不少老机器出厂默认还是 Legacy,这一点在公司的老台式机上尤其常见。
提示:Secure Boot 建议先关掉。18.04.6 的桌面镜像虽然带签名的 shim,但你自己编译的网卡驱动没有签名,开着 Secure Boot 会直接加载失败,报
Key was rejected by service。装完驱动再决定要不要开回去。
2.2 rufus 的四个下拉框逐项填
把 ISO 拖进 rufus 之后,界面上真正需要动手的就四处,剩下的保持默认:
| 选项 | UEFI 新机 | MBR 老机 | 说明 |
|---|---|---|---|
| 分区类型 | GPT | MBR | 与固件模式严格对应,不是随便选 |
| 目标系统 | UEFI(非 CSM) | BIOS(或 UEFI-CSM) | 选 UEFI-CSM 时分区类型仍用 MBR |
| 文件系统 | FAT32 | FAT32 或 NTFS | FAT32 是 UEFI 固件的硬要求 |
| 镜像选项 | 标准安装 | 标准安装 | 不要选 DD,DD 模式写完后 U 盘无法再当普通盘用 |
写入过程中 rufus 会提示“将销毁 U 盘上所有数据”,确认即可。写完之后 U 盘在资源管理器里可能显示成两个分区、容量只剩下几百兆,这是正常的——ISO 被展开成了 ESP 加数据分区,不是写坏了。真正需要警惕的是写入日志里出现Err或校验失败,这时候别抱侥幸心理,换根线或换个 U 盘口重来。
制盘之前先校验镜像,这一步能挡掉大量“装到一半报 squashfs 错误”的事故:
# 校验 ISO 完整性,与镜像站同目录下 SHA256SUMS 里对应的那一行比对 sha256sum ubuntu-18.04.6-desktop-amd64.iso # 写盘完成后,反过来校验 U 盘上的数据分区是否可挂载 sudo mount -o ro /dev/sdX1 /mnt && ls /mnt/casper | head sudo umount /mntsha256sum输出是一串 64 位十六进制,跟官方清单逐字符比对,差一位都别往下走。第二条命令里的/dev/sdX1换成你 U 盘实际的 ESP 分区号,能挂上并且能看到casper目录,说明文件系统层没坏;如果这里就报wrong fs type,别浪费时间,重做启动盘。
2.3 ISO 挑哪个点版本:18.04.6 和 16.04.7 的内核差一截
18.04.6 的桌面镜像默认带 5.4 内核,16.04.7 停在 4.15 上。这个差距在新硬件上非常直观:11 代平台板载的 2.5G 网卡、部分 Wi-Fi 6 无线芯片,4.15 内核里根本没有对应驱动,装完就是没网;5.4 虽然也未必全认得,但至少 r8169 这类通用驱动能先顶上一个“能通但速率不对”的状态。
反过来说,老机器上 18.04.6 也不是万能。MBR 分区、老南桥、某些工控板,5.4 内核反而会把电源管理搞出问题。我一般的判断顺序是:先看网卡和存储控制器型号,能在 5.4 内核的modules列表里找到对应项就上 18.04.6;找不到、或者这套系统是为了跑某个绑死 glibc 2.27 的软件,那就退回 16.04.7 并做好离线装驱动的准备。两个版本的镜像都能从国内公共镜像站拿到,选择带desktop-amd64的那一个,别下 server 版,驱动和桌面环境是两套东西。
ISO 下载完之后顺手把版本号记在 U 盘贴纸上,这一点听着多余,但批量装机器的时候,桌上同时躺着四张盘、分不清哪张是 16.04.7 的场景太常见了。
3. 手动分区:四个挂载点的容量账,和一个最容易选错的引导器落点
自动分区在单系统单硬盘上确实够用,但只要碰到双系统、或者装完打算长期跑数据库,手动分区就是必须迈过去的一步。这一步真正难的不是切容量,而是想清楚/和/home的边界划在哪、引导器到底装到哪块设备上。
3.1 为什么坚持拆 / 和 /home、swap 用分区而不是 swapfile
/和/home分开的直接收益是重装不丢数据:系统盘格掉、家目录原样保留,用户的配置、下载、数据库数据文件都在。代价是根分区会被固定住,装大软件时容易撑爆。18.04 上/var/cache/apt/archives、snap 的/var/lib/snapd、Docker 的镜像层默认全在根分区,100GB 起步比较稳妥,装完再df -hT看实际占用。
swap 用独立分区而不是 swapfile,主要是为了休眠。swapfile 走文件系统分配,块不连续,hibernate 恢复时容易失败;独立 swap 分区是连续块,更稳。容量上有个硬约束:swap 小于物理内存时,休眠一定失败。PDF 里给的 10000MB 是按 8GB 内存机器算的,如果机器是 16GB 内存又要用休眠,swap 得跟着往上抬。
| 挂载点 | 建议容量 | 文件系统 | 分区类型 | 说明 |
|---|---|---|---|---|
| /boot/efi | 512MB | FAT32 | 主分区 | UEFI 必需;双系统复用 Windows 的 ESP 时要先确认剩余空间够 |
| /boot | 512MB | ext4 | 逻辑分区 | 可不建;用 LVM 或全盘加密时建议独立出来 |
| swap | 10000MB | swap | 逻辑分区 | 内存 ≥16GB 且要休眠时同比放大 |
| / | 100GB | ext4 | 逻辑分区 | 下限 40GB,装数据库的给到 150GB 以上 |
| /home | 剩余容量 | ext4 | 逻辑分区 | 重装系统的保留区 |
3.2 安装器里逐屏走一遍
启动到安装界面,选语言、键盘、勾选“安装第三方软件”(这一项会把无线网卡固件、显卡闭源驱动一起装上,能省掉后面不少麻烦),到“安装类型”那一屏选其他选项,进入手动分区界面。
第一步是把目标盘建成 GPT 分区表,界面上会显示成一张“空闲空间”。老机器如果是 MBR 且要保留原有系统,就别动分区表,在空闲空间上直接新建。接下来按上表的顺序逐个点“+”:先建 ESP(用途选 EFI 系统分区,大小 512MB),再建 swap(用途选交换空间),再建/和/home(用途都选 ext4,挂载点分别填/和/home)。
如果机器已经有 Windows 的 ESP 分区,Ubuntu 安装器会自动复用它而不是新建,这一步看着省事,但 Windows 建的 ESP 通常只有 100MB,扣掉 Windows 自己的引导文件后往往只剩几十兆,塞不下 5.4 内核加 initrd。装到一半报failed to install grub的,十有八九卡在这。
3.3 “安装启动引导器的设备”这一栏
手动分区界面最下方有个下拉框,默认值经常是/dev/sda或者某个分区,这一栏选错,结果就是装完重启直接进 Windows,或者干脆进 BIOS。
正确做法是选整块系统盘,比如/dev/nvme0n1或/dev/sda,不要选/dev/sda1这种分区号。选分区的后果是 grub 被写到那个分区的引导扇区里,主板固件根本不会去读它。装完之后可以用这几条命令确认引导状态:
# 判断当前系统是 UEFI 还是 Legacy 方式引导 [ -d /sys/firmware/efi ] && echo "UEFI" || echo "Legacy" # 查看固件启动项顺序,确认 ubuntu 排在 Windows 前面 sudo efibootmgr -v # 查看根分区与家目录的实际占用,反推当初容量给得够不够 df -hT / /homeefibootmgr -v的输出里,每条启动项前面有序号,比如Boot0001* ubuntu,星号表示当前生效项。如果 ubuntu 那条不存在,说明 grub 没写进 ESP,需要进 live 环境用boot-repair或手动grub-install --target=x86_64-efi --efi-directory=/boot/efi补一次。df -hT那一行则是装完之后的第一份体检报告,/的使用率超过 80% 就该考虑把/var/lib/docker或 apt 缓存挪到别的分区了。
4. 网卡驱动:从 lspci 到 autorun.sh 的四步链路
驱动这一段是整个装机过程里最耗时间的部分,因为大部分时候机器处于“没网”状态,下载驱动这件事本身就成了鸡生蛋。正确顺序是:先用最原始的手段确认芯片型号,再想办法临时上网,再编译安装,最后做持久化。
4.1 先确诊,再下载:lspci 的三个看法
不要凭机器型号去猜网卡,同一批次的商务本换过三版无线模块是常事。进 live 环境或者装完的系统里直接查:
# 列出网络控制器及其绑定的内核驱动、可用模块 lspci -nnk | grep -A3 -i 'ethernet\|network' # 只看有线网卡的详细信息 lspci -v | grep -i -A5 ethernet输出大概长这样:
02:00.0 Ethernet controller [0200]: Vendor Device [10ec:8125] (rev 05) Subsystem: ... Kernel driver in use: r8169 Kernel modules: r8169三个关键信息:方括号里的[10ec:8125]是厂商 ID 加设备 ID,拿去搜驱动的匹配度最高;Kernel driver in use说明当前有没有驱动顶上;Kernel modules列出内核里编译进去的候选模块。如果in use那行是空的,就是彻底没驱动;如果显示r8169但网络不通,那是通用驱动顶上了但芯片版本不匹配,需要换厂商驱动。
无线网卡同理,lspci -nnk里会显示成Network controller,芯片代号常见的是 RTL8821CE 这一类,对应的开源驱动在几个代码托管平台上都有 DKMS 版本。
4.2 没网怎么先上网:手机 USB 共享是条后路
机器认不出网卡、又没有第二台能插网线的设备时,手机 USB 共享网络是最快的过渡方案。手机连上 Wi-Fi,开“USB 网络共享”,数据线插到目标机器上,系统会多出一个网口:
# 插上后看多了哪个网口,名字通常是 usb0 或 enp0s20f0u1 ip -br link # 桌面版 NetworkManager 一般会自动接管并拿到地址; # 纯命令行环境下手动要一次 DHCP sudo dhclient usb0 # 确认能出去,访问任意一个国内镜像站即可 ping -c3 mirrors.aliyun.comip -br link里的br是 brief,输出只有接口名、状态、MAC 三列,比ifconfig干净。dhclient usb0那条要注意接口名对得上,写错了不报错但也没用。这一步通了之后,第一件事是换软件源到国内镜像站,否则apt-get update会卡在archive.ubuntu.com上等到超时。
4.3 R8125 这类 2.5G 有线网卡:编译安装与 DKMS 化的区别
拿到厂商驱动包(形如r8125-9.007.01.tar.bz2)之后,整个流程是解包、装编译依赖、跑官方脚本。注意是xjf不是xzf,bz2 包用错参数会报gzip: stdin: not in gzip format:
# 1. 装编译工具链和当前内核的头文件,没这一步 autorun.sh 直接报 gcc not found sudo apt-get update sudo apt-get install -y build-essential linux-headers-$(uname -r) # 2. 解包并进入目录 tar -xjf r8125-9.007.01.tar.bz2 cd r8125-9.007.01 # 3. 官方脚本,内部会优先尝试注册进 dkms,失败再退回普通 make install sudo ./autorun.sh # 4. 不重启先验证模块有没有加载、网口有没有出现 lsmod | grep r8125 ip -br linklinux-headers-$(uname -r)里的uname -r必须与当前运行内核严格一致,如果之前手动升级过内核但没重启,头文件版本和运行版本会对不上,编译直接失败。autorun.sh干的事是:先make出r8125.ko,再make install到/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/下,最后depmod -a更新模块依赖。
普通make install和 DKMS 化的差别在内核升级之后:前者装的.ko只对应当前内核版本,apt upgrade换了内核,模块目录跟着变,网卡立刻失联,只能再插一次手机共享重来;后者把源码注册到 DKMS 框架里,每次内核更新自动重编。所以只要能装上 dkms,就别用裸make install。
4.4 RTL8821CE 这类无线网卡:走 DKMS 脚本
无线网卡的驱动源码维护在公开仓库里,仓库名就叫rtl8821ce,带dkms-install.sh的那一支是首选。流程比有线网卡还短:
# 依赖里多了 git,因为要拉源码 sudo apt-get install -y git dkms build-essential linux-headers-$(uname -r) # 拉取 DKMS 维护版源码 git clone <repo-url>/rtl8821ce.git cd rtl8821ce # 注册进 dkms 并编译安装,之后内核升级会自动重编 sudo ./dkms-install.sh # 手动加载模块,确认无线网口出现 sudo modprobe -v 8821ce ip -br linkmodprobe -v的-v会打印出它到底加载了哪个路径下的.ko,出问题的时候这条输出比什么都不显示有用得多。模块名是8821ce而不是rtl8821ce,写错了会报Module not found。
装完之后用dkms status看一眼注册状态,正常输出类似rtl8821ce, 1.0, 5.4.0-xx-generic, x86_64: installed。如果显示added而不是installed,说明源码登记了但编译失败,去看/var/lib/dkms/rtl8821ce/<版本>/build/make.log里的报错。最后重启验证一次,重启后如果无线又没了,八成是 Secure Boot 把未签名模块拦了,回 BIOS 关掉即可。
5. 五类翻车现场:现象、成因与补救命令
装机这件事,成功路径其实很短,剩下的时间全花在“装完了但不对劲”上。下面这五条是按出现频率排的,每条的排查顺序都是先看现象、再定位成因、最后给可直接执行的补救动作。
5.1 U 盘插上后启动菜单里根本看不到
现象:开机按 F12 进启动设备列表,只有硬盘和光驱,没有 U 盘;或者 U 盘出现了但名字前面带着UEFI:前缀,点了黑屏。
原因:99% 是 rufus 的分区方案和目标固件模式错配。GPT 加 UEFI 方案写出来的盘,在纯 Legacy 固件上不可见;反过来 MBR 加 BIOS 方案写出来的盘,在只开了 UEFI 模式的机器上同样不可见。少数情况是 U 盘本身用了 USB 3.x 接口而老机器的 3.0 控制器驱动不全。
解决:确认固件模式后重做启动盘,方案对照第 2 章那张表。如果是接口问题,换到 USB 2.0 口上试一次。另一个高频原因是固件里的 Fast Boot 开着,它会跳过 USB 设备枚举,进 BIOS 关掉再试。
5.2 装完重启直接进 Windows,或者报 no such device
现象:安装过程一切正常,重启拔掉 U 盘后直接进原有系统;或者屏幕上一行error: no such device后掉进 grub rescue 提示符。
原因:前一种是 grub 没写进 ESP,或者固件启动顺序里 Windows Boot Manager 排在前面;后一种是 grub 的配置文件里记录的根分区 UUID 变了,常见于装完之后又调整过分区。
解决:先在固件设置里把ubuntu调到第一位。如果启动项里压根没有 ubuntu,用 Ubuntu 安装盘进 live 环境,sudo fdisk -l找到 EFI 分区挂上,再手动重装 grub:
# 挂载原系统的根分区和 EFI 分区 sudo mount /dev/nvme0n1p3 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi # chroot 进去重装 grub 并重建配置 sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu update-grub exit分区号按fdisk -l的实际输出改,别照抄。--bootloader-id决定 efibootmgr 里显示的名字,用ubuntu就行。
5.3 装完没网,lspci 里Kernel driver in use是空的
现象:ip -br link只有 lo,lspci -nnk里网卡的驱动那行空白。
原因:内核版本低于芯片上市时间,模块表里没有对应项。11 代平台配 16.04 的内核 4.15 就是这个典型组合,装完连有线都不通。
解决:不是换驱动,是换系统版本。把 ISO 换成 18.04.6,5.4 内核自带的基础模块能覆盖大多数 2.5G 网卡。如果因为软件依赖必须留在 16.04,那就得走离线编译路线:先在别的机器上下载linux-headers对应版本的 deb 和驱动源码,用 U 盘拷进去dpkg -i装头文件,再编译。
5.4 分区时 EFI 分区建不出来,或者报空间不足
现象:手动分区界面点“+”选 EFI 系统分区时提示No space left,或者安装到Installing GRUB那步卡住然后失败。
原因:盘上已经有 Windows 建的 ESP,容量只有 100MB,被安装器自动复用,剩余空间塞不下新内核的 initrd;另一种是磁盘已经是 MBR 分区表且四个主分区全占满,第五个分区建不出来。
解决:ESP 空间不足,可以在 Windows 下用分区工具把 ESP 扩到 512MB,或者干脆把 Ubuntu 装到另一块盘上,让它拥有独立的 ESP。主分区满的情况,把其中一个分区删掉转成扩展分区,之后的逻辑分区就不受四个的限制了。
5.5 装完想恢复 U 盘,发现只剩几百兆且分不了区
现象:装机完成后 U 盘插回 Windows,容量显示成几百兆,右键格式化只能格那一个小分区,另一个分区看不见也删不掉。
原因:rufus 写盘时把 U 盘分成了两个分区,Windows 的磁盘管理对多分区 U 盘支持有限,尤其是第二个分区被识别成隐藏的 EFI 分区时。
解决:用diskpart的clean把整盘分区表抹掉重建,注意这一步会清空整个 U 盘,确认里面没有别的东西:
# Windows 管理员权限下的 cmd 里执行 diskpart list disk # 找到 U 盘对应的磁盘编号,别选错 select disk 2 # 换成实际编号 clean # 抹掉分区表 create partition primary format fs=ntfs quick assign exitselect disk那一步选错磁盘的后果是不可逆的,执行前把list disk的容量列对一遍。
6. 装完先补哪几个软件:deb 包安装和一份验收清单
系统装通、网卡能上网之后,剩下的活儿量不大但琐碎。这一段的取舍原则是:能用官方源装的就别下 deb 包,因为源里的包跟着安全更新走;必须用 deb 包的(数据库客户端、办公套件、输入法),装法上有个小技巧能省掉反复处理依赖的时间。
6.1 deb 包别用 dpkg -i 硬怼
sudo dpkg -i xxx.deb在依赖不全时会停在半路,留下一个 broken 状态,得再sudo apt-get install -f去补。更省事的做法是让 apt 直接吃本地 deb 文件,它会把依赖一起解掉:
# apt 会解析本地 deb 的依赖并从源里补齐,比 dpkg -i 少一轮善后 sudo apt install ./dbeaver-ce_latest_amd64.deb # 纯命令行截图工具直接从源装 sudo apt-get install -y flameshot # 装完确认包状态,状态列应为 ii dpkg -l | grep -E 'dbeaver|flameshot'apt install ./xxx.deb里那个./不能省,省掉 apt 会当成包名去源里搜。dpkg -l输出的第一列是状态位,ii表示已安装且配置完成,出现iU说明解包了但没配置,通常是依赖还没装齐。
6.2 截图工具和输入法的两个配置动作
flameshot 装完不会自动绑定快捷键,18.04 默认的 GNOME 下要去「设置 - 设备 - 键盘」拉到底部自定义快捷键,命令填flameshot gui,绑定到Ctrl+Alt+A这类不冲突的组合。注意它和系统自带的gnome-screenshot抢同一个键时会失效,绑之前先把系统截图快捷键改掉。
中文输入法装完之后,要去「区域和语言」里把输入法框架添加进去,再在输入源列表里加上中文,最后注销重新登录才生效。这一步漏掉的表现是:输入法进程在跑,但Ctrl+空格切不出来。
6.3 收尾
| 检查项 | 命令 | 期望结果 |
|---|---|---|
| 引导模式 | [ -d /sys/firmware/efi ] && echo UEFI | 与固件设置一致 |
| 网卡驱动 | lspci -nnk | grep -A3 -i ethernet | 有Kernel driver in use |
| 无线模块 | dkms status | 显示installed |
| 磁盘水位 | df -hT / /home | 根分区使用率 < 80% |
| 分区对齐 | sudo parted /dev/nvme0n1 align-check optimal 1 | 输出1 aligned |
这张表我一般会对着走一遍再交付,尤其是parted align-check那条——分区没对齐的话,SSD 的随机写性能会掉一截,而这个问题在装完之后完全不会报错,属于最难发现的那类。从那以后我每次装完系统,不管多赶时间,这五行都强制过一遍,比起事后被叫回去查“为什么这台机器比别人慢”,几分钟的检查划算得多。希望帮到你。
本文还有配套的精品资源,点击获取