简介:对于需要在Ubuntu系统安装过程中合理规划硬盘分区的初学者与运维人员,这份PDF文档系统梳理了最合理的分区策略。内容涵盖IDE、SCSI、SATA硬盘在Linux中的命名规则,并给出“三个主分区加一个扩展分区”的经典方案,既能有效利用有限的主分区数量,也为逻辑分区保留弹性;针对五百GB到一千GB常用硬盘,详细推荐了根目录、交换分区、引导分区、临时目录与用户目录等挂载点的容量和格式,同时给出虚拟机低配环境下的替代分配建议。文档以Ubuntu 12.04.3为例,图文讲解手动分区完整操作,从创建引导分区、交换空间到最终挂载点布局逐步演示,并特别提示数据备份和按实际需求调整分区大小等注意事项。资源共1个PDF文件,大小234KB,已有13525人学习下载,适合作为安装Linux服务器或日常维护时的分区速查手册。
1. 装 Ubuntu Linux 系统,为什么“自动分区”是新手最大的坑
装 Ubuntu Linux 系统,真正让新手卡住的往往不是镜像下载,也不是软件源配置,而是安装过程中的硬盘分区。网上大量 Ubuntu linux分区教程默认走“清除整个硬盘并安装 Ubuntu”的自动分区,装完才发现 /home 小得可怜、swap 大得离谱,想调整只能重来一次。手动分区其实没那么玄学:先搞清 IDE、SCSI、SATA 的硬盘命名规则,再理解主分区、扩展分区、逻辑分区的关系,随后按 500G-1000G 与 100G 以下两套容量方案分配挂载点,最后在安装向导里点几下就能完成。这条路线我按实际装机的顺序写,参数含义和踩坑点一次说清,适合准备装 Ubuntu 的初学者,也适合想重分区、维护 linux 服务器的老手参考。
2. 分区前的选型课:硬盘命名、主分区与逻辑分区的边界规则
2.1 从 hd 到 sd:硬盘类型与命名规则决定你认盘的能力
Linux 不叫 C 盘 D 盘,它按接口类型给硬盘命名。IDE 接口的硬盘叫 hd,SCSI 和 SATA 接口的硬盘叫 sd。IDE 硬盘已经基本淘汰,现在市面上最常见的是 SATA 接口,所以绝大多数机器上看到的是 sda、sdb 这类名字。第一块硬盘是 sda,第二块是 sdb,依此类推;盘内分区编号从 1 开始,sda1、sda2 就是第一块硬盘上的第一个、第二个分区。
这个命名规则在手动分区时是第一道关卡。如果机器里插了两块硬盘,分区界面会同时出现 sda 和 sdb,认错目标盘就会把另一块盘上的数据清掉。我一般会在安装前用 live 系统或固件界面确认目标盘的型号和容量,对照分区间界面里的磁盘容量来判断哪一块是 sda、哪一块是 sdb。容量信息比盘符可靠,因为盘符可能因 BIOS 识别顺序变化而调整,容量几乎不会认错。
虚拟机环境稍有不同,很多虚拟磁盘走 virtio 驱动,显示为 vda、vdb;NVMe 固态硬盘则显示为 nvme0n1、nvme1n1。规则是一样的:先字母后数字,字母代表物理盘,数字代表盘内分区。认盘是所有分区操作的第一步,这一步错了后面全错。
进系统后可以用 lsblk 复核盘符和容量,命令如下:
lsblk -o NAME,SIZE,MODEL,MOUNTPOINT参数说明:-o 指定输出列,NAME 是设备名,SIZE 是容量,MODEL 显示磁盘型号,MOUNTPOINT 显示当前挂载点。这条命令在 live 环境和装完的系统里都能用,是认盘最直接的工具。
2.2 主分区、扩展分区、逻辑分区:为什么“3 个主分区 + 1 个扩展分区”是默认最优解
一块硬盘最多只能有 4 个主分区。4 个主分区用满,这块盘就不能再增加分区了,而实际使用中 4 个分区往往不够,尤其要给 /home、/tmp、swap 分开建分区的时候。于是有了扩展分区这个设计:在 4 个主分区的名额里,拿 1 个名额作为扩展分区,然后在扩展分区内部建立逻辑分区。逻辑分区不受 4 个数量限制,Linux 中每块硬盘总共最多有 16 个分区,其中 sda1 到 sda4 是主分区(或扩展分区),逻辑分区从 sda5 开始编号,一直到 sda16。
所以最合理的分区策略是:最多分 3 个主分区,留 1 个扩展分区,在扩展分区里建逻辑分区。这样既能有效利用有限的主分区名额,又能让逻辑分区数量充足。具体到 Ubuntu 安装场景,我的习惯是 /boot 建主分区、根分区 / 建主分区,其余 swap、/tmp、/home 全部放进扩展分区里的逻辑分区。
多系统场景要更精打细算。Windows 需要一个主分区作为激活分区来引导,所以常见搭配是:Windows 主分区、Ubuntu 的 /boot 主分区、Ubuntu 的 / 主分区,剩下一个主分区名额留给扩展分区。这也是“3 主 + 1 扩展”在双系统场景下依然成立的原因。
这里补充一个容量方案之外的差异点:老式 BIOS 引导配 MBR 分区表时有严格的 4 主分区限制;UEFI 引导配 GPT 分区表则没有这个限制,可以建更多主分区。本文第 5 章会专门讲这个坑。
2.3 手动分区 vs 自动分区:什么时候必须放弃“清除整个硬盘并安装 Ubuntu”
Ubuntu 安装向导在“安装类型”这一步给出两条典型路径:“清除整个硬盘并安装 Ubuntu”和“其它”。前者本质是自动分区,安装程序按它自己的策略格式化整块盘,然后自动分配挂载点和 swap 大小,整个过程不需要用户干预。
自动分区适合第一次体验系统的场景,缺点是装完你基本控制不了 /home 与根目录的比例。常见结果是根目录占了 300G,/home 只有 100G,个人文件多的话很快就不够用。手动分区则完全可控:每个挂载点多大、swap 给多少、格式化成什么文件系统,全部由你决定。
什么时候建议走手动分区?三类场景很典型:
- 电脑里已有 Windows 或其他系统,需要双系统共存,保留原有分区不被清除;
- 数据盘上有照片、项目文件,不能整盘格式化,需要单独挂载另一块盘或划出数据分区;
- 机器是 linux 服务器,日志、网站目录、数据库文件需要独立分区,避免日志把根目录写满。
手动分区不是更高级,只是更可控。代价是要对自己做过的选择负责——分区大小、挂载点、格式,每一项都会写进磁盘。这也是为什么接下来要把分区参数讲细,再看第 4 章的实操步骤。
3. 两种硬盘容量方案怎么选:500G-1000G 与 100G 以下的分区参数
3.1 500G-1000G 硬盘:根目录、swap、/boot、/tmp、/home 的推荐值
容量充足时,分区的主要矛盾不再是省空间,而是让每个目录都有合理独立空间,避免相互挤占。下面这套分配方式是我在 500G-1000G 机器上常年使用的方案:
| 挂载点 | 建议大小 | 文件系统 | 作用 |
|---|---|---|---|
| / | 150G-200G | ext4 | 根目录,放系统文件与大部分软件 |
| swap | 物理内存的 2 倍 | swap | 交换空间,内存不足时的兜底 |
| /boot | 1G 左右 | ext4 | 内核 vmlinuz、initrd.img、GRUB 引导文件 |
| /tmp | 5G 左右 | ext4 | 系统临时文件,重启后一般清空 |
| /home | 剩余全部 | ext4 | 用户工作目录、个人配置、账号文件 |
根目录给 150G-200G 是有道理的:系统文件、应用软件、依赖库和缓存默认都装到 / 下面,普通桌面场景 150G 够用;如果常跑容器镜像、大型 IDE 或游戏,直接给 200G,省得后续为根目录空间发愁。
swap 列在表格里是“物理内存的 2 倍”,但这个数字只适合小内存机器,8G 以上内存的大机器就别照搬了,具体规则在 3.3 展开。格式那栏要特别说明:swap 不是 ext4,它没有挂载点,文件系统类型直接显示为“swap”或“交换空间”。
/boot 给 1G 是一个性价比很高的值。它能容纳多个内核版本,内核升级时不会因为空间不足报错,也留出了 grub 恢复操作的余地。很多老教程写 400MB 够用,那是多年以前的事,现在的内核和 initrd 体积越来越大,按 1G 分不会错。
/tmp 给 5G,编译源代码、解压大文件、浏览器下载临时文件都够用。如果拿这台机器做持续集成或大数据处理,建议再加到 10G。/home 把剩余空间全部给掉,这是用户数据的家,单独分区最大的意义就是重装系统不丢数据。
3.2 虚拟机与旧电脑:100G 以下怎么压
没有独立机器、只能在自己电脑上装虚拟机跑 Ubuntu 的读者,硬盘一般不超过 100G,内存也只有 2-4G。照搬上面的方案会显得拥挤,参考这套压缩版配置:
| 挂载点 | 建议大小 | 文件系统 | 作用 |
|---|---|---|---|
| / | 10G-20G | ext4 | 根目录,系统与基础软件 |
| swap | 不超过 2048M | swap | 交换空间 |
| /boot | 200M 左右 | ext4 | 内核与引导文件 |
| /tmp | 5G 左右 | ext4 | 临时文件 |
| /home | 剩余全部 | ext4 | 用户数据 |
根目录 10G-20G 能跑桌面和日常软件,前提是 /home、/tmp、swap 都已经独立出去,不会反过来挤占根目录。虚拟机的 swap 控制在 2048M 以内,配合 2-4G 物理内存足够;内存不够时 Ubuntu 会频繁交换,但这是容量受限场景下取舍的结果,不会比没有 swap 更差。
对比两套方案,共同点是 /home 都拿剩余空间、swap 都跟内存挂钩、/boot 都单独分;差别只在根目录和 swap 的绝对值。所以选哪套,先问自己两块问题:这块磁盘多大?物理内存多大?答案基本就定了。
3.3 swap 大小到底怎么定:别盲信“两倍内存”
网上很多教程一句“swap 等于物理内存两倍”带过,这句话只适用于小内存机器。我的判断规则分四档:
- 物理内存 512MB 及以下:swap 给内存的 2 倍,这时交换分区几乎是必需品;
- 物理内存大于 512MB、低于 4G:swap 给等于物理内存的量,兼顾稳定性;
- 物理内存 8G-16G:swap 要么等于物理内存,要么物理内存加 2G,我一般直接给等于内存大小,简单好记;
- 内存 16G 以上且不做休眠:swap 给 4G-8G 兜底,甚至不建 swap。
还有一个容易被忽略的点:如果需要支持休眠(suspend-to-disk),swap 必须大于或等于物理内存,否则休眠镜像写不进去。服务器场景也一样,swap 不是用来跑业务的,而是内存写满时给进程一个缓冲,避免直接被系统的 OOM killer 杀掉。所以 swap 宁可小一点,不能没有;但对大内存机器,真没必要给到内存两倍那么夸张。
4. 手动分区实操:从安装向导到分完 /boot、swap、/home 的完整步骤
4.1 进入手动分区界面:选“其它”而不是“清除整个硬盘”
Ubuntu 12.04.3 的安装向导走到“安装类型”这一步时,界面里有两个主要选项。最简单的莫过于“清除整个硬盘并安装 Ubuntu”,单击“继续”,安装向导会根据原有分区信息自动选择合理分区方式;想对分区过程完全控制,选择“其它”,单击“继续”后会进入手动分区界面。
手动分区界面会列出当前机器的所有磁盘和已有分区,比如 sda、sdb 各自的分区布局、文件系统类型、挂载点。第一次进来看到的是类似下面的结构:一块没有使用过的硬盘,显示为整块空闲空间。如果用虚拟机做演示,通常只看到一块 20G 的虚拟磁盘;实体机可能同时出现多块硬盘,这时先用第 2 章的认盘规则确认目标盘。
进入手动分区界面的操作顺序:
- 在“安装类型”界面选中“其它”,点击“继续”。
- 在分区列表里找到目标磁盘,确认容量和盘符。
- 选中磁盘的空闲空间,点击“添加”,开始创建第一个分区。
4.2 按顺序创建分区:/boot、swap、/、/tmp、/home 逐个建
以下演示基于一块 20G 虚拟硬盘,对应第 3.2 节的压缩方案;实体机操作思路一致,把容量替换成第 3.1 节的值即可。
第一步,创建 /boot 启动分区。选中空闲空间,点击“添加”,弹出“创建新分区”对话框。分区类型选“主分区”,新建分区容量填 128MB,挂载点选 /boot,最后点击“确定”。这一步在虚拟演示里给 128MB,实体机建议按第 3 章直接给到 1G。挂载点 /boot 包含操作系统的内核和启动系统过程中要用到的文件,vmlinuz、initrd.img、GRUB 引导管理器都在这。
第二步,创建交换分区。再次选中剩余的空闲空间,点击“添加”,分区类型选“逻辑分区”,“用于”选择“交换空间”,新建分区容量填 1024M。交换分区没有挂载点,不需要选。注意:选择“逻辑分区”时,分区工具会自动把剩余空间规划为扩展分区来容纳它,这是 MBR 分区的正常行为,不用手动单独创建扩展分区。
第三步,创建根分区 /。选中剩余空闲空间,点击“添加”,容量填 10G(实体机 150G-200G),文件系统保持 ext4,挂载点选 /。根目录是系统的核心,所有不属于独立挂载点的文件都会落到这里。
第四步,创建 /tmp 分区。容量填 5G,挂载点 /tmp,文件系统 ext4。如果这台机器要做服务器,可以同时给 /var 单独建一个分区,比如 10G,用来放日志和缓存;桌面机不一定要分。
第五步,创建 /home 分区。选中剩余全部空闲空间,点击“添加”,容量默认就是剩余大小,挂载点选 /home,文件系统 ext4。/home 放用户的工作目录、个人配置文件,所有账号都会在这里分配一个工作目录。把剩余空间全部给它,后续不用再为个人数据不够发愁。
分区创建顺序有个讲究:先把系统引导相关的 /boot 固定下来,再定 swap,然后分根目录,最后把大头空间一次性留给 /home。/home 放最后是为了用掉剩余空间;反过来先分 /home 会导致后面的分区不好规划,还可能出现零碎空闲空间浪费。
4.3 分区完成后:安装前再核对三件事
所有分区建完后,回到手动分区界面,分区表里应当列出 /boot、swap、/、/tmp、/home 五个条目。点击“现在安装”之前,花一分钟核对以下三件事:
- 目标盘没有搞错:确认分区列表里的磁盘容量和型号与要安装的机器一致;
- /boot 与 swap 都存在:缺 /boot 会导致引导文件没有独立空间,缺 swap 会导致内存峰值时系统卡死;
- “安装启动引导器的设备”指向目标盘:默认通常是 /dev/sda,多硬盘环境尤其要检查,防止引导器装到另一块盘。
提示:手动分区阶段的所有操作都还没有真正写入磁盘,只有点击“现在安装”才会生效。在这个界面之前,误删、误改都可以点“返回”撤销重来;点击“现在安装”后安装程序会弹出将要执行的磁盘操作列表,逐条读一遍再确认。
5. Ubuntu 分区避坑:5 条实测踩坑记录与排查方法
5.1 /boot 分得太小,内核升级直接翻车
现象:当年装机 /boot 分了 100M,之后每次系统更新都小心翼翼,终于在某次 apt upgrade 时提示“磁盘空间不足”,新内核下载完解压失败,系统停在旧内核上。
原因:/boot 目录存放 vmlinuz、initrd.img 以及 GRUB 引导文件,每个内核版本要占几十到上百 MB,多个版本内核共存时空间迅速耗尽。Ubuntu 默认保留上一版内核用于回退,两三个版本叠加就把小分区撑爆了。
解决:新装机把 /boot 分到 1G(500G+ 方案),压缩方案至少给 200M。已踩坑的机器可以手动清理旧内核,常见做法是apt autoremove --purge精确移除指定版本,或者查看 /boot 下文件再确认删除。从那以后我装系统 /boot 一律不低于 1G。
5.2 swap 按“两倍内存”盲目分配,SSD 空间白费
现象:16G 内存的笔记本按教程分了 32G swap,装完发现 SSD 空间被吃掉一大块,而 swap 长期处于使用率 0。
原因:内存容量足够大时,Linux 几乎不会把进程换出到交换分区。swap 大小直接等于磁盘空间成本,在 SSD 上还涉及写入寿命问题,盲目给两倍并不划算。
解决:按 3.3 的判断规则来,8G-16G 内存给内存等量或加 2G 足够。用swapon --show能实时查 swap 利用率,大多数桌面机器长期为 0 是正常的,不代表 swap 没起作用。空间紧张的场景可以直接不用分区,改用 swap 文件,第 6 章会讲。
5.3 /home 不分,重装系统没有后悔药
现象:系统越用越慢,打算重装 Ubuntu,结果发现 /home 没有单独分区,个人文件、项目、浏览器配置全部跟着根目录一起被格式化。
原因:所有个人数据默认放在 /home 下。如果 /home 只是根目录里的普通目录,重装时格式化 / 就等于删掉所有数据,没有任何后悔药。
解决:安装时把 /home 单独分出去。重装时在手动分区界面把新系统的根分区指向原 / 分区,/home 挂载点指向原 /home 分区且不勾选“格式化”,数据就能完整保留。这个血泪经验对双系统共存同样适用。
5.4 分区表类型踩坑:MBR 与 GPT 的选择,老教程没讲的部分
现象:照老教程按 MBR 的 4 主分区限制规划,装完在 UEFI 启动的新机器上无法引导,开机直接进固件设置界面,找不到启动项。
原因:UEFI 固件搭配 GPT 分区表是当前主流,GPT 没有 4 主分区限制,且需要单独的 EFI 系统分区存放引导文件。老教程基于传统 BIOS 和 MBR,思路不适用于新机器。
解决:安装前先确认机器的启动模式。BIOS/MBR 场景按第 2 章的 3 主分区 + 1 扩展分区思路走;UEFI 场景直接用 GPT,让安装向导自动创建 ESP 分区,手动分区时保留一个 512MB 到 1G 的 EFI 系统分区即可。同一块盘不要混用 MBR 和 GPT,切换分区表格式需要清空整块磁盘。
注意:第 2 章讲的 4 主分区限制是 MBR 下的规则,如果你在 UEFI+GPT 环境下看到分区工具允许创建几十个主分区,不用惊讶,这是分区表机制变化的正常结果。
5.5 /tmp 或 /var 分得太小,日志一多就爆
现象:/tmp 分 2G,编译大型软件或下载临时文件时直接报“No space left on device”;服务器上 /var 分 5G,几个月后日志和软件包缓存把分区写满,服务异常退出。
原因:/tmp 是所有用户进程默认的临时写入位置;/var 保存系统日志(/var/log)、包缓存(/var/cache)、邮件队列等,这些文件不清理会持续增长,是分区容量问题的高发区。
解决:桌面机 /tmp 给 5G 左右足够;服务器把 /var 独立出来,按日志保留策略留 10G-20G,并配置 logrotate 做日志轮转。已爆盘时先执行journalctl --vacuum-size=200M压缩系统日志,再用du -sh /var/log/*找出占用大头,最后重启相关服务释放文件句柄。
6. 分区完成后的收尾:用命令核对分区布局、调整 swap 与维护习惯
6.1 装完先用三条命令核对分区布局
安装完成进入系统后,不要急着装软件,先花两分钟确认分区真的按规划写入了:
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT df -h swapon --show参数说明:lsblk -o 按列输出块设备的名称、大小、类型和挂载点,一眼看清 sda1、sda2、sda5 等分区的最终布局;df -h 检查文件系统使用率和挂载情况;swapon --show 确认 swap 分区是否启用以及当前使用量。对照装机规划检查 /、/boot、/tmp、/home 的挂载点和容量,发现分区没挂上或挂载点不对,查看 /etc/fstab:
cat /etc/fstabfstab 每行对应一个挂载项,格式是“设备 UUID、挂载点、文件系统、挂载参数、dump、fsck”。发现 UUID 不对或挂载点写错,编辑后运行mount -a验证即可。
6.2 swap 的后期调整:从分区到 swap 文件
分区时 swap 大小犹豫了,装完才发现给多或给少,不用重装系统。Swap 可以后期扩大、缩小,或者直接用 swap 文件替代分区。我个人更推荐在分区时把 swap 定准,后期真有变化就用 swap 文件方案,不动分区表就不会碰 MBR/GPT 的边界问题。
创建交换文件的常见做法:
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile这四条命令的含义:fallocate 预分配一个 4G 大小的文件,chmod 600 保证只有 root 能读写(swap 文件权限不对会导致启动警告),mkswap 把文件格式化为交换文件,swapon 启用。想让开机自动生效,在 /etc/fstab 末尾追加一行/swapfile swap swap defaults 0 0。swap 文件的大小随时可以改,不用动分区表,是后期调整最省事的方案。
以前我在一台机器上吃过 swap 给太大的亏,从那以后每次装完 Ubuntu 都强制走一遍 lsblk、df -h、swapon --show 三板斧,确认分区布局与规划一致才继续配置环境。这个习惯帮我挡掉过好几回挂载点写错的低级问题,希望也能帮到你。装完系统先别急着删安装镜像,重启后第一次进系统验证完分区再清理不迟。
本文还有配套的精品资源,点击获取