在 CentOS(以及大多数 Linux 发行版)中,“分区表恢复”通常分为几种情况。下面按常见场景 + 可操作方法给你一个实用指南。
先确认是 MBR(msdos) 还是 GPT:
sudo fdisk -l /dev/sda
或:
sudo parted /dev/sda print
msdos → MBRgpt → GPT⚠️ 最重要的一点
恢复分区表前:
mkfsparted mkpart如果磁盘还在用,先卸载:
umount /dev/sda*
testdisk(最推荐)适合误删分区、误格式化
yum install testdisk -y
testdisk /dev/sda
操作步骤:
Create → 日志Analyse → Quick SearchWrite 写回分区表✅ 对 CentOS 非常有效
如果你之前备份过:
# 备份
dd if=/dev/sda of=mbr.bak bs=512 count=1
# 恢复
dd if=mbr.bak of=/dev/sda bs=512 count=1
⚠️ 只恢复 MBR(前 512 字节),不包含分区数据
gdisk 恢复备份 GPTGPT 有主 + 备份分区表
gdisk /dev/sda
输入:
r # recovery
b # use backup GPT
w # write
testdisk /dev/sda
选择 EFI GPT 类型
CentOS 默认常用 LVM
pvs
vgs
lvs
vgchange -ay
vgcfgrestore -f /etc/lvm/backup/centos centos
如果分区表OK,但文件系统坏了:
fsck -y /dev/sda1
或 ext4:
e2fsck -f /dev/sda1
photorec(testdisk 附带)extundelete(ext4)testdisk 扫描如果你愿意,可以告诉我:
我可以给你更精确的一步一步命令。