1. 动手之前,先把分区这摊事想清楚
拿到“Linux 硬盘分区管理”这个题目,很多人第一反应就是敲个 fdisk /dev/sdb 进去分分钟搞定,其实真没那么简单。这东西往上关联系统安装、启动引导、数据安全,往下牵扯文件系统、挂载策略、扩容迁移,你哪怕只是给一台服务器加块数据盘,选错分区表类型或者没算好分区大小,后边都要加班还债。
我最早入行那会儿,给公司一台老服务器扩容,看着网上教程敲 fdisk,一路回车把分区建好,格式化完、挂载完,觉得挺顺利。结果重启以后分区直接丢了,查了半天才发现,用 fdisk 默认建的 DOS 分区表,碰到超过 2TB 的盘压根认不全。那次教训让我记住一件事:分区这件事,工具不是关键,关键是动手之前想清楚三个问题——盘多大、用在哪、怎么启动。
这篇文章就围绕这几件事来写。不管你是给虚拟机装 Linux 做实验,还是给实体服务器规划根分区和数据盘,或者单纯想搞懂 lsblk、fdisk、parted 这些命令到底怎么用,下面的内容都按“先懂原理、再上手操作、最后避坑”的顺序来讲。有基础的可以直接跳到实操那节对着敲命令,纯新手建议从头读,理解为什么这么做比记住命令本身重要得多。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 分区之前必须搞明白的基础概念
2.1 为什么 Linux 一定要分区
Windows 装系统会自动帮你建好几个隐藏分区,很多人根本没感觉。但 Linux 里分区是个很显眼的存在,你装系统时就会看到 /boot、/home、/var 这些挂载点概念。就算你一路默认让安装器自己分,系统底层也是按“块设备 → 分区 → 文件系统 → 挂载点”这么组织起来的。
为什么 Linux 不像 Windows 那样整个 C 盘一股脑用?核心原因是隔离。分区本质上是把一块物理硬盘划分成几个逻辑上独立的区域,每个区域可以单独格式化、单独挂载、单独设置权限。好处很直接:
- 故障隔离:
/home被用户塞满写爆了,不会拖垮根分区上的系统服务。 - 数据安全:重装系统只需要格式化根分区,
/data、/home上的数据原封不动。 - 性能与配额:不同分区可以选不同的文件系统和挂载参数,比如日志多的挂
xfs,小文件多的挂ext4配合特定参数。 - 多系统共存:Windows 和 Linux 装在同一块盘上的时候,必须靠分区隔离。
2.2 分区表类型:MBR 和 GPT 的区别
这块我必须用大白话讲透,因为它直接决定你能不能把盘用起来。
**MBR(Master Boot Record,主引导记录)**是上个世纪留下来的老标准。它把整块盘的引导信息存在磁盘的第一个扇区,里面除了引导代码,还放了一张分区表,一共只能记 4 条主分区记录。想多分怎么办?把其中一个主分区改成“扩展分区”,在扩展分区里再切逻辑分区,逻辑分区就可以分很多个了。但这套机制有两个硬伤:一是单分区最大只能支持到 2TB 左右(实际更保守),二是分区太多时扩展分区里的链式结构特别容易出问题。
**GPT(GUID Partition Table,全局唯一标识分区表)**是 UEFI 时代的替代方案。它不再依赖单个 512 字节扇区,而是把分区表信息在磁盘头尾各存一份,互相校验。分区数量理论上没有上限(操作系统一般限制 128 个),单分区能支持到 EB 级(1EB = 1024PB),对普通用户来说就是“基本不限”。
怎么选?记住一条简单的经验:
- 硬盘容量小于 2TB、又是老主板(BIOS + MBR 引导)——用 MBR 没毛病。
- 硬盘容量大于 2TB,或者主板是 UEFI——一定用 GPT。
- 拿不准的情况下,直接选 GPT 是更稳妥的默认项。
判断当前系统用的哪种分区表,命令是:
bash复制lsblk -o NAME,PARTLABEL,PARTTYPE,SIZE
或者更直接,用 blkid 看一下分区的 PTTYPE 字段:
bash复制blkid /dev/sda
输出里 PTTYPE="dos" 就是 MBR,PTTYPE="gpt" 就是 GPT。
2.3 文件系统和挂载点的关系
分区完成后,你还得在上面建文件系统,也就是常说的“格式化”。Linux 上最常见的几种:
| 文件系统 | 适合场景 | 特点 |
|---|---|---|
| ext4 | 通用场景,默认选择 | 老牌稳重,小文件性能好,支持在线扩容 |
| xfs | 大文件、大容量存储 | 性能高,宕机后恢复快,但不能在线缩容 |
| btrfs | 需要快照、压缩、校验 | 功能丰富,但某些操作在部分发行版上还不够成熟 |
| swap | 内存交换分区 | 格式化后作 |
