centos分区丢失如何恢复
小樊
46
2025-12-21 16:10:59
CentOS 分区丢失恢复实操指南
一、先判断场景与准备
- 识别设备名:用 lsblk、fdisk -l、blkid 确认目标盘(如 /dev/sda、/dev/xvdb),避免误操作。
- 立刻只读:对已挂载分区执行 umount /dev/xxx;无法卸载时用 mount -o remount,ro /dev/xxx 只读挂载,防止进一步写入覆盖。
- 备份关键元数据:备份分区表与 LVM 配置,例如
- 备份 MBR/GPT 主引导记录:dd if=/dev/sda of=mbr_backup.bin bs=512 count=1
- 备份 LVM 配置:cp -a /etc/lvm/backup /root/lvm_backup/
- 环境准备:优先使用 CentOS 安装光盘/救援模式或 Live USB 操作;云盘/虚拟机建议先做快照再尝试修复。
二、LVM 场景的恢复步骤
- 进入救援模式:从安装介质启动,选择 Troubleshooting → Rescue a CentOS system → Skip to shell。
- 检查 LVM 备份:确认 /etc/lvm/backup/centos 等备份存在;用 pvs、vgs、lvs 查看当前状态。
- 重建物理卷(PV):若某块盘是新加且数据未写入,可按备份中的 UUID 重建 PV(示例)
- pvcreate --uuid “<备份中的UUID>” --restorefile /etc/lvm/backup/centos /dev/sdb1
- 恢复卷组(VG)配置:先测试再写入
- vgcfgrestore -f --test /etc/lvm/backup/centos centos
- vgcfgrestore -f /etc/lvm/backup/centos centos
- 激活并验证:执行 vgchange -ay 激活卷组,确认 lvs 可见;重启后若使用 XFS,可能提示需修复,按提示运行 xfs_repair(只读检查:xfs_repair -n)。
三、非 LVM 场景的恢复步骤
- 方法 A(简单重建分区,适用于默认起止扇区):用 fdisk /dev/sdX 新建分区,保持与原来一致的起始扇区与大小/类型,保存后执行 partprobe /dev/sdX 刷新分区表,再尝试挂载验证。
- 方法 B(TestDisk 恢复分区表):
- 安装:dnf install testdisk 或 yum install testdisk
- 运行:testdisk /dev/sdX → 选择分区表类型(Intel/EFI GPT)→ Analyse → Quick Search/Deeper Search
- 在列表中选中已删除分区(通常标记为 D),按 P 预览文件确认无误后,按 Write 写入分区表,退出并重启或 partprobe 刷新
- 挂载验证:mount /dev/sdXn /mnt/recover 检查数据
- 方法 C(无法写分区表时直接恢复文件):在 TestDisk 中进入分区后按 P 列出文件,选中需要的内容按 C 复制到安全盘,完成后核对文件完整性。
四、文件系统修复与验证
- 只读检查再修复:
- ext2/ext3/ext4:先 e2fsck -n /dev/sdXn(只读),确认无严重错误后再 e2fsck -y /dev/sdXn
- XFS:只读检查 xfs_repair -n /dev/sdXn,确认后 xfs_repair /dev/sdXn
- 挂载与校验:修复后 mount /dev/sdXn /mnt/test,抽查关键目录与文件数量/大小;必要时对重要数据做即时备份。
五、常见错误与预防
- 无法挂载但分区表存在:可能是 /etc/fstab 使用了错误的 UUID/设备名,先用 blkid 确认实际 UUID,修正 fstab 后再挂载。
- 引导相关报错(如 Error 15):多为 /boot 受损,进入救援模式后检查并修复 /boot(grub/内核/initramfs 等),再重建引导。
- 云环境要点:云盘/虚拟机先做快照;底层三副本不等同于文件系统安全,仍需快照与备份策略。
- 预防建议:
- 定期备份 /etc/lvm/backup、分区表与关键配置;变更前创建快照/备份
- 变更分区/扩容时记录 起始扇区、大小、类型,避免随意改动
- 重要业务采用 异地/离线 备份与多副本策略。