Linux分卷如何进行故障恢复
小樊
37
2025-11-16 08:56:00
Linux分卷故障恢复实用指南
一、先判断你的“分卷”类型
- 若你指的是LVM逻辑卷(如:/dev/mapper/vg0-lv_root),恢复重点在卷组元数据、物理卷可用性、以及文件系统一致性。
- 若你指的是分区表/分区(如:/dev/sda1 被误删或变更),恢复重点在分区表重建与文件系统检查。
- 若你指的是分卷压缩归档(如:split 或 tar 多卷打包),恢复重点在归档合并与解包。
二、LVM逻辑卷的恢复
- 场景A 卷组元数据损坏或丢失(有备份)
- 进入救援环境(如安装介质的Troubleshooting → Rescue a CentOS system),先激活卷组:
- 查看并测试恢复:
- vgcfgrestore -l centos(列出备份)
- vgcfgrestore -f /etc/lvm/backup/centos -t centos(先测试)
- vgcfgrestore -f /etc/lvm/backup/centos centos(正式恢复)
- 重启后检查:
- pvs、vgs、lvs
- 如为 XFS,系统启动阶段可能提示需修复,进入系统后执行:xfs_repair /dev/mapper/centos-root(必要时加 -L 谨慎使用)。
- 场景B 新增磁盘丢失导致VG降级(PV物理卷缺失)
- 临时替换同容量磁盘,分区(如 /dev/sdb1),重建PV:
- 恢复VG配置(见场景A),再执行:
- vgchange -ay
- lvs 确认LV状态,必要时激活:lvchange -ay /dev/vg0/lv_root
- 场景C 文件系统损坏(非元数据)
- 卸载后检查修复:
- umount /dev/mapper/vg0-lv_home
- 对 ext4:fsck -y /dev/mapper/vg0-lv_home
- 对 XFS:xfs_repair /dev/mapper/vg0-lv_home(系统分区需救援模式或LiveCD)
- 修复后挂载验证:mount /dev/mapper/vg0-lv_home /home。
三、分区表或分区丢失的恢复
- 立即停止对故障盘写入,优先整盘克隆或使用只读方式分析,避免覆盖可恢复数据。
- 使用 TestDisk 重建分区表
- 安装:sudo apt-get install testdisk(或发行版仓库)
- 运行 testdisk → 选择磁盘 → Analyse → Quick Search/Deep Search → 标记丢失分区 → Write 写入分区表。
- 使用 GParted Live 可视化恢复
- 制作GParted启动U盘 → 从U盘启动 → 在图形界面识别空白区域 → 新建分区(类型与大小尽量与原分区一致)→ 应用操作 → 重启检查。
- 文件系统级修复(分区找回后)
- 确认文件系统类型后修复:
- ext4:fsck -y /dev/sdXY
- XFS:xfs_repair /dev/sdXY
- 修复完成后再挂载验证。
四、分卷压缩归档的恢复(split或tar多卷)
- 合并分卷归档
- 若为 split 分卷(如 x00、x01…):cat x* > archive.tar.gz
- 若为 tar 通过管道分卷:cat archive.tar.gz.* | tar xzvf -
- 解包
- 校验
- 解包后检查关键目录与文件完整性,必要时用 tar tvf 预览归档清单。
五、常见排错与预防要点
- 无法进入系统
- 进入救援/单用户模式,检查并修复分区:fsck /dev/mapper/xxx;必要时 chroot 修复引导(如 GRUB)。
- 启动时报错或分区挂载失败
- 临时以读写挂载根分区:mount -o remount,rw /
- 编辑 /etc/fstab,先注释掉问题分区行,启动后再修正挂载参数与 UUID。
- 预防与日常维护
- 定期备份 LVM 元数据:vgcfgbackup;妥善保存 /etc/lvm/backup 与 /etc/lvm/archive。
- 重要数据定期做离线/异地备份;扩容/缩容前先全量备份。
- 对关键业务使用 LVM 快照 做一致性点,降低回滚成本。