1. 为什么我还在用U盘给Ubuntu做全新安装
每次换新硬盘、新主板,或者帮朋友把一台旧笔记本从卡顿的系统里救出来,我第一反应还是掏出U盘做一次干净的Ubuntu安装。很多人觉得现在容器、虚拟机、云主机这么方便,谁还折腾物理机装机?但真到了要跑本地编译、接外设调试、做深度学习推理、或者单纯想要一台响应极快的开发机时,物理机上的Ubuntu依然是性价比最高的选择。装机这件事看起来简单,可真正踩过坑的人都知道,从下载镜像到分区方案,再到驱动和引导,每一步都有讲究。
这篇内容我打算把整个Ubuntu装机过程拆开讲透。适合三类人看:第一类是第一次装Linux、怕把电脑搞坏的新手;第二类是装过几次但总在分区、引导、驱动上翻车的半熟手;第三类是老手,想看看有没有能优化流程、节省时间的细节。我会从镜像选择、启动盘制作、BIOS设置、分区策略、安装过程、驱动补全、常见故障排查这几个维度,把每一步背后的逻辑讲清楚,而不是只给一串命令让你照抄。
先说一个反直觉的结论:Ubuntu装机失败,八成不是系统本身的问题,而是启动盘制作方式、BIOS引导模式、分区表类型这三者没对齐。我见过太多人卡在“找不到启动设备”“安装程序检测不到硬盘”“装完进不去系统”这些环节,其实根源都在这里。所以下面的内容我会反复围绕这三个核心点展开,把它们的因果关系讲明白。
2. 镜像下载与启动盘制作:别小看这一步
2.1 版本选择:LTS还是最新版
Ubuntu的版本分两类:LTS(长期支持版)和普通版本。LTS每两年发布一次,桌面版支持5年,服务器版支持更久;普通版本每半年一版,支持周期只有9个月。我的建议很直接:除非你有明确的新硬件支持需求,否则一律选LTS。比如做开发机、办公机、服务器,LTS的稳定性经过大量验证,软件源和第三方驱动的兼容性也最好。
那什么时候需要最新版?两种情况:一是你的CPU、显卡、网卡太新,LTS的内核版本识别不了;二是你需要某个只在最新版里才有的特性。这种情况下可以先装最新版,等下一个LTS发布后再迁移。下载的时候认准官方渠道,别去乱七八糟的镜像站下修改版,那些版本可能被塞了额外软件源,装完一堆广告和后台服务。
下载完成后一定要做校验。很多人跳过这步,结果U盘写坏了、镜像下载不完整,安装到一半报错,白白浪费时间。校验方法很简单,在下载目录打开终端:
# 计算SHA256校验值 sha256sum ubuntu-24.04-desktop-amd64.iso把输出结果和官网公布的校验值对比,一致才说明文件完整。不一致就重新下载,别抱侥幸心理。
2.2 启动盘工具的选择逻辑
制作启动盘的工具很多,Windows下常见的有Rufus、balenaEtcher、Ventoy,Linux下可以用dd命令或者Startup Disk Creator。我按使用场景给你一个选择表:
| 工具 | 适用场景 | 优点 | 注意点 |
|---|---|---|---|
| Rufus | Windows下做单系统盘 | 分区方案可选,兼容性好 | 要手动选GPT/MBR |
| balenaEtcher | 跨平台,新手友好 | 界面简单,自动校验 | 不能做多合一 |
| Ventoy | 需要多个镜像共存 | 一次制作,拖入即用 | 部分老主板兼容性差 |
| dd命令 | Linux/macOS下快速制作 | 无需额外软件 | 写错设备名会毁数据 |
我个人的习惯是:如果只装一次,用balenaEtcher最省心;如果经常装不同系统,用Ventoy做一个多合一盘;如果在Linux环境下批量操作,直接dd。这里重点说dd,因为它最容易出事:
# 先确认U盘设备名,千万别写错 lsblk # 假设U盘是 /dev/sdb,写入镜像 sudo dd if=ubuntu-24.04-desktop-amd64.iso of=/dev/sdb bs=4M status=progress oflag=sync注意:
of=后面必须是整块设备(如/dev/sdb),不能带分区号(如/dev/sdb1),否则镜像写不进去。写之前反复确认设备名,写错硬盘就全没了。
2.3 启动盘制作中最容易忽略的细节
第一个细节是U盘的文件系统。用Rufus时它会问你要FAT32还是NTFS。FAT32单文件不能超过4GB,而Ubuntu镜像现在普遍超过4GB,所以Rufus会自动拆分或者提示你用NTFS。但有些老主板只认FAT32引导,这时候就得用Rufus的“以ISO镜像模式写入”来绕过限制。
第二个细节是安全弹出。写完镜像后一定要在系统里“安全弹出”U盘再拔,否则文件系统可能没同步完,插到目标机器上引导失败。这个坑我踩过不止一次,明明制作成功,换台机器就报“invalid signature”。
第三个细节是USB接口版本。制作启动盘时插USB 3.0口速度快,但有些老机器只有USB 2.0口能引导,3.0口在BIOS阶段不识别。如果遇到引导失败,换个USB 2.0口试试,往往就解决了。
3. BIOS设置与引导模式:装机成败的分水岭
3.1 UEFI和Legacy到底选哪个
这是整个装机过程中最关键的一个决定。简单说,UEFI是新式引导,配合GPT分区表;Legacy是传统BIOS引导,配合MBR分区表。两者不能混用,混用就会导致“装完进不去系统”或者“安装程序看不到硬盘”。
怎么判断该用哪个?看你的机器年代和硬盘大小。2012年以后的主板基本都支持UEFI,硬盘超过2TB必须用GPT,所以必须UEFI。老机器(2010年以前)可能只支持Legacy,那就用MBR。如果你不确定,进BIOS看有没有“UEFI/Legacy Boot”选项,有就选UEFI。
我建议只要硬件支持,一律用UEFI+GPT。原因有三:GPT支持超过2TB的硬盘、UEFI启动更快、UEFI支持安全启动和更安全的引导链。Legacy模式迟早被淘汰,现在新主板甚至已经移除了Legacy支持。
3.2 进BIOS后必须检查的几项设置
不同品牌的BIOS界面差异很大,但核心设置就那几个。进BIOS通常在开机时按F2、Del、F12或Esc,具体看屏幕提示。进去后重点检查:
- Boot Mode:设为UEFI Only,或者UEFI First。
- Secure Boot:装Ubuntu时可以保持开启,Ubuntu支持安全启动。但如果要装第三方驱动(如NVIDIA闭源驱动),建议先关闭,装完再开。
- SATA Mode:设为AHCI,不要用RAID或IDE。Windows和Linux都认AHCI,RAID模式会导致安装程序找不到硬盘。
- Fast Boot:关闭。快速启动会跳过USB设备检测,导致U盘引导失败。
- CSM:关闭。CSM是兼容模式,开启后可能强制走Legacy引导。
这些设置里,SATA Mode和Fast Boot是最容易出问题的两个。我遇到过一台机器,SATA Mode默认是RAID,Ubuntu安装程序死活看不到硬盘,改成AHCI后立刻识别。还有Fast Boot开着的时候,U盘插上去BIOS根本不认,关掉就能引导。
3.3 引导顺序与U盘识别
设置完上面的选项后,把U盘插上,重启进BIOS的Boot菜单,把U盘调到第一位。如果列表里看不到U盘,检查三件事:U盘是否制作正确、是否插在能被BIOS识别的接口、Fast Boot是否关闭。有些主板需要把“USB Boot”单独打开,或者把U盘从“Hard Drive BBS Priorities”里调整。
提示:如果U盘在Boot菜单里显示为两个条目(一个带UEFI前缀,一个不带),选带UEFI的那个,这样才会以UEFI模式引导。
4. 分区方案:给系统留足呼吸空间
4.1 手动分区还是自动分区
Ubuntu安装程序提供“清除整个磁盘并安装”和“其他选项”两种。新手图省事会选自动,但自动分区有几个问题:它可能不给你单独的/home分区,重装系统时数据全丢;它可能把EFI分区设得太小,导致以后内核更新失败;它可能不创建swap分区,休眠功能用不了。
我的建议是手动分区,哪怕你是第一次装。手动分区没那么可怕,只要理解每个挂载点的作用就行。下面给一个我常用的分区方案,适用于单系统、256GB以上硬盘:
| 挂载点 | 建议大小 | 文件系统 | 作用 |
|---|---|---|---|
| /boot/efi | 512MB~1GB | FAT32 | UEFI引导文件 |
| / | 50GB~100GB | ext4 | 系统和软件 |
| /home | 剩余空间的大部分 | ext4 | 用户数据 |
| swap | 内存的1~2倍或等大 | swap | 休眠和内存交换 |
如果硬盘特别小(128GB),可以不分/home,把整个剩余空间给/,swap用swapfile代替。如果内存大于32GB且不用休眠,swap可以设小一点甚至不设,但建议至少留4GB以防万一。
4.2 EFI分区的大小陷阱
EFI分区默认给512MB,很多人觉得够了。但如果你以后要装多个内核、多个系统,或者厂商的固件更新往EFI分区里塞东西,512MB很快就会满。EFI分区满了会导致内核更新失败,系统起不来。我一般直接给1GB,反正现在硬盘大,不差这500MB。
EFI分区的文件系统必须是FAT32,类型选“EFI System Partition”。在Ubuntu安装程序里,手动分区时要把这个分区的“用于”设为“EFI系统分区”,挂载点选/boot/efi。如果装双系统,这个分区要和Windows共用,千万别格式化,否则Windows也起不来。
4.3 swap分区的现代用法
传统观念认为swap要设成内存的两倍,那是机械硬盘时代的老黄历。现在SSD速度快,内存也大,swap的作用主要是休眠和应急。我的做法是:内存16GB以下,swap设成和内存等大,方便休眠;内存32GB以上,swap设8GB~16GB就够,或者干脆用swapfile。
用swapfile的好处是不用单独分区,随时可以调整大小:
# 创建8GB的swapfile sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 写入fstab实现开机自动挂载 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab注意:如果安装时选了“加密主目录”或全盘加密,swap分区会被自动加密,但swapfile不会。需要休眠功能的话,还是单独分一个swap分区更稳妥。
5. 安装过程详解:从点击安装到首次重启
5.1 安装程序里的关键选项
进入安装程序后,前面几步(语言、键盘、网络)按实际情况选就行。到了“安装类型”这一步,选“其他选项”进入手动分区。分区完成后,安装程序会问你把引导程序装在哪里。UEFI模式下,引导程序要装到EFI分区对应的磁盘上,通常是/dev/sda或/dev/nvme0n1,不是分区号。
接下来是用户设置。用户名建议用小写字母,不要用中文或特殊字符,否则某些命令行工具会出问题。密码设强一点,但别设到自己都记不住。如果这台机器只有你用,可以勾选“自动登录”省去每次输密码,但笔记本建议不勾,防止丢失后数据泄露。
安装过程中会下载语言包和第三方软件,如果网络慢可以跳过,装完再补。整个安装过程大概10到30分钟,取决于硬盘速度和网络。期间屏幕可能会黑一下或者闪一下,正常现象,别以为死机了。
5.2 安装完成后的首次重启
安装完成后提示重启,这时候先拔掉U盘再按回车,否则可能又从U盘引导,进入安装界面。如果拔了U盘还是进安装界面,说明BIOS引导顺序没调对,进BIOS把硬盘调到第一位。
首次进入系统后,先做几件事:更新软件源、升级系统、检查驱动。打开终端:
sudo apt update sudo apt upgrade -y # 查看显卡驱动状态 ubuntu-drivers devices # 自动安装推荐驱动 sudo ubuntu-drivers autoinstall如果用的是NVIDIA显卡,装完驱动重启后可能遇到黑屏或分辨率不对,这是驱动和内核模块没配合好。解决办法是进GRUB的恢复模式,或者用nomodeset参数临时进入系统再重装驱动。
5.3 双系统用户的额外注意事项
如果你要在已有Windows的机器上装Ubuntu,有几件事必须提前做。第一,在Windows里关闭“快速启动”和“休眠”,否则Windows会锁定硬盘,Ubuntu安装程序无法写入。第二,用Windows的磁盘管理压缩出空闲空间,不要用Ubuntu安装程序去压缩Windows分区,容易出错。第三,确认Windows是UEFI引导,否则两个系统引导模式不一致,GRUB可能识别不到Windows。
装完后如果GRUB菜单里没有Windows,在Ubuntu里执行:
sudo update-grub通常就能识别到。如果还不行,检查Windows的EFI分区是否挂载正确,或者用os-prober手动探测。
6. 装完之后:驱动、输入法、常用软件一次配齐
6.1 驱动补全的优先级
Ubuntu装完后,最影响体验的是显卡驱动、无线网卡驱动和指纹驱动。显卡驱动前面说了,用ubuntu-drivers自动装。无线网卡如果识别不了,先看lspci或lsusb确认型号,然后查是否需要额外固件。有些Broadcom网卡需要装bcmwl-kernel-source,有些Intel网卡需要更新内核。
指纹驱动比较麻烦,不是所有型号都有Linux支持。可以装fprintd和libpam-fprintd试试:
sudo apt install fprintd libpam-fprintd # 录入指纹 fprintd-enroll如果录入失败,说明你的指纹模块不在支持列表里,只能放弃。
6.2 中文输入法的配置
Ubuntu默认的IBus输入法对中文支持一般,我推荐换成Fcitx5加Rime或搜狗。安装步骤:
sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5 # 设置环境变量 echo 'export GTK_IM_MODULE=fcitx' >> ~/.profile echo 'export QT_IM_MODULE=fcitx' >> ~/.profile echo 'export XMODIFIERS=@im=fcitx' >> ~/.profile然后在“语言支持”里把输入法系统改成Fcitx5,重启后就能用了。Rime的词库和配置需要自己调,搜狗更省事但偶尔有兼容问题。
6.3 必备软件与系统优化
装完系统后我通常会装这些:Git、curl、wget、vim、htop、neofetch、build-essential、cmake、python3-pip、docker。如果是开发机,还要装对应的语言环境和IDE。系统优化方面,可以调整swappiness降低swap使用频率,开启TRIM延长SSD寿命:
# 降低swap使用倾向 echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf # 开启SSD TRIM sudo systemctl enable fstrim.timer另外建议装Timeshift做系统快照,万一折腾坏了可以快速回滚。这个工具在Ubuntu软件源里就有,配置好快照位置和计划任务,比重装系统省事得多。
7. 装机常见故障的排查链路
7.1 卡在“找不到启动设备”
这个问题的排查顺序是:先确认U盘制作是否正确(换台电脑试),再确认BIOS里U盘是否被识别(换USB口),然后确认引导模式是否匹配(UEFI对UEFI,Legacy对Legacy),最后确认Fast Boot和CSM设置。我遇到过最隐蔽的一次是U盘本身有隐藏分区,导致BIOS把隐藏分区当成引导分区,重新格式化U盘再制作就好了。
7.2 安装程序检测不到硬盘
九成是SATA Mode设成了RAID,改成AHCI即可。少数情况是NVMe硬盘需要更新BIOS固件,或者硬盘本身有问题。如果改AHCI后Windows进不去(因为Windows装在RAID模式下),需要先在Windows里改注册表启用AHCI,再改BIOS,具体方法搜“Windows切换AHCI”就有。
7.3 装完重启进GRUB命令行
这说明GRUB没找到系统分区。在GRUB命令行里手动引导:
grub> ls grub> ls (hd0,gpt2)/ grub> set root=(hd0,gpt2) grub> linux /boot/vmlinuz-xxx root=/dev/sda2 grub> initrd /boot/initrd.img-xxx grub> boot进去后执行sudo update-grub和sudo grub-install /dev/sda修复。如果反复出现,检查EFI分区是否挂载在/boot/efi,以及fstab里的UUID是否正确。
7.4 无线网卡和蓝牙不能用
先确认硬件是否被识别,用lspci -knn看网卡有没有加载驱动。没加载的话,查芯片型号,去Linux硬件兼容列表里找对应驱动。有些网卡需要从厂商官网下固件放到/lib/firmware,然后sudo modprobe -r再sudo modprobe重新加载。蓝牙问题通常是固件缺失,装linux-firmware包一般能解决。
8. 我这些年装机攒下的几条实在经验
第一条,装机前先备份数据。不管你是全新安装还是双系统,分区操作都有风险,硬盘上只要有你在乎的东西,先拷到移动硬盘或云盘。我见过太多人自信满满地手动分区,结果选错设备,整个硬盘被格式化。
第二条,别追求一步到位。很多人装系统时想一次性把所有驱动、软件、配置都搞定,结果遇到问题就卡住。我的做法是分阶段:先装系统能进桌面,再搞驱动和网络,最后配软件和环境。每阶段验证通过再往下走,出问题容易定位。
第三条,记录你的分区方案和配置。装完后把分区表、挂载点、驱动版本、关键配置记下来,下次重装或者帮别人装的时候直接参考,能省大量时间。我有个文本文件专门记这些,几年下来积累了几十台机器的配置,遇到相似硬件直接套用。
第四条,善用Live环境排查。Ubuntu安装U盘本身就是一个Live系统,可以先进去试用,确认硬件兼容性、网络、硬盘识别都正常再开始安装。如果Live环境里就有问题,装完大概率也有问题,提前发现能避免白装。
第五条,内核更新后如果出问题,用旧内核启动。GRUB菜单里选“Advanced options”可以进旧内核,进去后重新装驱动或者回滚内核。别急着重装系统,很多问题旧内核下就正常。
最后说一个我最近才注意到的细节:Ubuntu的安装程序在NVMe硬盘上创建分区时,有时会把EFI分区放在磁盘末尾而不是开头。大部分主板不介意,但少数老主板要求EFI分区必须在磁盘前部才能引导。如果你遇到装完进不去系统、但分区明明都正确的情况,检查一下EFI分区的位置,必要时手动调整到磁盘开头。这个坑很隐蔽,我折腾了一下午才找到原因。