Linux硬盘分区管理完全指南:GPT分区、gdisk、parted、持久化挂载与软RAID实战
2026/8/4 16:19:39 网站建设 项目流程

Linux 硬盘分区管理完全指南:GPT 分区、gdisk、parted、持久化挂载与软 RAID 实战

文章目录

  • Linux 硬盘分区管理完全指南:GPT 分区、gdisk、parted、持久化挂载与软 RAID 实战
    • 前言
    • 一、GPT 分区方案详解
      • 1\.1 为什么选择 GPT
      • 1\.2 GPT 分区表结构
    • 二、gdisk 工具:GPT 分区专用管理工具
      • 2\.1 查看磁盘分区表
      • 2\.2 MBR 转 GPT 分区表
      • 2\.3 创建 GPT 分区
      • 2\.4 修改分区名称
      • 2\.5 查看分区详细信息
      • 2\.6 删除分区
    • 三、wipefs 工具:分区表清理工具
      • 3\.1 查看磁盘签名
      • 3\.2 清除磁盘分区表
    • 四、parted 工具:MBR/GPT 通用分区工具
      • 4\.1 基础交互命令
      • 4\.2 管理 MBR 磁盘
        • 创建 MBR 分区表
        • 创建主分区
        • 调整分区大小
        • 删除分区
      • 4\.3 管理 GPT 磁盘
        • 创建 GPT 分区表
        • 创建 GPT 分区
      • 4\.4 非交互式操作(脚本化)
    • 五、文件系统持久化挂载
      • 5\.1 环境准备
      • 5\.2 /etc/fstab 配置详解
      • 5\.3 取消持久化
    • 六、磁盘空间不足排查实战
      • 6\.1 场景 1:大文件占用空间
      • 6\.2 场景 2:文件已删除但空间未释放
      • 6\.3 场景 3:inode 耗尽
    • 七、Linux 软 RAID 技术详解
      • 7\.1 主流 RAID 级别对比
      • 7\.2 RAID0 配置实战
      • 7\.3 RAID1 配置实战
      • 7\.4 RAID5 配置实战

前言

在 Linux 运维工作中,硬盘分区管理是最基础也最核心的技能之一。随着大容量硬盘普及,传统 MBR 分区方案的局限性愈发明显,GPT 分区逐渐成为主流;同时 RAID 技术也为数据可靠性、存储性能提供了成熟的解决方案。

本文将从理论到实操,系统讲解 GPT 分区结构、gdisk/parted 分区工具、文件系统持久化挂载、磁盘空间问题排查,以及 mdadm 管理软 RAID 的完整流程,覆盖日常运维 90% 以上的磁盘管理场景。

一、GPT 分区方案详解

1.1 为什么选择 GPT

MBR(主引导记录)是传统分区方案,存在两个先天瓶颈:

  • 容量限制:最大仅支持 2TiB 磁盘,无法适配大容量硬盘

  • 分区数量限制:最多 4 个主分区,即便通过扩展分区拆分逻辑分区,总数也存在上限

GPT(全局唯一标识分区表)是 UEFI 固件标准下的新一代分区格式,彻底解决了 MBR 的局限:

  • 最大支持 18ZiB 的磁盘 / 分区容量(使用 64 位存储扇区总数)

  • 默认支持最多 128 个主分区,无需扩展分区概念

  • 自带分区表冗余(头部 + 尾部各存一份),损坏后可恢复

  • 内置 CRC 校验,可检测分区表完整性

1.2 GPT 分区表结构

GPT 分区表按 LBA(逻辑块地址)划分,核心分为三个区域:

  1. LBA0:保护性 MBR

    • 前 446 字节保留引导代码区域,兼容传统 BIOS 启动

    • 分区表区域标记为0xEE特殊类型,老版本磁盘工具识别后不会误修改分区,起到保护作用

  2. LBA1:GPT 表头

    • 记录分区表自身的位置、大小

    • 记录备份 GPT 分区表的位置(磁盘尾部)

    • 存储分区表 CRC 校验值,用于校验数据完整性

  3. LBA2 ~ LBA33:分区条目区

    • 共 32 个 LBA 存储分区记录,每个 LBA 存放 4 条分区记录

    • 每条分区记录占 128 字节,默认共 128 个分区条目

    • 每条记录用 64 位存储分区扇区总数,支持超大分区

注意:实际生产中分区数量不建议超过 120 个,部分文件系统工具可能存在兼容性问题。

二、gdisk 工具:GPT 分区专用管理工具

gdisk 是专门用于 GPT 分区的命令行工具,操作逻辑与 fdisk 类似,是管理大容量 GPT 磁盘的首选工具。

2.1 查看磁盘分区表

gdisk-l/dev/sdb

如果磁盘当前是 MBR 格式,gdisk 会提示内存转换,仅用于查看不会修改磁盘。

2.2 MBR 转 GPT 分区表

警告:转换操作会清空原有分区表,数据将无法直接访问,操作前务必备份数据!

gdisk /dev/sdb

