2026/10/24 23:39:25

Ubuntu 18.04.6安装避坑:引导、网卡驱动与分区实战指南

Ubuntu 18.04.6安装避坑:引导、网卡驱动与分区实战指南 简介Ubuntu 18.04.6系统安装常见问题手册面向初次部署或需要重装该发行版的个人用户与运维人员集中解决启动盘制作、磁盘分区、硬件驱动适配及常用软件落地等环节的实操困惑。资源为1个PDF文件约172KB体量轻巧适合在装机现场随查随用。内容围绕Rufus制作UEFI启动盘、boot/EFI/swap/根目录/home的分区容量建议展开并针对联想E480无线网卡、MBR老台式机、航嘉i7-11700K以太网卡、Aigo水冷i7的Realtek 8125网卡等机型给出驱动获取与命令行安装思路。日常应用部分还整理了Chrome、DBeaver、WPS、搜狗拼音和Flameshot截图工具的安装入口与方式可作为系统装好后的快速配置清单。已有438人学习下载适合希望减少反复试错、快速完成Ubuntu部署的读者参考。1. 装完重启直接跳回原系统安装最后一步最常见的失败ubuntu18.04.6 系统安装最容易出问题的环节不是分区那一步而是进度条走完、提示重启之后——屏幕一黑几秒后直接跳回机器里原来那个系统连 GRUB 的影子都没出现再或者机器卡在主板 logo 上不动插着 U 盘勉强能进拔掉就彻底没戏。这类故障在各类求助帖里的出现频率极高因为它发生在「看起来已经装成功」的时刻前面几十分钟的操作全部白费很多人第一反应是照原样再装一遍第二遍结果还是一样。会遇到这类问题的一半是第一次在实体机上装 Linux 的新手一半是给老机器或新平台装旧版本 ISO 的老手。后面几章按我实际排查的顺序展开启动盘做出来不被认、装完没有网卡、分区表切错、系统进去之后软件装不上最后给一套拿到机器就能照着走的定位顺序。2. U 盘启动项里找不到设备UEFI 与 MBR 模式对不上号的四种现场2.1 开机按了启动热键却看不到 U 盘先确认固件工作在哪个模式现象很典型U 盘插上开机狂按启动热键菜单里只有硬盘和光驱或者只出现一个不带前缀的 USB 项目选进去直接黑屏。原因基本是写入方式和固件模式错位——用 GPT UEFI 方式写出来的盘插在一台只认 Legacy/CSM 的老机器上固件根本不会去读它反过来用 MBR BIOS 写的盘插在关了 CSM 的新机器上同样看不见。判断当前是哪种模式不用进 BIOS 翻菜单进到安装环境Live 桌面打开终端跑一条命令就行# 存在 /sys/firmware/efi 目录说明当前是以 UEFI 模式启动的 [ -d /sys/firmware/efi ] echo UEFI || echo Legacy/BIOS # 顺便看一眼固件登记的启动项带 UEFI: 前缀的才是 UEFI 启动 sudo efibootmgr -v第一条命令用目录存在性判断比看dmesg里一堆无关日志快得多第二条在 UEFI 机器上会列出所有启动项BootOrder的顺序就是固件尝试的顺序如果列表里压根没有你的 U 盘说明固件没把它当可启动设备得回去查写入模式而不是继续在安装界面里折腾。还有两个容易被忽略的开关Secure Boot 打开时部分非签名引导会被拦掉装 18.04.6 这类镜像建议先进 BIOS 关掉再试另外 USB 3.0 接口在老机器上偶发识别不了换到 USB 2.0 口通常是黑色那个反而一次就过我遇到过两次都以为是盘做坏了。2.2 老机器 MBR 硬盘Rufus 里三个下拉框选错就白做老机器的坑在于硬盘是 MBR 分区表固件没有 UEFI。这时候用默认参数写出来的启动盘插上去不是不认就是装到一半提示找不到安装介质。我用 Rufus 3.x 时固定按目标机器选这三项目标机器类型分区类型目标系统文件系统新机器硬盘 GPT固件支持 UEFIGPTUEFI非 CSMFAT32老机器硬盘 MBR只认 LegacyMBRBIOS或 UEFI-CSMFAT32需要在两种机器上混用MBRBIOS 或 UEFI-CSMFAT32分区类型这一项决定写入的引导记录形式选错等于给固件递了一张它读不懂的票目标系统这一项影响写入的引导文件选 UEFI 会写EFI/BOOT/BOOTX64.EFI选 BIOS 走的是另一套文件系统保持 FAT32 最稳UEFI 规范本身只要求能读 FAT用 NTFS 在部分固件上会直接跳过。Rufus 开始写入时会弹一个「ISO 镜像模式 / DD 镜像模式」的选择框。ISO 模式会解开镜像再按文件写方便你改里面的东西DD 模式是逐扇区原样写入。装 Ubuntu 桌面版一般用 ISO 模式没问题但如果写入后启动时报Failed to load ldlinux.c32或直接卡在引导符号上换成 DD 模式重写一遍这类报错九成是引导文件被解包解坏了。提示写完不要急着拔盘等 Rufus 的进度条和「准备就绪」状态都结束Windows 有时还在后台刷缓存提前拔会导致尾部数据不完整症状是能启动但安装到一半读文件失败。2.3 ISO 本身有问题校验和与写入后的验证另一类「盘做了、能启动、但装到一半失败」的情况来源是下载的 ISO 不完整。镜像站断流、浏览器续传出错都会造成这种半截文件体积看着差不多实际尾部是空的。# 在任意 Linux 环境里校验输出和镜像站公布的 SHA256SUMS 对得上才算完整 sha256sum ubuntu-18.04.6-desktop-amd64.iso # 有官方 SHA256SUMS 文件时直接让它自己比对省得肉眼核对 sha256sum -c SHA256SUMS --ignore-missing第一条命令输出一串 64 位十六进制和镜像站SHA256SUMS里对应那一行逐字符比对第二条把校验文件放在同目录下执行匹配会打印OK不匹配打印FAILED比人眼看靠谱。校验不通过就别浪费时间排查硬件了重新下一遍尽量用国内镜像站以减少中断概率下载工具关掉多线程续传反而更稳。2.4 拔掉 U 盘进不去系统引导器被装到了 U 盘上这是第 1 章里「重启直接回原系统」的最常见根因之一。安装最后一步有个「安装启动引导器的设备」下拉框默认值有时会指向 U 盘本身结果 GRUB 写进了 U 盘机器硬盘上的 EFI 分区里空空如也。表现就是插着 U 盘能进 GRUB拔掉就进原系统或者报no bootable device。不用重装进 Live 环境把引导补回去就行。假设根分区是/dev/nvme0n1p2EFI 分区是/dev/nvme0n1p1# 1. 挂载原系统的根分区和 EFI 分区 sudo mount /dev/nvme0n1p2 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi # 2. 把运行时目录绑定进 chroot否则 grub-install 拿不到设备信息 for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done # 3. 切进原系统重新安装 GRUB 并重建菜单 sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit # 4. 卸载后重启 sudo umount -R /mnt reboot第 2 步的mount -Bbind mount是关键少了它grub-install会因为看不到/dev下的块设备而失败报错通常是cannot find a device for /boot/grub。第 3 步里grub-install后面跟的是磁盘设备/dev/nvme0n1不是分区写成p1会报Installation finished. No error reported但实际没生效——这个静默失败坑过不少人。UEFI 机器上还可以用efibootmgr -v确认多了一条ubuntu启动项顺序不对就用efibootmgr -o调整。3. 装完没网卡无线、2.5G 有线与内核版本三类驱动缺失3.1 先分清「硬件没认出来」和「驱动没挂上」同样是「没有网」处理路径完全不同。前者可能是硬件松动或固件层面禁用后者是内核认识这块芯片但没有对应模块。一条命令就能分开# -nnk 显示设备 ID 和正在使用的内核驱动看 Kernel driver in use 这一行 lspci -nnk | grep -A 3 -i -E ethernet|network # 看系统当前有哪些网络接口只有 lo 说明一个物理网卡都没起来 ip -br link # 无线被软开关或飞行模式关掉时表现也像没有网卡 rfkill list all-A 3是把匹配行后面三行一起带出来那三行里最关键的是Kernel driver in use显示具体模块名比如r8169说明驱动已加载问题在别处这一行缺失、只剩Kernel modules:列出几个候选就是典型的「有硬件没驱动」。ip -br link用一行一个接口的紧凑格式输出正常机器至少有lo和enp*/wlp*只有lo就说明网络栈里没有任何物理设备接下来要往驱动方向查而不是去改 NetworkManager 配置。3.2 无线网卡缺驱动把源码包传进去编译一次某品牌轻薄本装完 18.04.6 之后无线列表里什么都没有lspci能看到无线网卡但Kernel driver in use为空这类 RTL8821CE 芯片在老内核里没有内置模块得自己编。麻烦点在于机器没网编译工具也装不上所以顺序要反过来先用另一台机器把源码包和编译好的依赖准备好用 U 盘拷进去。# 1. 有手机 USB 共享网络时先装编译环境和当前内核的头文件 sudo apt-get update sudo apt-get install -y build-essential dkms linux-headers-$(uname -r) # 2. 解压源码包并编译安装源码包由另一台机器下载后拷入 tar -xzf rtl8821ce-driver.tar.gz cd rtl8821ce-driver sudo ./dkms-install.sh # 3. 加载模块并确认 sudo modprobe 8821ce lsmod | grep 8821ce ip -br link第 1 步里linux-headers-$(uname -r)必须和当前运行的内核版本严格一致uname -r会展开成类似5.4.0-150-generic的字符串装错版本编出来的模块加载时会报invalid module format。第 2 步用dkms-install.sh而不是make make install是因为 DKMS 会把驱动注册到内核更新流程里下次apt upgrade换了内核会自动重编省掉「某次更新之后无线又没了」这种返工。注意modprobe成功不代表能用dmesg | tail -30里如果有firmware: failed to load之类的行说明还缺固件文件得从linux-firmware包里补光有驱动模块是不够的。3.3 有线 2.5G 网卡认不到从 USB 共享网络到 autorun.sh某品牌 i7-11700K 台式机装完 18.04.6ip -br link里只有lolspci -v看到网卡是 RTL8125 芯片Realtek Device 8125 rev 05。这块 2.5G 网卡在内核 5.4 里没有自带模块必须先联网装编译环境再编厂商驱动。机器本身没网我一般用手机 USB 共享网络即插即用的 rndis 驱动是内核自带的能临时提供一个出口# 1. 确认网卡型号REV 号要和驱动包对得上 lspci -v | grep -i -A 3 ethernet # 2. 手机 USB 共享网络接上后通常会多出 usb0 或 enp0s20f0u1 这类接口 ip -br link sudo dhclient usb0 # 没自动拿到地址时手动请求一次 # 3. 装编译环境 sudo apt-get update sudo apt-get install -y build-essential linux-headers-$(uname -r) # 4. 解压厂商驱动并执行自带安装脚本 tar -xjf r8125-9.007.01.tar.bz2 cd r8125-9.007.01 sudo sh ./autorun.sh # 5. 重启让新模块接管设备 reboot第 4 步的autorun.sh做的是一整套动作卸载内核里同名/冲突的旧模块、make编译、make install把r8125.ko装进/lib/modules/$(uname -r)/、再modprobe加载。它失败时不会给出很完整的错误真正的线索在源码目录下的make.log和src/make.log里常见原因是头文件版本不匹配/lib/modules/$(uname -r)/build指向空、或者内核太老缺某些宏定义。第 5 步重启不是形式主义。同名模块在内存里已经加载过旧版本时直接modprobe可能还是老的重启是最干净的验证方式。重启后跑lsmod | grep r8125和ip -br link接口出现且ethtool能读出速率才算真的成了。3.4 内核版本太低为什么老 ISO 装新机器会「装完没以太网卡」同一台新平台机器装 16.04.7 装完没有以太网卡换成 18.04.6 就好了原因不在安装过程而在 ISO 里打包的内核版本。16.04.7 的内核版本较低驱动覆盖面停留在它发布时的硬件18.04.6 用的是更新一代的 HWE 内核内置模块多得多。网卡这类外设更新换代快新芯片经常在老内核里既没有模块也没有固件。判断是不是这个原因三步就够# 1. 当前内核版本 uname -r # 2. 网卡是否被 PCI 层识别以及有没有驱动绑定 lspci -nnk | grep -A 3 -i ethernet # 3. 看这个 PCI ID 到底有没有可用模块 modinfo r8125 2/dev/null || echo no module第 1 步出现的版本号如果比网卡芯片的发布时间还早基本可以断定是内核太老。第 2 步里Kernel modules:后面如果有r8169之类的模块名而Kernel driver in use为空往往能通过sudo modprobe r8169临时救急但这块 2.5G 芯片用千兆驱动跑会识别成百兆甚至直接失败只能算应急。真正稳妥的做法是选一个内核够新的 ISO或者装完之后补装 HWE 内核包而不是在一个老内核上反复折腾驱动兼容性。4. 分区表切错boot、efi、swap、/、home 五个挂载点的容量与补救4.1 五个挂载点的容量怎么算安装向导里的「其他选项」一进去就是分区表多数人卡在这里不是不会操作而是不知道该给多少。下面这套是我在几十台机器上用的固定比例装在 128G 到 1T 的盘上都合适挂载点建议容量文件系统说明/boot512MBext4放内核和 initramfs留太多没用留太少更新内核时会满EFI 分区512MBfat32UEFI 机器必需挂载点选/boot/efi不要格式化错swap内存的 11.5 倍swap要休眠就必须大于物理内存不休眠 8G 内存给 8G 足够/100GB 左右ext4系统和软件装桌面环境加一堆开发工具 60G 起步/home剩余全部ext4独立出来的价值在于重装系统时数据不用搬/boot单独分的意义在加密和快照场景普通单系统其实可以不单独分但分了之后注意别给 200MB 这种尺寸一次内核更新装两三个版本就撑爆然后apt upgrade报No space left on device排查起来很绕。/home 独立是最值得做的一步重装时只要不格式化它用户数据、配置文件全在省掉大量恢复时间。4.2 EFI 分区没建或格式错GPT 与 MBR 的分区表差异UEFI 启动的机器必须有一个 FAT32 分区挂载点设成/boot/efi并且打上boot/esp标记。装完重启进不去系统、或者安装器最后报Unable to install GRUB in /dev/sda很多就是这个分区的问题。GPT 分区表下没有这个分区安装器会尝试以 BIOS 方式装引导两种模式混着来必挂。在安装界面的分区工具里操作时注意两点分区表类型要和固件模式匹配UEFI 机器选 GPTLegacy 机器选 MBR把 GPT 盘装在只认 Legacy 的老机器上即使装完也起不来EFI 分区的文件系统必须显式选 fat32默认可能是 ext4格式不对的话引导文件写不进去安装器不报错但重启后固件找不到BOOTX64.EFI。装完才发现没 EFI 分区的补救比想象中麻烦得从别的分区缩出 512MB 再转格式风险高。我的习惯是分区这一步做完先别点下一步把分区列表截图存下来回头出问题时能立刻对照是哪个环节错了。4.3 装完发现 home 没独立或根目录爆了迁移与扩容另一个高频后悔场景装的时候图快全部塞进/用了半年根目录满了或者想把 home 独立出来但不想重装。这属于可以事后补救的类型用 rsync 搬一次就行。假设新加了一块盘或者从别处腾出了一个分区/dev/sdb1# 1. 格式化新分区并临时挂载 sudo mkfs.ext4 /dev/sdb1 sudo mkdir -p /mnt/newhome sudo mount /dev/sdb1 /mnt/newhome # 2. 保留权限、属主、ACL 和硬链接整体搬过去 sudo rsync -aAXHv /home/ /mnt/newhome/ # 3. 取分区 UUID写 fstab 时用 UUID 而不是设备名 sudo blkid /dev/sdb1第 2 步的四个参数各有用途-a归档模式保留权限和时间戳-A保留 ACL-X保留扩展属性-H保留硬链接。少任何一个搬完之后用户目录里的权限都可能变成 root 所有登录后各种配置读不出来。末尾的/home/带斜杠表示「这个目录里的内容」不带斜杠会把 home 整个目录塞进新分区里多出一层嵌套这是最常见的操作失误。第 3 步一定要用 UUID。/dev/sdb1这种设备名在插拔硬盘、改 BIOS 顺序之后可能变化fstab 里写死设备名会导致开不了机掉进 emergency mode。拿到 UUID 后往/etc/fstab里加一行# file system mount point type options dump pass UUIDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home ext4 defaults 0 2改完 fstab 先用sudo mount -a验证没有报错再重启别直接 reboot 赌一把。5. 常见问题避坑装完系统后最容易踩的五个坑5.1 双系统时间差 8 小时现象、原因与两种处理方式现象从 Windows 切回 Ubuntu系统时间永远慢 8 小时手动改完重启又错。原因是两套系统对硬件时钟的理解不一样Windows 默认把主板时间当本地时间写Linux 默认当 UTC 存来回切换就互相覆盖。解决有两条路选哪条取决于你更常进哪个系统。留在 Linux 侧统一成 UTC 的做法是让 Windows 也按 UTC 读需要改注册表比较折腾反过来把 Linux 迁就 Windows 只需要一条命令# 让系统把硬件时钟当作本地时间并立即同步一次 sudo timedatectl set-local-rtc 1 --adjust-system-clock # 确认状态RTC in local TZ 应为 yes timedatectl参数1表示 local TZ--adjust-system-clock会顺手把当前系统时间写回硬件时钟不做这一步的话要等下次开机才生效。代价是 Ubuntu 侧不再自动处理夏令时国内不用考虑以及某些依赖 UTC 的服务会有点小别扭。我更倾向保持 UTC 不动只在 Windows 那边改因为服务器习惯就是 UTC。5.2 deb 包双击没反应、dpkg 报依赖不满足现象从官网下的数据库客户端、国产办公套件的 deb 包软件中心点了转圈然后什么都没发生命令行sudo dpkg -i xxx.deb则报一串dependency problems。原因是 deb 包只声明依赖不会自动拉取缺的库得自己去装。# 方式一先用 dpkg 装再用 -f 让 apt 补齐缺失依赖 sudo dpkg -i dbeaver-ce_latest_amd64.deb sudo apt-get install -f # 方式二18.04 的 apt 支持直接装本地包一步到位处理依赖 sudo apt-get install ./dbeaver-ce_latest_amd64.deb方式一的-f是--fix-broken的缩写它会扫描处于半配置状态的包并尝试修复是 dpkg 装失败后的标准动作。方式二更省事./前缀告诉 apt 这是本地文件而不是仓库包名缺什么自动补。两种方式都失败时看apt-get install -f的具体输出如果是Depends: xxx but it is not installable说明依赖包在 18.04 的源里根本没有通常是这个 deb 是为更高版本系统打的硬装上去运行也会崩。注意办公套件、输入法这类带中文界面的软件装完发现菜单是方块多半是缺中文字体sudo apt-get install fonts-wqy-microhei补一下就好了不是安装失败。5.3 中文输入法装完切不出来现象、原因与配置顺序现象输入法框架和拼音引擎都装完了CtrlSpace按下去毫无反应或者只能在某些应用里切换。原因通常是输入法框架没被设为系统默认或者 GTK/Qt 的环境变量没导出各应用各走各的。# 1. 装框架和拼音引擎 sudo apt-get install -y fcitx fcitx-pinyin # 2. 设为系统默认输入法框架im-config 会写进用户配置 im-config -n fcitx # 3. 补环境变量避免只有部分应用能切换 cat ~/.xprofile EOF export GTK_IM_MODULEfcitx export QT_IM_MODULEfcitx export XMODIFIERSimfcitx EOF三步做完必须注销重新登录im-config和.xprofile都只在会话启动时读取不重登等于没改。三个环境变量分别管 GTK 应用、Qt 应用和 XIM 协议的老程序缺一个就会出现「浏览器能打字、终端不能」这种半残状态。如果重登后仍然不行检查是否装了两套框架fcitx 和 ibus 同时存在会互相抢把不用的那个卸掉。5.4 截图快捷键设了没反应命令路径与桌面环境差异现象截图工具用apt-get install装完在设置里绑了快捷键按下去没有任何反应或者只闪一下没出图。原因是快捷键绑定的命令写错了或者绑到了错误的层级上。# 截图工具直接来自官方源一条命令装完 sudo apt-get install -y flameshot # 手动跑一次确认程序本身没问题会进入截图交互界面 flameshot gui先手动执行flameshot gui能正常框选说明程序没问题问题在快捷键绑定。在系统设置的键盘快捷键里新增自定义快捷键时命令必须写完整路径或者在 PATH 里能找到的名字写成flameshot gui而不是只写flameshot后者会启动托盘而不截图。另外 18.04 默认跑在 Xorg 上如果你切到了 Wayland 会话全局快捷键和截图这类需要抓屏的操作会受限切回 Xorg 是最快的验证方式。绑定完成后按一下看有没有反应没反应就换个键位试某些组合键会被桌面环境先截走。5.5 驱动装完重启又失效内核升级冲掉了模块现象网卡驱动好不容易编好、能上网了过了几周apt upgrade之后重启网又没了lspci里Kernel driver in use又是空的。原因是内核版本升了模块装在旧内核目录下新内核找不到它。# 1. 确认当前内核和模块所在的目录是否对应 uname -r ls /lib/modules/ # 2. 用 DKMS 注册过的驱动会显示状态没有条目说明当初是直接 make install 的 dkms status # 3. 没走 DKMS 的升级后需要在当前内核上重新编译一次 cd r8125-9.007.01 sudo sh ./autorun.sh判断方法就是看ls /lib/modules/下有多个版本目录而当前内核那个目录里没有你的模块。当初用make install装的驱动不会跟着内核走这是血泪经验——凡是要长期用的第三方驱动优先用厂商提供的 DKMS 脚本或自己注册进 DKMS宁愿多花十分钟配置也别每次升级后手动重编。6. 从黑屏到能上网一台机器到手后的定位顺序装系统这类故障最费时间的不是解决而是判断方向错了之后在错误的分支上猛挖。我现在的习惯是严格按「固件模式 → 引导 → 网络 → 应用」的顺序走每一步用一条命令拿事实不靠猜。症状一条命令看什么启动菜单里没有 U 盘进 Live 环境跑[ -d /sys/firmware/efi ]输出 UEFI 就得用 GPT 写盘输出 Legacy 就得用 MBR装完拔盘进不去系统sudo efibootmgr -vBootOrder里有没有 ubuntu没有就是引导没装上装完界面卡住或黑屏引导参数加nomodeset试一次能进说明是显卡驱动问题不是安装失败没有网络图标lspci -nnk | grep -A 3 -i ethernetKernel driver in use为空就是缺驱动有接口但上不了网ip -br link和ip route接口没起来是驱动/链路问题没默认路由是配置问题驱动装了重启失效dkms status没有条目说明驱动没注册下次升级还会掉这张表的价值在于把「玄学」变成可验证的分支nomodeset那次是我在一台新显卡机器上卡了两小时才想到的加上之后直接进了桌面说明镜像本身没问题只是内核自带的显卡模块不认这块芯片装完再补官方驱动即可。网络那两行则是把「没网」拆成硬件、驱动、路由三段先看 PCI 层认不认再看接口起不起最后才查 IP 配置顺序反了就会一直在改 NetworkManager 配置里打转。验证动作也要养成习惯装完系统第一件事不是装软件而是ip -br link加一次ping外网确认网络通第二件事是重启一次确认拔掉 U 盘还能进第三件事是跑一次sudo apt-get update sudo apt-get upgrade把内核和固件补到最新。这三步做完后面再折腾软件和驱动才有意义否则出了问题你会分不清是新装的东西搞的还是系统本身就没装稳。从那以后我每次装完系统都强制把这三步走一遍再动手装别的哪怕机器看起来一切正常。很多故障不是当时没解决而是当时看起来解决了。希望帮到你。本文还有配套的精品资源点击获取