当CentOS系统的分区表损坏时,可以尝试以下几种方法进行恢复:
使用LVM恢复分区表
- 进入救援模式:
- 使用CentOS安装光盘或USB启动系统,进入救援模式。
- 选择“Troubleshooting” -> “Rescue a CentOS system” -> “3) Skip to shell”进入shell模式。
- 查看LVM信息:
- 使用
cat /etc/lvm/backup/centos
查看LVM备份信息。
- 根据备份信息,重建丢失的物理卷(PV)和卷组(VG)。
- 恢复文件系统:
- 使用
vgcfgrestore -f --test /etc/lvm/backup/centos centos
测试并恢复VG配置。
- 恢复成功后,使用
vgcfgrestore -f /etc/lvm/backup/centos centos
恢复VG配置。
- 重启系统,检查LV、VG、PV状态是否正常。
- 修复文件系统:
- 如果文件系统报错,进入单用户模式,使用
xfs_repair
工具修复XFS文件系统(如果是ext3、ext4文件系统,可使用fsck
进行修复)。
使用TestDisk恢复分区表
- 安装TestDisk:
- 使用
yum install testdisk
(CentOS)安装TestDisk工具。
- 启动TestDisk:
- 启动TestDisk,选择“Create”创建一个新的分区表。
- 按照提示选择分区表类型并进行快速扫描,找到丢失的分区。
- 恢复分区表:
- 选择找到的分区,按“Write”写入数据以恢复分区表。
备份与恢复分区表
- 备份分区表:
- 使用
dd if=/dev/sda of=/data/dpt.img bs1 count64 skip446
命令备份分区表。
- 破坏分区表:
- 使用
dd if=/dev/zero of=/dev/sda bs1 count64 seek446
命令破坏分区表。
- 恢复分区表:
- 重启系统后,进入救援模式,通过网络将备份的分区表文件复制到本地,然后使用
dd if=dpt.img of=/dev/sda bs1 seek446
恢复分区表。
注意事项
- 在进行分区表恢复操作前,请确保数据已备份,以防数据丢失。
- 恢复过程中可能会导致数据丢失,请谨慎操作。
- 如果以上方法均无法恢复分区表,可能需要考虑重新安装操作系统。