Ubuntu Linux硬盘分区实战指南:UEFI/GPT、swap与挂载点规划 简介这份PDF文档详解了安装Ubuntu Linux系统时硬盘分区最合理的方法面向对自动分区不放心、希望手动掌控分区过程的Linux初学者也适合需要规划服务器分区的运维人员。文档先普及IDE、SCSI、SATA硬盘在Linux中的命名规则再讲解主分区、扩展分区与逻辑分区的搭配原则并针对500G-1000G硬盘和虚拟机小硬盘两种典型场景给出根目录、swap、/boot、/tmp、/home等挂载点的容量建议与格式选择包括如何根据物理内存大小设置交换分区。随后以Ubuntu 12.04.3为例逐步演示在手动分区界面中创建启动分区、交换空间及其他挂载点的完整操作帮助读者理解每一步的目的。这份PDF共1个文件大小234KB内容凝练实用迄今已有13475人学习浏览适合在安装系统前阅读参考合理规划分区以提升系统稳定性并防范数据丢失风险。1. 装Ubuntu Linux系统时硬盘分区为什么值得先花半小时不少人来装Ubuntu Linux都是被系统装到一半卡在分区界面才意识到事情不对。之前对硬盘分区只有一个模糊概念随手选了「清除整个磁盘」或者「与Windows共存」安装确实顺利走完了但重启之后要么进不了系统要么根分区一个月就满了要么swap分配不当把固态硬盘的寿命搭进去。分区这件事本身占不了几分钟但它把整个安装流程的后果提前定死了。这篇笔记适合单硬盘、双系统、多硬盘三类场景把UEFI/GPT与Legacy/MBR的选型、EFI、swap、根分区、/home的容量分配、安装器里手动分区的操作顺序和踩坑点一次讲完。你如果只是打算在虚拟机里随便玩玩自动分区够用但只要涉及实体机、双系统、数据不丢分区方案就得自己说了算。2. UEFIGPT还是LegacyMBR先定启动方式再谈分区方案分区表不是孤立存在的概念它和主板的固件设置绑定在一起。2012年以后生产的主板基本都默认走UEFI启动配合GPT分区表老机器或者某些特殊场景比如深度的Legacy网刻、老显卡的Oprom才需要LegacyMBR。你打开Ubuntu安装器在「安装类型」页面看到的每一个磁盘上方会标出GPT还是MBR这个标记就是固件决定好的。如果不对齐安装器会自动切到兼容模式装出来的系统引导极不稳经常出现「安装能过、启动黑屏」的玄学问题。2.1 启动方式决定分区表一张表看懂UEFI和Legacy的差别启动方式分区表单盘容量上限分区数量引导存储位置适用场景UEFIGPT无实际限制最多128个分区ESP里的EFI文件现代主板默认推荐LegacyMBR2TB4个主分区磁盘头部的引导记录老机器、特定维护工具MBR的4个主分区限制在GPT下完全不存在所以你不需要再纠结「主分区够了没有」这类问题。2TB以上的磁盘用MBR会浪费大量空间这是最硬的理由。判断自己机器属于哪种两个办法重启进主板固件设置看Boot Mode是UEFI还是Legacy或者进Ubuntu试用模式后执行lsblk能看到分区表类型和是否已有EFI System Partition。一个很容易踩的误区Windows原本以MBRLegacy方式安装你加装Ubuntu时让安装器「清除整个磁盘并安装」安装器把整盘转成GPT结果Windows的OEM引导直接失效。反过来也一样。我的建议很直接如果是Windows和Ubuntu共存两边启动方式必须一致UEFI配GPTLegacy配MBR不要混。2.2 EFI系统分区、swap、根分区、/home各自的职责分区挂载点文件系统推荐大小职责EFI系统分区/boot/efiFAT32100512MB存放grub、efi引导文件UEFI固件在这里找启动项swap不挂载swap内存的0.51倍内存溢出兜底休眠时存放内存镜像根分区/ext460100GB系统、/var、snap包、容器镜像/home/homeext4剩余空间用户数据、配置文件EFI分区必须是FAT32安装器里不叫FAT32而叫「EFI系统分区」本质上是一样的。它的大小我给512MB留足grub多版本共存和内核更新空间100MB能用但不舒服装完双系统后grub更新几次就紧张。swap分区没有挂载点安装器里「用于」下拉选「交换空间」就行。根分区是系统真正的落脚点Ubuntu 24.04 LTS用snap分发大量应用/var/lib/snapd会吃掉不少空间我愿意给根分区多留而不是精确算到刚好。为什么UEFI时代不需要单独的/bootgrub的引导文件直接放在ESP里内核和initrd在根分区/boot目录下即可。除非你用LUKS全盘加密或LVM复杂卷组否则单独分/boot只会多一个空间耗尽的风险点。老教程里让/boot独立是MBR时代防止引导扇区写不下的旧办法现在可以不再照搬。2.3 分区表选错的信号安装能过、启动黑屏分区表选错的故障表现高度一致Ubuntu安装进度走完重启后提示「No bootable device」或者在UEFI启动菜单里根本看不到ubuntu这一项个别情况会直接掉进grub 黑屏命令行。很多人第一反应是「系统没装好」其实根因是启动方式和分区表错配。在动手前用一条命令确认现状能省掉一晚上的排查时间lsblk /dev/sda -o NAME,SIZE,TYPE,PARTTYPENAME,MOUNTPOINT sudo fdisk -l /dev/sda | head -20PARTTYPENAME这一列在GPT盘上会显示EFI System Partition、Linux filesystem这样的分区类型名而在MBR盘上这列基本是空的。fdisk输出里Disklabel type: gpt表示GPTdos表示MBR。对照着看清楚再决定安装器里要不要新建ESP。这个检查在安装前做一遍远比装完后再想办法修引导便宜。3. 三套可抄作业的Linux分区方案容量怎么分、swap给多大分区方案没有唯一标准答案但有可复用的模板。我给三套最常见的单系统全盘、Windows双系统、多硬盘部署。这三套都是我在不同配置的机器上反复验证过的直接照着参数填至少不会犯方向性错误。容量分配的核心逻辑就一句话根分区给足/home独立swap按需EFI固定。3.1 单系统方案要不要把/home独立出来结论先行强烈建议把/home独立成单独分区。独立之后重装系统不丢用户数据升级大版本时/home原封不动备份也可以只针对一个分区做。代价是空间切割变得死板根分区满了而/home还有闲的情况确实会出现但管理成本远低于数据全在根分区里的风险。以256GB固态硬盘整盘安装Ubuntu为例我的分配是这样EFI分区512MBFAT32挂载/boot/efi根分区60GBext4swap给8GB剩余约187GB全部分给/home。这个模子放大也成立512GB盘把根分区提到80GB1TB盘根分区给100GB剩下全给/home。根分区不要小气现在的snap应用、Docker镜像、系统日志全往/目录堆20GB的根分区一个月就见底。磁盘容量EFI分区根分区swap/home256GB SSD512MB60GB8GB剩余全部512GB SSD512MB80GB816GB剩余全部1TB SSD512MB100GB816GB剩余全部swap大小我按内存来定普通桌面内存8GB给8GB16GB给8到16GB。只有两种情况需要给到内存同尺寸一是你要用休眠suspend-to-disk二是你跑大型编译或虚拟机且内存经常打满。3.2 双系统方案复用Windows的EFI分区还是新建一个已经有Windows的机器加装Ubuntu最佳路径是复用Windows的EFI分区不要新建。UEFI固件开机时只会扫描盘上的ESP引导文件放在同一个ESP里Windows Boot Manager和ubuntu引导互不冲突grub会自动把Windows加进启动菜单两个系统一个菜单切换。实际操作里Windows 10/11的磁盘末尾常有一个500MB左右的恢复分区类型标记为Windows Recovery Environment。它长得像空闲空间但实际承载Windows的恢复工具不要删。正确的腾空间方式是Windows磁盘管理里对C盘右键「压缩卷」缩出几十GB未分配空间然后让Ubuntu安装器直接使用这段空闲区。如果是Ubuntu先装好了后来Windows没了引导用Boot-Repair工具修复时选择「推荐修复」即可它会自动把Windows Boot Manager加回grub菜单。还有一个Windows侧必做的动作关闭「快速启动」。这个选项会让Windows关机时实际上是休眠NTFS分区残留脏标记Ubuntu挂载时会提示无法挂载或只读。关闭位置在Windows设置里「电源选项-选择电源按钮的功能」取消勾选快速启动。没关也无大碍Ubuntu侧用sudo ntfsfix /dev/nvme0n1pX也能清掉脏标记但每次开机都来一遍不值得。3.3 多硬盘方案EFI放哪块盘、机械盘怎么挂多硬盘场景最容易犯的错是每块盘都建一个ESP最后UEFI启动菜单里出现两个ubuntu固件启动顺序一乱就找不到系统。我的原则是EFI只放在你想作为默认启动的那块盘上通常是SSD。机械盘负责数据不碰引导。硬盘分区规划说明256GB SSD/ 80GB、swap 8GB、/home剩余系统盘EFI放这里1TB HDD/data 全部媒体库、备份、容器数据机械盘如果只放数据在安装器里选中对应分区挂载点填/data或者/mnt/data。千万不要图方便把机械盘直接挂成/home——SSD的/home空间会闲置机械盘反而被频繁读写拖慢整个系统。swap放在SSD上随机读写性能比机械盘好一个数量级内存紧张时系统不会卡死。机械盘挂载点的自动挂载由Ubuntu安装器直接写进/etc/fstab装完即可用如果需要额外目录权限装完后用chown调整属主就行。多硬盘还有一种常见组合是SSD装系统、HHD放Windows和Ubuntu共享数据。数据区格式选NTFS或exFAT都能保证两个系统读写安装器里挂载点填/media/shared注意不要在fstab里加自动挂载前先测试。3.4 swap用分区还是swapfile24.04 LTS的默认与取舍Ubuntu从17.04开始默认用swapfile而不是swap分区24.04 LTS安装器生成的交换文件是/swap.img大小由安装器自动计算通常只有几个GB。如果只是内存不足时兜个底swapfile完全够用手动分区时不需要新建swap分区省一个步骤。但有两个场景你必须用swap分区。一是休眠系统挂起到磁盘时需要把内存镜像写入swap文件系统在休眠阶段尚未挂载swapfile没法保证可靠恢复swap分区则没有这个问题。二是容器或虚拟化宿主机swap分区可以放进LVM卷组做统一管理扩容不依赖根分区剩余空间。判断标准很简单你需要systemctl hibernate能稳定工作就建swap分区否则老老实实用默认swapfile少一个分区少一个坑。内存16GB的桌面机我的个人习惯是swap分区给8GB满足大多数负载同时避免swap过大抢走SSD寿命。笔记本用户要休眠就按内存大小给别省。服务器场景如果内存充足且全部是短任务直接不给swap也行OOM killer会比卡死的swap换页更快暴露问题这在大内存数据库机器上是常规操作。4. 用Ubuntu安装器手动分区从启动U盘到挂载点的完整操作方案再合理安装器界面里点错一个下拉菜单效果就是另一个故事。这一章把Something else手动分区模式的完整动作过一遍以Ubuntu 24.04 LTS安装器的布局为标准界面措辞在不同版本略有差异但套路稳定。4.1 动手前先看清我的磁盘lsblk与blkid两个命令插入启动U盘后选择「Try Ubuntu」进入试用桌面打开终端执行下面两条命令先认盘再动手lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT sudo blkid | grep -i EFI\|swap\|ext4lsblk输出里NAME列中nvme0n1p1表示NVMe固态的第一个分区sda1表示SATA盘的第一个分区TYPE区分整盘与分区FSTYPE显示已格式化的文件系统未格式化的空闲区为空MOUNTPOINT告诉你当前哪些分区已被live系统挂载。blkid打印所有分区的UUID和文件系统类型后面如果手动改fstab或者重装引导UUID都要从这拿。这一步的核心目的是确认目标盘符。安装器里的设备名和lsblk完全一致提前认准了后面在图形界面里就不会把Windows数据盘当成安装目标。我见过最贵的一次操作失误就是在分不清sda和sdb的情况下把整块数据盘格式化了那数据找不回来。4.2 Something else模式下的分区操作顺序与参数双击桌面上的「Install Ubuntu」语言、键盘布局、联网一路默认到「安装类型」页面选择Something else中文界面显示「其他选项」。接下来的顺序我建议固定不变先看空闲空间再依次建EFI、swap、根分区、/home。选中目标硬盘上的空闲空间点左下角号按下面的参数弹窗填写大小512MB 类型主分区Primary 用于EFI系统分区FAT32 挂载点/boot/efi再选中剩余空闲空间继续建swap大小按第3章方案填比如8192MB 类型主分区 用于交换空间swap 挂载点留空然后是根分区大小按方案比如60GB 类型主分区 用于ext4日志文件系统 挂载点/最后剩下的全部空间给/home格式ext4挂载点/home。参数说明用于这一列决定文件系统类型EFI必须选「EFI系统分区」而不是ext4否则UEFI固件根本找不到引导文件swap分区不要填挂载点安装器会自动识别为交换空间GPT分区表下「主分区」和「逻辑分区」的概念已经淡化安装器让你选类型时保持Primary默认即可不用纠结。如果这块盘之前装过Linux可能残留LUKS加密或LVM物理卷空闲空间看起来是空的但blkid能查到底层有东西先清掉再分避免安装器中途卡住。4.3 引导安装位置选整盘别选分区分区建完后页面底部有一行「安装启动引导器的设备」默认是你刚才选的那块整盘比如/dev/nvme0n1。这个默认值是对的保持整盘即可。但很多人手滑把它改成了/dev/nvme0n1p1这样的具体分区grub被写进分区而不是磁盘的引导记录重启后固件在整盘上找不到引导入口现象就是直接进Windows或报无效引导分区。UEFIGPT模式下grub的安装逻辑是把引导文件放进ESP目录设备指向整盘只是一个入口锚点并不会覆盖Windows Boot Manager。双系统复用Windows ESP时这里仍然选整盘grub-install会把ubuntu目录写进ESP两个系统各自保留入口。这个问题是最容易预防但最阴间的安装失误我见过好几个同事在上面翻车重装一次系统才解决。4.4 安装器分区界面的关键确认项点Install Now之前安装器会弹出一个确认框列出即将格式化的所有分区。这一屏的信息密度最高值得逐行核对设备名、分区大小、文件系统类型、挂载点。如果看到某个NTFS分区出现在列表里而你的方案里没有动Windows分区的计划立刻返回重查。典型的情景是之前Windows压缩卷时留下了一个未分配区安装器把相邻的Windows恢复分区也当成了空闲区一旦格式化恢复分区就没了。挂载点确认的原则也很简单/boot/efi、/、/home三个挂载点必须各自唯一swap出现在交换空间行且无挂载点。如果看到两个分区都挂在/下安装器会报重复挂载点错误。确认无误后再点继续安装器开始格式化并复制系统文件剩下的就是等待。5. Ubuntu分区避坑指南4个让安装翻车的经典问题完全按理论来实际操作里还是可能踩坑。下面四条是我在实际装机里反复见过的按「现象→原因→解决」的结构给出排查思路每一条都配有解决时的具体动作。5.1 引导装错盘重启后直接进了Windows现象Ubuntu安装进度走完重启后直接进入Windowsgrub菜单一次都没出现个别情况是开机黑屏停在grub命令行要手敲命令才能进系统。原因第一是安装器底部「安装启动引导器的设备」选了某个分区而不是整盘第二是这块盘的分区表是MBR但系统以UEFI方式安装引导代码写不进正确位置第三是双系统机器UEFI启动顺序里Windows Boot Manager排在ubuntu前面。解决最简单可靠的是重装时把引导设备改回整盘。不想重装就用Ubuntu启动U盘进Try模式挂载根分区到/mnt之后执行两条命令先sudo mount /dev/nvme0n1pX /mnt再sudo grub-install --boot-directory/mnt/boot /dev/nvme0n1最后sudo update-grub --boot-directory/mnt/boot。如果三个原因都排除过进主板固件设置把「ubuntu」启动项手动提到第一位。双系统想用Windows Boot Manager做默认也没问题Windows里用bcdedit添加grub入口即可。5.2 EFI分区没建对安装器反复报错现象安装器提示No EFI System Partition was created或者Failed to install GRUB有些版本会直接停在分区步骤不让继续。反复重试同样的分区参数报错原样返回。原因UEFI模式下安装器强制要求存在一个FAT32格式、挂载点是/boot/efi的ESP。手动分区时没有建ESP或者把EFI分区的用于选成了ext4安装器识别不到合法ESP就会拒绝往下走。另一个隐蔽原因是ESP大小不足100MB引导文件放不下。解决回到分区界面确认是否有一个FAT32分区挂载在/boot/efi。没有的话在空闲空间点新建大小512MB用于选「EFI系统分区」挂载点选/boot/efi。如果是Windows双系统直接复用Windows的ESP它在磁盘管理里显示为「EFI系统分区」或「System Reserved」不需要新建。装完系统后可以用efibootmgr -v确认ubuntu的引导条目状态。5.3 swap与swapfile冲突睡眠和休眠都不正常现象装完后free -h显示的swap大小和分区时设的不一致或者休眠到磁盘后唤醒失败系统直接回到冷启动systemd日志里出现swap相关的warning信息。原因安装器默认生成swapfile你在手动分区时又建了swap分区/etc/fstab里同时存在两条swap条目内核按顺序挂载两个交换设备优先级是乱的。休眠功能对swap设备编号敏感恢复时内核找不到当初写入的内存镜像就会放弃恢复。解决二者保留一个即可。我的做法是手动分区建了swap分区后把swapfile停用先删掉/swap.img编辑/etc/fstab删掉对应行然后执行sudo update-initramfs -u重建initramfs。反过来也一样只想用swapfile就不用建swap分区在安装器里直接跳过那一项。检查是否清理干净看swapon --show的输出应该只有一个设备。5.4 /home独立分区根目录却先满了现象/home里数据不多反而是根分区/先满了系统报No space left on device应用无法启动连登录界面都卡顿。原因根分区的空间被系统和应用大头吃掉snap安装的应用在/var/lib/snapdDocker镜像在/var/lib/docker日志和缓存也在/var下。这些路径和/home完全隔离/home再大也救不了根分区。我见过一台机器/home只用掉20GB/分区的60GB已经满了罪魁祸首是三个Docker镜像加两套Python环境。解决装系统时根分区给足是最省事的方案最低60GB经常跑容器和编译的话直接100GB。已经装好的情况用软链或bind mount把大目录搬到/home例如把Docker数据目录迁到/home/docker-data然后在/etc/fstab加一行/home/docker-data /var/lib/docker none bind 0 0挂载后重启。bind mount比软链稳定因为有些服务会重建软链指向的目录bind mount则不会。做完后df -h / /home两个分区的占用比例恢复到预期问题就解了。6. 装完怎么验证分区合不合理检查命令与一个后悔药技巧6.1 三个命令验证分区健康度装完进入系统后我用三个命令确认分区没有埋雷df -hT / /home /boot/efi lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT swapon --showdf -hT看文件系统类型和使用率根分区刚装完占用应该在10%到20%之间如果已经超过30%说明根分区的容量方案没留余量/boot/efi占用通常只有几十MB正常/home则应该是空白状态。lsblk的输出能快速核实FSTYPE列里EFI是vfat、/和/home是ext4、没有出现预期外的分区。swapon --show确认swap设备只有一个对应你分区或swapfile的选择。这三条命令跑一遍分区方案基本就验完了。6.2 空间不合理的补救在线扩容与重分区的边界装完发现空间分配不合理不要急着重装。普通ext4分区用GParted Live启动U盘可以无损调整大小和位置先缩小根分区把腾出来的空闲空间扩充到/home分区操作流程是GParted里右键分区选Resize/Move填入新大小后应用。注意调整分区涉及数据移动操作前务必备份重要数据过程中断电可能损坏整个分区。但如果你的目标盘是LVM卷组情况简单很多用lvreduce和lvextend配合resize2fs在线就能扩缩不需要重启进GParted。这也是很多生产环境坚持用LVM的理由——后悔药比传统分区好吃得多。我自己的习惯是装完系统后立刻把/etc/fstab内容备份到U盘系统引导出问题时这份文件就是第一排查依据。这套分区流程我重复装过几十次最难的技术动作不是敲命令而是在安装器友好界面的诱惑下坚持手动控制权。分区表、挂载点、引导位置这三点盯住Ubuntu的安装就成功了大半。希望帮到你。本文还有配套的精品资源点击获取