linux 分区方法主要分为交互式 fdisk 命令 parted 命令,还有图形化分区工具,同时要区分 MBR 分区表和 GPT 分区表两种类型,MBR 最大支持单块磁盘 2TB,最多四个主分区,GPT 支持超大容量磁盘,分区数量没有限制,现代大容量硬盘基本都选用 GPT 格式。linux 系统所有存储都需要先完成分区,之后创建文件系统,再挂载到目录,磁盘空间才可以正常使用,内核本身不能直接识别未分区的整块裸盘,必须通过分区表记录分区边界,操作系统才能读写对应区域。很多新手新增硬盘之后只执行格式化,忘记分区步骤,或者混淆分区创建格式化挂载三个独立环节,导致磁盘无法正常使用。学习 linux 分区方法,要掌握磁盘识别命令,分区表选型,fdisk 和 parted 完整操作流程,理解主分区扩展分区逻辑分区的概念,还要知道分区之后持久化挂载的配置方式,了解分区操作风险,分区属于底层磁盘操作,误操作会清空磁盘数据,下面分模块深度讲解。
一 分区前准备工作
在执行 linux 分区方法之前,首先要识别新增加的磁盘,确认磁盘设备名称,避免选错磁盘把原有系统盘分区破坏。
| 命令 | 作用 |
|---|---|
| lsblk | 树形查看块设备,识别磁盘和已有分区 |
| fdisk l | 列出全部磁盘分区表信息 |
| blkid | 查看磁盘分区 UUID 和文件系统类型 |
实操步骤,第一步执行 lsblk,识别新盘设备名,一般是 sdb sdc 这类名称,系统盘一般是 sda,第二步确认磁盘没有被挂载,执行 mount 查看挂载状态,如果已经挂载需要先卸载,第三步确认磁盘里面没有重要数据,分区操作会改写磁盘分区表,原有分区数据会失效。
二 MBR 分区方式 fdisk 命令
fdisk 是最经典的 linux 分区方法,支持 MBR 分区表,适合 2TB 以内硬盘,交互式操作,命令简单,绝大多数发行版默认自带。
| 操作按键 | 功能 |
|---|---|
| n | 新建分区 |
| p | 打印查看分区表 |
| d | 删除分区 |
| t | 修改分区类型 |
| w | 写入分区表保存退出 |
| q | 不保存退出 |
实操步骤,第一步输入 fdisk 磁盘设备名,例如 fdisk /dev/sdb,第二步进入交互界面,输入 n 新建分区,第三步选择主分区 p,输入分区编号,第四步指定起始扇区,一般直接回车使用默认值,第五步指定分区大小,例如 + 10G 代表创建 10G 分区,第六步输入 p 确认分区信息,第七步输入 w 写入分区表保存。
深度说明,MBR 结构里面最多四个主分区,如果需要超过四个分区,就要创建一个扩展分区,在扩展分区里面继续创建逻辑分区,扩展分区本身不能存储数据,只是承载逻辑分区的容器。分区完成之后,还需要 mkfs 命令创建文件系统,比如 mkfs.ext4 /dev/sdb1,之后才能挂载使用。
三 GPT 分区方式 parted 命令
当磁盘大于 2TB,MBR 就无法识别全部容量,这个时候就要使用 parted 这种 linux 分区方法,采用 GPT 分区表,支持单盘超过 18EB,分区数量上限很高,是现在大容量硬盘首选方案。
| 命令参数 | 作用 |
|---|---|
| mklabel gpt | 把磁盘转换为 GPT 分区表 |
| mkpart | 创建分区 |
| 打印分区信息 | |
| rm | 删除分区 |
| quit | 退出 parted |
实操步骤,第一步输入 parted /dev/sdb,第二步执行 mklabel gpt,确认警告,会清空原有分区表,第三步执行 mkpart,设置分区名称,文件系统类型,起始位置结束位置,例如 mkpart data ext4 0% 50%,代表使用磁盘前一半空间,第四步输入 print 确认分区,第五步 quit 退出,之后执行 mkfs 创建文件系统。
深度说明,parted 支持非交互式脚本模式,可以在自动化脚本里面批量分区,这是它相比 fdisk 很大优势,同时注意,转换分区表类型 mklabel 会清除磁盘原有全部分区,操作前务必备份数据。
四 分区后续格式化与挂载
完成 linux 分区方法创建分区之后,分区还不能直接读写,必须创建文件系统,也就是格式化,再挂载到目录。
| 命令 | 作用 |
|---|---|
| mkfs.ext4 | 创建 ext4 文件系统 |
| mkfs.xfs | 创建 xfs 文件系统 |
| mount | 临时挂载分区 |
| umount | 卸载分区 |
临时挂载,创建挂载目录 mkdir /data,然后 mount /dev/sdb1 /data,重启之后挂载会失效。如果需要开机自动挂载,需要编辑 /etc/fstab 文件,填写设备标识,推荐使用 UUID,挂载点,文件系统类型,挂载参数,备份标记,检查顺序,配置完成执行 mount a 测试 fstab 是否正确,fstab 配置错误会导致系统开机失败。
五 两种分区表对比
| 对比项 | MBR fdisk | GPT parted |
|---|---|---|
| 最大磁盘容量 | 2TB | 极大,支持超大硬盘 |
| 分区数量 | 最多 4 主分区,可加逻辑分区 | 无主分区限制 |
| 兼容性 | 老系统兼容性好 | 新系统支持,老主板可能不支持 UEFI 启动 |
| 适用场景 | 小容量磁盘 | 大于 2TB 硬盘,UEFI 系统 |
六 分区操作风险与注意事项
1 分区操作改写分区表,原有分区数据会丢失,重要磁盘必须提前备份
2 不要对正在使用的系统盘随意重建分区,容易造成系统无法启动
3 分区完成之后如果系统识别不到新分区,可以执行 partprobe 刷新内核分区表
4 区分分区和 LVM,LVM 是逻辑卷管理,属于在分区之上的动态卷方案,不是传统物理分区,适合需要弹性扩容的场景
5 UEFI 启动的系统,系统盘一般必须是 GPT 分区表,传统 BIOS 启动可以使用 MBR
【常见问题】
问题 1 linux 分区方法里面 fdisk 为什么无法识别 2T 以上硬盘全部空间
回答 1 linux 分区方法使用 fdisk 的时候,fdisk 原生只支持 MBR 分区表,MBR 本身上限就是 2TB,超过 2TB 的部分无法识别,这种场景需要更换 parted 工具,使用 GPT 分区表的 linux 分区方法,才能识别磁盘全部容量。
问题 2 linux 分区方法完成分区之后为什么 df 看不到分区
回答 1 linux 分区方法创建完分区只是生成分区边界,还没有创建文件系统也没有挂载,df 命令只显示已经挂载的文件系统,需要执行 mkfs 格式化,再 mount 挂载到目录,之后 df 才可以正常看到这个分区。
问题 3 linux 分区方法创建分区之后内核没有识别新分区怎么办
回答 1 linux 分区方法完成分区写入之后,部分系统内核没有自动刷新分区表,可以执行 partprobe 命令,通知内核重新读取磁盘分区表,之后就可以识别新建的分区设备文件。
问题 4 linux 分区方法 MBR 里面扩展分区和逻辑分区是什么关系
回答 1 linux 分区方法 MBR 模式下,主分区最多四个,扩展分区是特殊类型分区,本身不能存放数据,作用就是在内部继续划分多个逻辑分区,以此突破四个主分区的数量限制,逻辑分区全部依附在扩展分区之上。
【免责申明】
本文介绍 linux 分区方法相关内容仅作为技术学习参考,分区操作属于底层磁盘操作,错误选择磁盘或者错误转换分区表会造成磁盘数据永久丢失,生产环境操作前务必备份数据,谨慎操作,本文不对误操作带来的数据损失系统故障承担责任。