进入交互模式后执行:

  1. 输入o:创建空的 GPT 分区表

  2. 输入p:预览当前分区表状态

  3. 输入w:写入更改并退出

  4. 输入Y:确认危险操作

2.3 创建 GPT 分区

进入 gdisk 交互模式:

gdisk /dev/sdb

操作步骤:

  1. 输入n:新建分区

  2. 分区编号:直接回车使用默认值(从 1 开始)

  3. 起始扇区:直接回车,默认从 2048 扇区开始(保证 4K 对齐)

  4. 结束扇区:输入+2G表示创建 2GB 分区,支持 K/M/G/T/P 单位

  5. 分区类型:直接回车默认8300(Linux 文件系统)

常用分区类型代码:

代码含义
8300Linux 普通文件系统
8200Linux 交换分区
8e00Linux LVM 物理卷
ef00EFI 系统分区
fd00Linux RAID

创建完成后输入p查看分区,确认无误输入w保存。

2.4 修改分区名称

GPT 分区支持自定义分区名,便于管理:

  1. 输入c

  2. 选择分区号

  3. 输入新名称(如data01

  4. p查看效果

2.5 查看分区详细信息

  1. 输入i

  2. 选择分区号
    可查看分区 GUID、唯一标识、起止扇区、属性标记、分区名称等完整信息。

2.6 删除分区

  1. 输入d

  2. 选择分区号

  3. p确认后w保存

三、wipefs 工具:分区表清理工具

wipefs 用于查看、清除磁盘上的文件系统 / 分区表签名,是重置磁盘的常用工具。

3.1 查看磁盘签名

wipefs /dev/sdb

3.2 清除磁盘分区表

警告:该操作会清除分区表元数据,数据将无法直接访问,谨慎操作。

# 清除未挂载磁盘的分区表wipefs-a/dev/sdb

不建议使用-f强制清除已挂载磁盘的分区表,会导致系统异常。

四、parted 工具:MBR/GPT 通用分区工具

parted 同时支持 MBR 和 GPT 两种分区方案,支持交互式和非交互式两种模式,适合脚本自动化分区。

注意:parted 的大部分操作会实时写入磁盘,无需额外保存,操作前务必确认磁盘。

4.1 基础交互命令

进入交互模式:

parted/dev/sdb

常用基础命令:

  • help:查看帮助

  • print:查看当前分区表

  • unit MiB:设置显示单位为 MiB(推荐,避免进制混淆)

  • quit:退出

4.2 管理 MBR 磁盘

创建 MBR 分区表
mklabel msdos# 输入 y 确认
创建主分区
mkpart# 分区类型:primary# 文件系统类型:xfs# 起始位置:1# 结束位置:2049
调整分区大小
# 将1号分区末尾调整到4097MiBresizepart14097
删除分区
rm1

4.3 管理 GPT 磁盘

创建 GPT 分区表
mklabel gpt# 输入 y 确认
创建 GPT 分区
mkpart# 分区名称:data01# 文件系统类型:xfs# 起始位置:1# 结束位置:2049

扩容、删除操作与 MBR 模式完全一致。

4.4 非交互式操作(脚本化)

无需进入交互模式,单条命令完成操作,适合编写自动化脚本。

# 创建GPT分区表parted/dev/sdb mklabel gpt# 查看分区(指定单位为MiB)parted/dev/sdb unit MiB print# 创建分区parted/dev/sdb unit MiB mkpart data01 xfs12049# 扩容分区parted/dev/sdb unit MiB resizepart15121# 删除分区parted/dev/sdbrm1

五、文件系统持久化挂载

分区创建后需要格式化文件系统并挂载才能使用,默认挂载重启后失效,需配置/etc/fstab实现开机自动挂载。

5.1 环境准备

# 创建GPT分区parted/dev/sdb mklabel gptparted/dev/sdb unit MiB mkpart data01 xfs12049# 格式化为xfs文件系统mkfs.xfs /dev/sdb1# 如磁盘已有文件系统,强制格式化mkfs.xfs-f/dev/sdb1

5.2 /etc/fstab 配置详解

fstab 每行由 6 个字段组成,用空格分隔:

字段序号说明
第 1 字段设备标识,推荐使用 UUID(稳定不随盘符变化)
第 2 字段挂载点目录,需提前创建
第 3 字段文件系统类型,如 xfs、ext4、swap
第 4 字段挂载参数,默认defaults即可
第 5 字段dump 备份标记,0 表示不备份
第 6 字段fsck 检查顺序,xfs 设为 0;根分区 ext4 设为 1,其他 ext4 设为 2

操作步骤:

  1. 获取分区 UUID
blkid /dev/sdb1

输出示例:

/dev/sdb1: UUID="f5c35f10-0274-45af-b044-73694989fe01" TYPE="xfs" PARTLABEL="data01" PARTUUID="432d7d79-1a08-4429-bf38-7ab1444a0ab9"
  1. 创建挂载点
mkdir/data01
  1. 编辑 fstab 文件
vim/etc/fstab

末尾添加一行:

UUID=f5c35f10-0274-45af-b044-73694989fe01 /data01 xfs defaults 0 0
  1. 验证挂载
# 读取fstab进行挂载mount/data01# 查看挂载状态df-h/data01

配置完成后建议重启系统,验证自动挂载是否生效。

5.3 取消持久化

删除/etc/fstab中对应行,执行umount /data01卸载即可。

六、磁盘空间不足排查实战

生产环境中磁盘空间告警是高频问题,主要分为三类典型场景。

6.1 场景 1:大文件占用空间

现象:磁盘使用率接近 100%,整体容量被占满。
排查方法

# 方法1:查找指定目录下大于100M的文件find/myapp-1-size+100M# 方法2:按目录大小排序,定位大目录du-s/myapp-1/*|sort-n|tail-5

解决:确认文件无用后,使用rm删除即可释放空间。

6.2 场景 2:文件已删除但空间未释放

现象:执行 rm 删除大文件后,df 查看空间没有释放。
原因:文件被运行中的进程打开占用,删除后内核不会立即释放磁盘空间。
排查

lsof|grepdelete|grep/myapp-1

解决

  1. 正常方式:终止占用进程kill 进程号

  2. 安全方式:先清空文件内容再删除> bigfile && rm -f bigfile,避免进程异常

6.3 场景 3:inode 耗尽

现象:磁盘容量还有剩余,但无法创建新文件,提示设备上没有空间。
原因:大量小文件占满了 inode(每个文件占用一个 inode)。
排查

df-i/myapp-2

解决

  1. 清理无用小文件释放 inode

  2. 合并大量小文件减少 inode 占用

拓展:彻底擦除硬盘数据可使用dd if=/dev/zero of=/dev/sdb逻辑填充,或物理消磁。

七、Linux 软 RAID 技术详解

RAID(独立磁盘冗余阵列)通过多块磁盘组合,实现性能提升、数据冗余。Linux 下通过 mdadm 工具实现软 RAID,无需额外硬件卡。

7.1 主流 RAID 级别对比

RAID 级别最小磁盘数容错能力空间利用率读取性能写入性能适用场景
RAID02100%很高很高视频剪辑、临时缓存,性能优先、数据可丢失
RAID12允许坏 1 块50%系统盘、关键数据,可靠性优先
RAID53允许坏 1 块(N-1)/N较高一般文件服务器、中小型业务,均衡性价比
RAID64允许坏 2 块(N-2)/N较高较低大容量存储、长时间运行业务
RAID104每组允许坏 1 块50%数据库、虚拟化平台,性能与可靠性兼顾
RAID506每组允许坏 1 块(N - 组数)/N大规模数据存储
RAID608每组允许坏 2 块(N-2 * 组数)/N超大规模存储,极高可靠性需求

7.2 RAID0 配置实战

RAID0 条带化,无冗余,读写性能最高。

# 安装工具yuminstall-ymdadm# 创建RAID0,2块磁盘mdadm--create/dev/md0--level0--raid-devices2/dev/sdb /dev/sdc# 查看状态cat/proc/mdstatmdadm--detail/dev/md0# 格式化挂载mkfs.xfs /dev/md0mkdir-p/raid/raid0mount/dev/md0 /raid/raid0# 删除RAIDumount/dev/md0mdadm--stop/dev/md0mdadm--zero-superblock /dev/sdb /dev/sdc

RAID0 无法添加新成员盘,无法强制标记磁盘故障。

7.3 RAID1 配置实战

RAID1 镜像,完整数据冗余,容量减半。

# 创建RAID1mdadm--create/dev/md1--level1--raid-devices2/dev/sdb /dev/sdc# 提示时输入 yes 确认# 查看同步进度mdadm--detail/dev/md1|grepResync# 加热备盘mdadm--add/dev/md1 /dev/sdd# 模拟磁盘故障mdadm--fail/dev/md1 /dev/sdc# 热备盘会自动顶替并开始重建# 移除故障盘mdadm--remove/dev/md1 /dev/sdc# 删除RAIDumount/dev/md1mdadm--stop/dev/md1mdadm--zero-superblock /dev/sd{b..d}

7.4 RAID5 配置实战

RAID5 分布式奇偶校验,性价比最高的冗余方案。

# 创建RAID5,4块数据盘mdadm--create/dev/md5--level5--raid-devices4/dev/sd{b..e}# 等待重建完成后格式化挂载mkfs.xfs /dev/md5mkdir/raid/raid5mount/dev/md5 /raid/raid5# 加热备盘mdadm--add/dev/md5 /dev/sdf# 模拟故障mdadm--fail/dev/md5 /dev/sdb# 热备盘自动顶替重建# RAID扩容:增加成员盘mdadm--add/dev/md5 /dev/sdgmdadm--grow/dev/md5 --raid-devices5# 等待reshape完成后,扩容文件系统xfs_growfs /raid/raid5# 删除RAIDumount/dev/md5mdadm--stop/dev/md5mdadm--zero-superblock /dev/sd{b..g}

监控磁盘读写负载可使用sar -dp 1查看 % util、读写扇区等指标。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询