Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南 📅 2026/8/2 12:12:47 Linux磁盘分区从入门到实操MBR/GPT全解析分区工具实战指南摘要磁盘分区是Linux运维的核心基础技能无论是服务器扩容、系统部署、数据隔离都离不开分区操作。本文详细讲解Linux磁盘分区的核心意义、MBR与GPT两大分区方案的区别手把手带你实操fdisk、gdisk、parted三大分区工具同时覆盖分区挂载、空间故障排查实战案例零基础也能快速掌握。标签Linux运维、磁盘分区、MBR、GPT、fdisk、服务器存储一、为什么Linux磁盘必须做分区很多新手疑惑整块磁盘直接使用不行吗答案是不推荐。合理的磁盘分区是服务器稳定运行的基础核心价值体现在6点隔离系统与用户数据单独划分系统分区与数据分区避免业务日志、用户数据撑满系统盘导致系统卡顿、崩溃、无法开机。精细化空间管控为不同业务、用户、服务独立分配磁盘空间防止单一业务占用全部存储资源保障多业务稳定运行。故障精准隔离单个分区出现逻辑损坏、数据丢失、病毒入侵时仅影响当前分区不会波及硬盘其他分区数据。支持特殊分区场景可独立创建Swap交换分区拓展系统虚拟内存解决物理内存不足导致的程序闪退、系统卡顿问题。提升运维工具性能限定磁盘使用范围让磁盘检测、备份、镜像工具的识别更精准、运行效率更高。适配差异化存储业务可根据业务特性定制文件系统小文件密集业务、大文件存储业务分别适配不同文件系统优化读写性能。二、两大主流分区方案MBR vs GPTLinux磁盘分区仅有两大标准MBR传统分区、GPT新式分区二者适配场景、容量限制、分区数量差异极大是分区操作的核心理论基础。2.1 MBR 分区方案BIOS 老旧机型MBRMaster Boot Record主启动记录诞生于1982年是传统BIOS固件系统的专属分区方案适配老旧服务器、低版本Linux系统。核心特性分区数量限制最多4个主分区无法直接新增可通过「扩展分区逻辑分区」拓展Linux系统最多支持15个分区。分区属性扩展分区仅作为容器无法格式化、无法直接使用逻辑分区可正常格式化挂载、存储数据。容量上限使用4字节存储扇区数量单扇区512字节单个分区最大仅支持2TiB无法适配大容量磁盘。通俗类比磁盘如同主板4个主分区对应4个原生USB接口接口不足时将最后一个主分区改为扩展分区扩展坞再衍生出多个逻辑分区拓展USB接口。MBR 主引导扇区结构512字节磁盘第一个扇区柱面0、磁头0、扇区1为主引导扇区不属于任何分区格式化不会清除数据是系统启动的核心分为三部分引导程序446字节系统开机后负责将控制权移交至对应分区的操作系统完成开机引导。分区表DPT64字节包含4个16字节的分区条目仅记录4个主分区的位置、大小信息。结束标志2字节固定十六进制AA55是合法MBR分区的唯一标识。MBR 16 字节分区表条目结构表序号字段名称占用字节核心作用关键取值说明1引导标记1 Byte标识该分区是否为可启动的活动分区0x80 活动主分区系统从该分区启动0x00 普通不可启动分区2CHS 起始位置3 Byte记录分区起始的柱面 / 磁头 / 扇区坐标早期硬盘寻址方式现已基本被 LBA 取代3分区类型1 Byte标记分区的文件系统类型0x83 Linux 普通分区0x05/0x0F 扩展分区0x07 Windows NTFS4CHS 结束位置3 Byte记录分区末尾的柱面 / 磁头 / 扇区坐标老式寻址方式现代系统很少使用5LBA 起始扇区4 Byte现代主流寻址方式记录分区起始扇区号定位分区位置的核心字段6分区总扇区数4 Byte记录分区占用的扇区总数用于计算分区容量32 位长度 → MBR 单分区最大2 TiB2.2 GPT 分区方案UEFI 新式机型GPTGUID分区表是UEFI固件配套的新式分区标准解决了MBR的容量、分区数量、安全性短板是现代服务器、大容量磁盘的首选方案。核心优势超大容量支持8字节存储扇区数量最大支持18ZiB磁盘空间完美适配TB级大容量硬盘。分区数量充足默认支持128个分区无需扩展分区、逻辑分区嵌套分区管理更简单。高安全性冗余分区表双向备份自带CRC32校验码分区表损坏可自动恢复避免数据丢失。GPT 分区结构简介区域位置区块名称通俗解释 核心作用LBA 0保护性 MBR用于存放存放第一阶段的启动引导程序同时兼容老旧电脑 / 老旧系统防止老工具误删 GPT 分区不存真实分区数据LBA 1主 GPT 头部GPT 的 “说明书首页”记录分区总数、校验信息、备份表位置用来定位所有分区LBA2 ~ LBA33主分区条目1~128 条目一共 128 个分区空位一个条目对应一个硬盘分区无需区分主分区、扩展分区LBA34 ~ 磁盘倒数第 34 扇区正式分区数据区我们日常使用的 C 盘、D 盘等分区文件全都存放在这里磁盘倒数 33 ~ 倒数第 2 扇区备份分区条目主分区条目的完整备份主分区表损坏时用来恢复数据磁盘最后 1 扇区LBA -1备份 GPT 头部主头部的备份头部损坏可依靠它找回分区信息GPT分区表条目详表字节偏移占用字节字段名称详细释义 作用0 ~ 1516分区类型 GUID标记该分区用途系统识别分区格式Windows 系统分区、Linux /boot、EFI 引导分区、普通数据分区等都有专属 GUID16 ~ 3116分区唯一 GUID该分区独一无二的编号全局唯一用来精准定位分区32 ~ 398分区起始 LBA 扇区号64 位数值标记分区在硬盘的起始位置40 ~ 478分区结束 LBA 扇区号标记分区在硬盘的末尾位置结合起始扇区可算出分区总容量48 ~ 558分区属性标志控制分区特性只读、隐藏分区、不可挂载、系统保留分区等权限开关56 ~ 12772分区 Unicode 名称支持中文、英文等字符自定义分区名字如Windows系统盘、Linux根分区三、Linux三大分区工具实操详解Linux主流磁盘分区工具分为三种fdiskMBR专用、gdiskGPT专用、parted全能通用下面附上完整可落地实操命令。3.1 fdisk 工具MBR分区专属轻量便捷、运维最常用仅支持MBR分区表全程交互式操作。基础语法# 虚拟机新加一块100G磁盘需重启虚拟机之后才能看到新添的磁盘[rootserver ~ 09:42:54]# reboot# 查看磁盘分区表[rootserver ~ 09:49:40]# fdisk -l /dev/sdb磁盘 /dev/sdb107.4 GB,107374182400字节209715200 个扇区 Units扇区 of1*512512bytes 扇区大小(逻辑/物理)512 字节 /512字节 I/O 大小(最小/最佳)512 字节 /512字节# 进入磁盘交互分区界面fdisk/dev/sdb核心交互命令m查看帮助菜单p打印当前分区表n新建分区d删除分区w保存分区并退出必执行否则不生效q不保存直接退出实操1创建2G主分区fdisk/dev/sdb# 1. 输入n 新建分区# 2. 默认p主分区回车确认# 3. 分区号默认1回车确认# 4. 起始扇区默认20481M对齐规范标准回车确认# 5. 输入 2G 设定分区大小# 6. 输入p 预览分区# 7. 输入w 保存生效 分区不生效解决方案执行partprobe命令强制内核重新加载分区表。实操2删除分区fdisk/dev/sdb# 1. 输入d 触发删除功能# 2. 输入对应分区号如1、2# 3. 输入p 确认删除结果# 4. 输入w 保存生效实操3扩展分区逻辑分区创建突破4主分区限制当4个主分区用完后需创建扩展分区再在其内创建逻辑分区# 1. 创建第4个分区选择e扩展分区占用剩余全部磁盘空间# 2. 输入n 新建分区自动生成逻辑分区sdb5、sdb6...# 3. 自定义逻辑分区大小保存w退出3.2 gdisk 工具GPT分区专属专门管理2T以上大容量磁盘、GPT分区表操作逻辑与fdisk高度相似上手零成本。高频常用命令速记?查看帮助菜单p查看分区n新建分区d删除分区t修改分区类型EFI/swap 常用q不保存退出w保存写入磁盘c修改分区自定义名称o清空磁盘新建空白 GPT 分区表核心实操MBR转GPT分区表gdisk /dev/sdb# 1. 输入o 清空原有分区新建GPT分区表# 2. 输入Y 确认操作# 3. 输入w 保存GPT分区表# 4. 输入Y 确认写入新建GPT分区gdisk /dev/sdb# 1. 输入n 新建分区默认分区号、起始扇区# 2. 输入2G 设置分区大小# 3. 输入L 可查看所有分区类型编码默认8300 Linux文件系统# 4. 输入c 可自定义分区名称# 5. 输入w 保存生效3.3 parted 工具全能通用唯一同时支持MBR、GPT分区的工具支持交互式免交互脚本操作支持分区扩容修改立即生效无需手动保存。parted 标准语法parted [选项] 磁盘 [命令 [参数]]全局 options 常用选项选项全称作用说明-l--list罗列本机全部磁盘与分区详情日常查询最常用-s--script静默脚本模式自动确认所有交互无弹窗询问适合 Shell 脚本-a TYPE--alignTYPE设置分区对齐策略①opt最优对齐SSD / 机械硬盘推荐②min最小对齐③none不对齐-h--help查看帮助手册-v--version查看 parted 版本-i--interactive强制进入交互式模式常用 command命令命令语法格式实操示例printprint [free]print查看分区print free查看空闲空间mklabelmklabel gpt/msdosmklabel gpt新建 GPTmklabel msdos新建 MBRmkpartmkpart 类型 文件系统 起始 结束mkpart primary xfs 1G 15Grmrm 分区编号rm 3删除第 3 个分区setset 编号 标记 on/offset 1 esp on设为 EFI 分区set 2 boot on设为引导分区namename 编号 分区名name 1 EFI-BOOT给分区命名resizepartresizepart 编号输入新结束位置扩容分区align-checkalign-check opt 编号检查分区 4K 最优对齐unitunit 单位unit GB/unit s切换显示单位quitquit退出交互终端常用实操命令# 查看分区[rootserver ~10:10:25]# parted /dev/sdb printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb: 107GB Sector size(logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system 标志11049kB 2149MB 2147MB primary# 创建分区时用于设置单位为MiB精准计算[rootserver ~10:12:59]# parted /dev/sdb unit MiB# 新建MBR分区[rootserver ~10:33:10]# parted /dev/sdb mklabel msdos[rootserver ~10:33:29]# parted /dev/sdb unit MiB mkpart primary 1 2049# 新建GPT分区(先删除原有的MBR分区)[rootserver ~10:37:21]# parted /dev/sdb rm 1[rootserver ~10:43:18]# parted /dev/sdb mklabel gpt[rootserver ~10:43:35]# parted /dev/sdb unit MiB mkpart data01 xfs 1 2049# 查看新建的分区[rootserver ~10:51:01]# parted /dev/sdb printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb: 107GB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志11049kB 2149MB 2147MB data1# 扩容分区[rootserver ~10:51:04]# parted /dev/sdb resizepart 1 5121# 删除分区1[rootserver ~10:52:13]# parted /dev/sdb rm 13.4 wipefs 工具清除分区信息用于清除磁盘残留的分区表、文件系统信息彻底初始化磁盘# 查看磁盘残留信息[rootserver ~10:53:19]# wipefs /dev/sdboffsettype---------------------------------------------------------------- 0x200 gpt[partition table]# 清空所有分区及文件系统信息谨慎操作[rootserver ~10:53:43]# wipefs -a /dev/sdb/dev/sdb8 个字节已擦除位置偏移为 0x00000200(gpt)4546492050415254/dev/sdb8 个字节已擦除位置偏移为 0x18fffffe00(gpt)4546492050415254/dev/sdb2 个字节已擦除位置偏移为 0x000001fe(PMBR)55 aa /dev/sdb: calling ioclt to re-read partition table: 成功四、分区持久化挂载开机自动挂载新建分区后必须格式化挂载才能使用临时挂载重启失效生产环境需配置持久化挂载需要修改**/etc/fstab** 开机自动挂载配置文件。4.1 基础格式化# 格式化为xfsCentOS7默认[rootserver ~10:56:31]# parted /dev/sdb mktable gpt[rootserver ~10:57:36]# parted /dev/sdb unit MiB mkpart data1 xfs 1 2049[rootserver ~10:58:25]# mkfs.xfs /dev/sdb1meta-data/dev/sdb1isize512agcount4,agsize131072blkssectsz512attr2,projid32bit1crc1finobt0,sparse0databsize4096blocks524288,imaxpct25sunit0swidth0blks namingversion2bsize4096ascii-ci0ftype1loginternal logbsize4096blocks2560,version2sectsz512sunit0blks, lazy-count1realtimenoneextsz4096blocks0,rtextents0# 强制格式化存在旧文件系统时使用mkfs.xfs-f/dev/sdb1# 格式化为ext4mkfs.ext4 /dev/sdb14.2 /etc/fstab 持久化配置/etc/fstab6个字段解析字段序号名称填写规则、详细说明第 1 字段设备标识二选一优先 UUID磁盘盘符 sdX 会变动UUID 永久唯一写法UUIDxxxx-xxxx或/dev/sdb1第 2 字段挂载点磁盘挂载到系统的目录路径目录必须提前存在不存在用mkdir -p 目录路径创建第 3 字段文件系统类型填写分区格式化类型xfs/ext4/swap/ntfs等第 4 字段挂载参数多参数用英文逗号隔开defaults为默认组合参数rw,suid,dev,exec,auto,nouser,async日常 99% 场景直接填 defaults第 5 字段dump 备份标记0不使用 dump 备份分区1开启 dump 备份现代服务器几乎不用 dump统一填 0第 6 字段fsck 开机自检顺序1. xfs 文件系统固定填 0xfs 无 fsck 自检工具禁止开机检查2. ext4 根分区 /填 1第一个优先自检3. ext4 普通数据分区填 2根分区检查完毕后再检查4. swap 交换分区固定填 0# 1. 查询分区UUID[rootserver ~10:59:10]# blkid /dev/sdb1/dev/sdb1:UUIDecc843c4-7cc2-4a76-bcb0-4ac306391029TYPExfsPARTLABELdata1PARTUUID78edb81c-f97d-4b89-b686-8a1953a29b15# 2. 创建挂载目录[rootserver ~11:04:33]# mkdir /data01# 3. 编辑配置文件vim/etc/fstab# 添加配置xfs文件系统最后两个字段固定0 0UUIDecc843c4-7cc2-4a76-bcb0-4ac306391029/data01 xfs defaults00# 4. 生效挂载[rootserver ~11:06:25]# mount /data01/# 5. 验证[rootserver ~11:06:35]# df -h /data01/文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb12.0G 33M2.0G2% /data01注意每次修改 /etc/fstab 后强制执行mount -a提前排错避免服务器重启卡死无法开机。五、磁盘空间不足三大故障实战排查生产环境磁盘爆满是高频故障3种核心场景及解决方案场景1大文件占用空间爆满现象df查看空间100%占用inode正常排查命令# 查找100M以上大文件find/挂载目录-size100M# 查看目录占用空间排序du-s/挂载目录/*|sort-n解决方案直接删除无用大文件空间立即释放。场景2文件删除后空间不释放现象已删除大文件df显示空间仍爆满原因文件被进程占用删除后仅删除文件名进程仍持有文件句柄排查解决# 查找已删除未释放的文件lsof|grepdelete# 终止对应进程kill进程ID 最佳实践大文件清理优先用 文件名清空而非直接删除。场景3小文件过多耗尽inode现象磁盘空间充足但无法新建文件提示「设备上没有空间」原因海量小文件耗尽inode节点每个文件占用1个inode排查解决# 查看inode占用df-hi# 批量删除无用小文件/合并小文件释放inoderm-f海量小文件cat/myapp-2/file-{00001..10000}file-00001六、总结分区方案选择2T以下老旧磁盘用MBR2T以上新服务器、UEFI启动用GPT工具选型MBR用fdiskGPT用gdisk通用操作、扩容用parted生产规范分区后必做持久化挂载磁盘清理优先排查inode、占用进程、大文件三大维度安全原则分区、清空操作前务必备份数据wipefs、fdisk w写入操作不可逆。