删除分区前必须先卸载,否则fdisk或parted无法安全操作;正确流程是:查挂载状态→umount设备→确认无残留→fdisk/parted删除→partprobe重读分区表→必要时用wipefs彻底清空。

fdisk 删除分区前必须先卸载
分区正在被挂载时,fdisk 或 parted 无法安全删除它,强行操作可能触发内核拒绝或导致设备忙(Device or resource busy)。最常见错误是直接运行 fdisk /dev/sdb 然后敲 d —— 如果 /dev/sdb1 已挂载到 /mnt/data,删完保存后系统仍认为该设备在用,w 可能失败或后续 lsblk 显示异常。
正确做法是:
- 先查挂载状态:
mount | grep /dev/sdX或findmnt /dev/sdX1 - 若已挂载,执行
umount /dev/sdX1(注意不是目录路径,是设备名) - 如果是 swap 分区,额外要先停用:
swapoff /dev/sdX2 - 确认无残留:再次
lsblk查看该分区是否不再出现在 MOUNTPOINT 列
fdisk 删除分区的典型流程和易错点
fdisk 是 CentOS 7 默认安装、兼容 MBR 的首选工具,但交互逻辑容易误操作。比如输错分区号、漏掉 w 导致更改未生效,或误删了引导分区(/boot 所在的 /dev/sda1)导致系统无法启动。
实操步骤:
- 运行
fdisk -l确认目标磁盘(如/dev/sdb)和待删分区编号(如2) - 进入交互:
fdisk /dev/sdb - 输入
p再次核对分区表,避免看错编号 - 输入
d→ 提示“Partition number?”时,**必须输入数字编号**(不是设备名),例如删第 2 个分区就输2 - 输入
w保存并退出;若想放弃,输入q(不保存) - 执行
partprobe /dev/sdb强制内核重读分区表(比重启更快,且避免“Re-read table failed”警告)
parted 删除分区更简洁,但只适用于 GPT 或已转 GPT 的磁盘
parted 在 CentOS 7 中默认可用,优势是命令式操作、自动保存,且支持大于 2TB 的磁盘。但它对 MBR 磁盘支持有限:如果磁盘仍是 DOS 标签(disk label type: dos),rm 命令可能报错或静默失败。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
判断和操作:
- 先看标签类型:
parted /dev/sdb print,若输出含Partition Table: gpt才可放心用rm - 若为
msdos,建议改用fdisk;强行rm可能破坏 MBR 结构 - 确认后:
parted /dev/sdb rm 2(直接删除第 2 分区,无需交互) - 退出:
quit—— 注意,parted**退出即保存,没有w步骤,也不支持q放弃
彻底清空分区表:wipefs 比 fdisk -l 更底层
有时你不是删某个分区,而是想把整块盘恢复成“未初始化”状态(比如重装系统前清理旧分区表)。这时 fdisk /dev/sdb → d × N → w 并不保险:MBR 引导代码、GPT 备份头仍残留,fdisk -l 可能仍显示旧信息。
真正干净的做法是:
- 确认磁盘无重要数据:
lsblk和df -h双重核对 - 清除所有签名:
wipefs -a -f /dev/sdb(-a清全部,-f强制) - 验证:
wipefs -l /dev/sdb应返回空;再fdisk -l /dev/sdb应显示 “Disk /dev/sdb doesn’t contain a valid partition table” - 此时才能安全新建分区,否则
parted mklabel gpt可能因残留签名失败
最后提醒:删除根分区(/)、/boot 或 LVM 物理卷所在的分区,会导致系统不可启动。这类操作必须在 Live CD 或 rescue 模式下进行,且不能在当前运行系统的同一块盘上操作。










