运维工作中,服务器新增硬盘、磁盘扩容、数据分区隔离是高频操作。很多新手在Linux分区时容易踩坑:选错磁盘导致数据丢失、2T以上大磁盘分区失败、重启后分区挂载失效、分区创建后不显示等。
本文完全适配国内服务器环境(CentOS7/8、Ubuntu18.04/20.04/22.04/26.04),用最通俗的语言、真实实操案例,讲解两种主流分区工具 fdisk(交互式常用) 和 parted(支持大磁盘、可脚本自动化),从磁盘识别、分区创建、格式化、临时挂载到开机永久挂载,一站式搞定Linux磁盘分区全流程。
重要警告:分区、格式化属于高危操作,会清空磁盘数据!操作前务必确认磁盘设备,备份重要数据!
一、基础认知:MBR与GPT分区表(必看)
磁盘分区前必须先确定分区表格式,选错会导致分区失败、磁盘空间识别异常,两者核心区别如下:
| 对比项 | MBR(DOS) | GPT |
|---|---|---|
| 最大支持磁盘 | ≤2TB | 无上限,支持超大磁盘 |
| 最大分区数量 | 最多4个主分区,需扩展分区才能多分 | 默认支持128个分区,无主/逻辑分区区分 |
| 适用场景 | 老旧BIOS服务器、2T以下小磁盘 | UEFI新服务器、2T以上大磁盘(推荐默认使用) |
| 数据安全性 | 无备份,分区表损坏数据极易丢失 | 自带分区表备份,容错性更高 |
实操建议:新服务器、新硬盘一律选择 GPT 格式!
二、分区前准备:精准识别磁盘(杜绝删错盘)
很多人分区翻车,都是因为选错了系统盘和数据盘,先执行命令确认磁盘信息!
1. 快速查看所有磁盘及分区
lsblk

输出解读:sda 一般是系统盘,sdb、sdc 是新增数据盘,无挂载点、无分区的即为全新空磁盘。
2. 查看磁盘详细信息(分区表类型、容量)
sudo fdisk -l

重点查看 Disklabel type 字段:dos 代表MBR格式,gpt 代表GPT格式。
本文实操案例:以全新空磁盘 /dev/sdb(20G) 为例,全程无风险。
三、fdisk 实操分区教程(新手首选,交互式简单)
适用场景:2T以下磁盘、服务器手动交互式分区,所有Linux系统默认自带,无需安装。
步骤1:进入磁盘分区编辑模式
sudo fdisk /dev/sdb
输入 m 可查看所有帮助命令,新手无需记忆,跟着步骤操作即可。
步骤2:创建GPT分区表(必做)
新磁盘先初始化分区表:输入g,创建GPT分区表(大于2T磁盘必须选这个);小于2T老旧磁盘可输入 o 创建MBR。
步骤3:新建分区
- 输入
n:创建新分区 - 起始扇区:默认回车(使用全部空闲空间)
- 结束扇区:默认回车(占用整块磁盘),也可输入
+10G单独划分10G分区
步骤4:查看分区信息
输入 p,可查看刚刚创建的/dev/sdb1 分区,确认容量、路径无误。
步骤5:保存分区并退出
输入 w:保存所有修改并写入磁盘(关键步骤!不输入则不生效);若操作错误,输入 q 直接退出不保存。
四、parted 分区教程(大磁盘/自动化脚本首选)
适用场景:2T以上超大磁盘、需要批量脚本自动化分区,支持非交互式命令。
极简一键流程,全程无繁琐交互:
# 进入磁盘分区模式
sudo parted /dev/sdb
# 1. 设置GPT分区表
mklabel gpt
# 2. 创建整块磁盘分区(命名data,0%起始 100%结束)
mkpart data ext4 0% 100%
# 3. 查看分区结果
print
# 退出
quit
批量自动化脚本命令(生产运维常用):
sudo parted --script /dev/sdb mklabel gpt mkpart data ext4 0% 100%
五、分区格式化(ext4/xfs,两种主流格式)
创建分区后必须格式化文件系统才能使用,严禁格式化整块磁盘 /dev/sdb,只格式化分区 /dev/sdb1!
1. ext4格式(Ubuntu/Debian默认,通用首选)
sudo mkfs.ext4 /dev/sdb1
2. xfs格式(CentOS/Rocky默认,高并发业务首选)
sudo mkfs.xfs /dev/sdb1
格式选择建议
- 普通服务器、日常存储、需要缩减分区:选 ext4
- 数据库、高IO、超大磁盘业务:选 xfs
六、分区挂载:临时挂载+永久开机自动挂载
1. 临时挂载(重启失效,适合临时测试)
# 创建挂载目录
sudo mkdir -p /mnt/data
# 挂载分区
sudo mount /dev/sdb1 /mnt/data
# 查看挂载结果
df -h
2. 永久挂载(fstab配置,重启不丢失)
生产环境必须配置!推荐使用UUID挂载(避免磁盘序号错乱导致挂载失败)。
第一步:获取分区UUID
blkid /dev/sdb1
复制输出中的UUID字符串(唯一标识,永久不变)。
第二步:编辑fstab配置文件
sudo vim /etc/fstab
文件末尾添加如下内容(替换为自己的UUID,ext4/xfs对应修改):
UUID=xxxx-xxxx-xxxx /mnt/data ext4 defaults 0 2
字段释义:设备UUID、挂载目录、文件格式、挂载参数、备份开关、自检顺序。
第三步:测试配置(关键!防止开机崩溃)
sudo mount -a
无报错即配置成功,重启服务器分区会自动挂载;若有报错立即修正,避免服务器开机失败。
七、删除分区实操(安全清理)
如需重新分区,先卸载分区再删除,避免资源占用报错:
# 卸载分区
sudo umount /dev/sdb1
# 进入分区编辑模式
sudo fdisk /dev/sdb
# 输入d 删除分区,选择分区序号
d
# 保存退出
w
八、常见报错与解决方案(运维高频)
1. 报错:Device or resource busy(设备忙)
原因:分区正在挂载/被进程占用、swap分区启用
解决:卸载分区、关闭swap swapoff /dev/sdb1 后重新操作
2. 新建分区后lsblk不显示
原因:内核未刷新分区表
解决:执行刷新命令 partprobe /dev/sdb,无需重启服务器
3. 2T以上磁盘分区空间识别不全
原因:使用了MBR分区表
解决:重新初始化GPT分区表,全程使用parted工具分区
4. fstab配置错误导致开机失败
解决:开机进入单用户模式,注释错误fstab配置,重启即可
九、fdisk与parted工具选型总结
- fdisk:新手手动分区、2T以下磁盘、简单分区场景,系统默认自带,操作直观
- parted:2T以上大磁盘、批量自动化脚本、服务器批量部署场景
十、总结
1. 磁盘分区优先选择 GPT格式,兼容大磁盘、安全性更高,适配新服务器;
2. 手动运维用fdisk,自动化批量部署用parted,按需选择工具;
3. 分区后必须格式化、挂载,生产环境务必配置 UUID+fstab永久挂载;
4. 所有分区操作前确认磁盘设备,操作后用mount -a 校验配置,杜绝开机故障。