简介:这份PDF资料面向Ubuntu Linux初学者与运维人员,针对安装过程中最易出错的硬盘分区环节,系统讲解最合理的分区方案。内容先梳理IDE、SCSI、SATA三类硬盘在Linux中的命名规则,再说明主分区、扩展分区与逻辑分区的数量限制,并给出500G-1000G大硬盘与虚拟机小硬盘两套目录分配建议,涵盖根目录、swap、/boot、/tmp、/home等挂载点的大小与ext4格式选择,最后以Ubuntu 12.04.3为例图文演示手动分区流程。资源包为1个PDF文件,约234KB,篇幅精炼便于随时查阅。目前已有13430人学习下载,适合希望摆脱自动分区、按实际需求规划磁盘空间并规避数据丢失风险的读者参考。
1. 详解安装Ubuntu Linux系统时硬盘分区最合理的方法:从一块空盘到能长期用的布局
很多人装 Ubuntu 时最慌的一步不是下载镜像,也不是做启动盘,而是走到分区界面那一刻:整块盘怎么切、EFI 分区留多大、swap 到底要不要、根目录给多少才不后悔。默认的「清除整个磁盘并安装」确实能一把过,但它把所有空间塞进一个根分区,用久了/var涨满、快照撑爆、重装系统要备份全盘数据,这些坑迟早会找上门。这篇讲的就是在 Ubuntu 22.04 LTS 这类长期支持版本上,怎么按用途把一块盘切成 EFI、swap、根、home 甚至独立/data的合理布局,让新手照着分区表能直接填,熟手能看到每个挂载点的容量边界和取舍理由。下面所有容量建议都按单盘、UEFI 启动、家用或小型服务器场景给,虚拟机安装 Ubuntu 同样适用。
2. 分区前必须想清楚的几件事:BIOS/UEFI、分区表与挂载点
2.1 先确认启动方式和分区表类型
分区方案不是拍脑袋定的,它由两个前提决定:固件是 UEFI 还是传统 BIOS,以及磁盘用 GPT 还是 MBR。现在新机器和虚拟机基本都是 UEFI,对应 GPT 分区表,需要一个 FAT32 的 EFI 系统分区(ESP)。如果你在 VMware 虚拟机安装 Ubuntu,默认就是 UEFI,除非你手动在虚拟机设置里勾了旧版 BIOS。判断方法很简单,装之前进固件设置看一眼,或者用启动盘进 live 环境跑一条命令:
# 查看固件类型:输出 UEFI 或 BIOS [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS # 查看磁盘和分区表类型(gpt 或 dos) sudo parted -l逻辑说明:第一条靠/sys/firmware/efi目录是否存在判断固件,这是内核暴露的运行时信息,比看主板型号靠谱。第二条用parted -l打印每块盘的Partition Table字段,gpt就是 GPT,dos就是 MBR。参数上没什么可调的,注意别在目标盘上误操作就行。
结论:UEFI + GPT 是当前主流,下面所有方案都按这个来。只有老机器或特定嵌入式场景才用 BIOS + MBR,那种情况不需要 EFI 分区,但要留 1~2MB 的 bios_grub 分区给 GRUB 嵌入。
2.2 挂载点各自管什么,为什么值得拆开
Ubuntu 的目录树是单一根/,所谓分区就是把某个目录挂到独立分区上。常见挂载点和职责:
| 挂载点 | 作用 | 是否建议独立 |
|---|---|---|
/boot/efi | EFI 系统分区,放引导文件 | UEFI 必建 |
/ | 系统、程序、库 | 必建 |
swap | 交换空间,内存不足时兜底、休眠 | 建议建 |
/home | 用户数据和配置 | 强烈建议独立 |
/data | 自建数据盘,放数据库、容器卷 | 按需 |
拆分的核心价值是隔离故障域和简化重装。/home独立后,重装系统只格式化/,用户文件原封不动,这是最省心的后悔药。/var独立能防止日志或容器镜像把根分区撑爆,但家用场景收益有限,容易过度设计。/data是我在跑 Docker、MySQL 时最常加的,把数据卷单独放一块盘或一个分区,备份和扩容都清爽。
2.3 swap 到底给多大,别被「内存两倍」绑死
swap 用满但 available 还剩很多,是很多人free -h看到的迷惑现象,这跟 swap 大小无关,是页缓存统计口径问题,不用慌。真正要定的是 swap 容量。老规矩「内存的两倍」在内存动辄 16G、32G 的今天已经过时。我的经验值:
- 内存 ≤ 4G:swap 给 4G 或内存的 1.5 倍,保证能扛住峰值。
- 内存 8~16G:swap 给 4~8G,够日常和轻度休眠。
- 内存 ≥ 32G:swap 给 8G 甚至更少,主要留给休眠和极端兜底。
如果你要用休眠(hibernate),swap 必须不小于物理内存,否则唤醒会失败。服务器上如果内存充足且不做休眠,swap 给 2~4G 纯粹当保险丝即可。注意 swap 分区和 swap 文件二选一,分区性能略稳,文件更灵活,新手用分区更直观。
3. 三种典型场景的分区表:照着填就能装
3.1 场景一:单系统家用/开发机(整盘 Ubuntu)
这是最常见的场景,一块 256G 或 512G 的盘只装 Ubuntu。下面按 512G 给一套可直接抄的布局,256G 按比例缩。
| 挂载点 | 大小 | 类型 | 说明 |
|---|---|---|---|
/boot/efi | 512M | EFI 系统分区 | FAT32,UEFI 必需 |
swap | 8G | 交换空间 | 按内存调整 |
/ | 80G | ext4 | 系统和软件 |
/home | 剩余全部 | ext4 | 用户数据 |
在安装器的「其他选项」里手动分区,操作顺序是:选中空闲空间 → 新建分区 → 选大小和类型 → 选挂载点。EFI 分区如果盘上已有(比如预装 Windows),千万别再建一个,直接复用并确保它被标记为 EFI 系统分区,否则会出现两个 ESP 导致引导混乱。
/给 80G 是留了余量的,Ubuntu 本体加常用软件大概 20~30G,/var里的日志、/usr里的开发工具、Docker 镜像都会吃根分区,80G 能让你几年不用管。如果你重度用 Docker,把/var/lib/docker单独挂一个分区更稳,或者干脆把/给到 120G。
3.2 场景二:Windows + Ubuntu 双系统
双系统的关键是别动 Windows 的分区,只在空闲空间里切。先在 Windows 里用磁盘管理压缩出未分配空间,然后 Ubuntu 安装器里手动分区。分区表和单系统几乎一样,唯一区别是 EFI 分区复用 Windows 已经建好的那个(通常 100~300M),不要新建。
# 在 live 环境确认 Windows 的 EFI 分区位置,通常是 /dev/nvme0n1p1 sudo parted -l # 看文件系统类型,FAT32 且带 boot,esp 标志的就是 lsblk -f逻辑说明:lsblk -f会列出每个分区的文件系统和挂载点,vfat加boot标志的就是 ESP。参数上-f是显示文件系统信息,不加只显示设备树。确认后,在安装器里把这个分区挂到/boot/efi,但不要勾选格式化,否则 Windows 引导会被清掉,这是双系统翻车最常见的原因。
swap 和/home按场景一给。/建议给 60~100G。装完后 GRUB 会自动识别 Windows,开机菜单里能选。如果没识别到,进系统后跑sudo update-grub重新扫描。
3.3 场景三:小型服务器/虚拟机,数据与系统分离
服务器或长期跑的虚拟机,我一般把数据单独放。假设一块 160G 硬盘分区(热词里常搜的容量),布局如下:
| 挂载点 | 大小 | 类型 | 说明 |
|---|---|---|---|
/boot/efi | 512M | EFI | UEFI 启动 |
swap | 4G | swap | 内存充足时兜底 |
/ | 40G | ext4 | 系统 |
/var | 30G | ext4 | 日志、容器、缓存 |
/data | 剩余约 80G | ext4 | 业务数据 |
/var独立是为了防日志和容器镜像撑爆根分区,这在跑 Docker 的机器上很实用。/data放数据库文件、应用数据,备份时只备份这一块,重装系统不影响业务数据。虚拟机安装 Ubuntu 时,如果只是学习,用场景一就够;如果模拟服务器,用这套。
分区时注意/var和/data都要在安装器里手动指定挂载点,ext4 文件系统,不勾格式化(新盘无所谓,重装时千万别勾/data)。
4. 避坑与排查:分区阶段最容易翻车的五件事
4.1 现象:装完重启进不去系统,直接进 BIOS 或黑屏
原因:EFI 分区没建、建错位置,或者双系统下新建了第二个 ESP 导致引导冲突。UEFI 固件只认一个有效的 ESP,多个会让它迷惑。
解决:进 live 环境用sudo parted -l确认 ESP 存在且是 FAT32、带 esp 标志。双系统只保留 Windows 那个 ESP,Ubuntu 的引导文件也写进去。如果已经装乱,用启动盘进 live,挂载原系统 chroot 后重装 GRUB:
sudo mount /dev/nvme0n1p2 /mnt # 挂根分区 sudo mount /dev/nvme0n1p1 /mnt/boot/efi # 挂 ESP for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit逻辑说明:mount -B是绑定挂载,把 live 环境的设备、进程文件系统映射进 chroot,否则grub-install找不到设备。grub-install的参数是磁盘设备(/dev/nvme0n1),不是分区,写分区会报错。这套流程是引导修复的标准操作,值得记下来。
4.2 现象:根分区很快满了,df -h显示/使用率 90% 以上
原因:/var没独立,日志、Docker 镜像、apt 缓存全堆在根分区。或者/一开始就给太小。
解决:先定位大目录sudo du -sh /var/* | sort -h,清理 apt 缓存sudo apt clean,日志用journalctl --vacuum-size=200M压缩。长期方案是给/var/lib/docker单独挂盘,或重装时把/给大。已经装好的系统可以用 LVM 在线扩容,但前提是当初用了 LVM,这也是我建议服务器装系统时选 LVM 的原因。
4.3 现象:swap 用满但 available 还剩很多,以为内存泄漏
原因:这是统计口径问题。free里的 available 是内核估算的可用内存,包含可回收的页缓存,swap 被用不代表内存不够,可能是长时间没访问的页被换出。
解决:看vmstat 1的 si/so 列,如果持续非零才是真在换页。偶尔用满不用管。真要减少换出,调vm.swappiness:
# 临时调整,默认 60,服务器可降到 10 sudo sysctl vm.swappiness=10 # 永久生效 echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf逻辑说明:swappiness控制内核倾向换出匿名页的程度,值越低越不愿用 swap。参数范围 0~100,桌面 60 合理,服务器 10 左右能减少不必要的换出。别设 0,那会禁用 swap 直到内存耗尽。
4.4 现象:双系统装完 Windows 时间不对,或 GRUB 里没有 Windows
原因:Windows 用本地时间存硬件时钟,Ubuntu 默认用 UTC,两者打架。GRUB 没识别 Windows 通常是os-prober没开或没跑。
解决:让 Ubuntu 也用本地时间,或让 Windows 用 UTC,二选一。改 Ubuntu 更简单:
timedatectl set-local-rtc 1 --adjust-system-clockGRUB 识别 Windows:确认/etc/default/grub里GRUB_DISABLE_OS_PROBER=false,然后sudo update-grub。注意这条命令要在能进 Ubuntu 的前提下跑。
4.5 现象:手动分区时误删了数据分区
原因:安装器里对已有分区点「-」删除,或者把/home勾了格式化。这是不可逆的。
解决:分区界面每一步都慢一点,看清楚设备名和大小再操作。重装系统时,/home和/data绝对不要勾格式化,只指定挂载点。养成习惯:动手前用lsblk -f把每个分区的用途写在纸上,对照着填。真删错了,第一时间断电,用 testdisk 或 photorec 尝试恢复,但成功率看运气,预防永远比补救便宜。
5. 进阶:用 LVM 和分区校验把布局做成可演进的
分区最合理不是一次切死,而是留出演进空间。我现在的习惯是服务器和主力开发机都用 LVM:/、/var、/home都建在逻辑卷上,盘不够时加块盘vgextend再lvextend,在线扩容不用重装。安装器里选「LVM」或手动建卷组都行,代价是多一层抽象,但对长期维护的机器值。
装完系统后,用几条命令验证布局是否符合预期,别等出问题才发现:
# 看挂载点和容量 df -hT # 看块设备和文件系统 UUID lsblk -f # 看 swap 是否启用 swapon --show # 看 EFI 分区标志 sudo parted -l | grep -A1 'EFI'逻辑说明:df -hT的-T显示文件系统类型,确认 ext4 和 vfat 各就各位。lsblk -f的 UUID 在改/etc/fstab时要用,别用设备名,设备名会变。swapon --show确认 swap 真的挂上了,有时候分区建了但没启用。parted那条确认 ESP 标志没丢。
一个具体技巧:把/etc/fstab备份一份到/home或/data,改坏了能救回来。fstab 写错会导致系统进 emergency mode,那时候用 live 环境挂载根分区,把备份拷回去就行。我踩过一次 UUID 写错导致开不了机,从那以后每次改 fstab 都先cp /etc/fstab /etc/fstab.bak,这个习惯帮我省了不止一次重装。
分区这件事,我的教训是别追求一步到位的完美方案,先按场景把/、swap、/home三件套切对,跑起来观察几个月,看哪个目录涨得快再决定要不要拆。新手照着第 3 章的表填就能装出能长期用的系统,熟手把 LVM 和/data加上,扩容和备份都会轻松很多。希望帮到你。
本文还有配套的精品资源,点击获取