CentOS 分区数据恢复实用指南
一、先判断场景与准备
umount /dev/sdXY 或 mount -o ro,remount /dev/sdXY。二、常见场景与对应方法
场景A 误删文件或目录(ext3/ext4)
umount /dev/sdXY;若无法卸载,结束占用进程:fuser -k /mountpoint。mount -o ro /dev/sdXY /mnt。extundelete /dev/sdXY --restore-file /path/to/fileextundelete /dev/sdXY --restore-directory /path/to/dirextundelete /dev/sdXY --after $(date -d "2025-12-10 09:00" +%s) --before $(date -d "2025-12-10 18:00" +%s)extundelete /dev/sdXY --restore-allxfsdump 备份,可用 xfsrestore -f /backup/file /mountpoint 恢复。场景B 分区表或分区丢失(含误删分区、扩容变动后盘丢失)
fdisk -l、lsblk。testdisk /dev/sdX → 选择 Analyze → Quick/Deep Search → 保存分区表。cat /etc/lvm/backup/<vgname>;用 vgcfgrestore -f /etc/lvm/backup/<vgname> <vgname> 恢复卷组配置,再用 pvs/vgs/lvs 校验。xfs_repair(必要时先 umount)。场景C MBR/引导记录损坏
dd if=/dev/sda of=mbr_backup bs=512 count=1。dd if=mbr_backup of=/dev/sda bs=446 count=1;若连同分区表也损坏:dd if=mbr_backup of=/dev/sda bs=512 count=1。三、关键命令速查表
| 场景 | 工具 | 关键命令示例 |
|---|---|---|
| 卸载/只读挂载 | 系统命令 | umount /dev/sdXY;mount -o ro,remount /dev/sdXY /mnt |
| 结束占用进程 | 系统命令 | fuser -k /mountpoint |
| ext3/ext4 文件恢复 | extundelete | extundelete /dev/sdXY --restore-file /path/file;--restore-directory;--after/--before;--restore-all |
| XFS 备份/恢复 | xfsdump/xfsrestore | xfsdump -f /backup/file /mountpoint;xfsrestore -f /backup/file /mountpoint |
| 分区表/分区恢复 | TestDisk | testdisk /dev/sdX → Analyze → Quick/Deep Search → Write |
| LVM 配置恢复 | LVM | vgcfgrestore -f /etc/lvm/backup/<vg> <vg>;pvs/vgs/lvs |
| MBR/引导修复 | dd | dd if=mbr_backup of=/dev/sda bs=446 count=1(引导代码);bs=512 count=1(整扇区) |
四、成功率与风险控制
xfsdump 备份,恢复难度显著上升,建议寻求专业服务。五、重要提示