centos分区如何进行备份恢复
小樊
38
2025-11-29 23:40:39
CentOS 分区备份与恢复实用指南
一、常用备份方法
- 使用 tar 做系统或目录级备份(保留权限与属性)
- 备份示例:tar cvpzf /backup/full_$(date +%F).tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/backup /
- 恢复示例:tar xvpfz /backup/full_YYYY-MM-DD.tgz -C /
- 使用 rsync 做目录/数据盘的增量备份(便于日常滚动备份)
- 首次全量:rsync -avz --delete /data/ /backup/data/
- 增量(基于上一次快照):rsync -avz --delete --link-dest=/backup/data/prev /data/ /backup/data/current
- 使用 dd 做整盘/分区镜像(逐扇区级,适合迁移或整盘克隆)
- 备份示例:dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
- 恢复示例:dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
- 使用 dump/restore 做 ext2/3/4 文件系统级备份(XFS 不适用)
- 备份示例:dump -0uj -f /backup/boot.bak0.bz2 /boot
- 恢复示例:cd /boot && restore -r -f /backup/boot.bak0.bz2
- 使用专业/离线工具(适合一键系统级与跨机器)
- Mondo Rescue:mondoarchive 生成可启动 ISO/镜像,灾难恢复能力强
- Clonezilla:图形化整盘/分区镜像与批量部署
- 建议:关键业务采用“文件系统级备份(tar/rsync/dump)+ 周期性整盘镜像(dd)”的组合,并定期做恢复演练验证可用性。
二、恢复操作要点
- 系统级 tar 恢复
- 建议从 LiveCD/救援模式启动,挂载目标根分区到 /mnt,必要时绑定挂载 /dev、/proc、/sys、/run,再执行:tar xvpfz /backup/full_YYYY-MM-DD.tgz -C /mnt;chroot /mnt 后重建 initramfs(dracut)与引导(grub2-install /dev/sda;编辑 /etc/fstab 核对 UUID)。
- rsync 恢复
- 目标目录为空时直接:rsync -avz --delete /backup/data/current/ /data/;若需回滚,可切换 --link-dest 指向历史快照目录。
- dd 镜像恢复
- 确认目标盘容量与源盘一致或更大,先核对镜像完整性;写回时确保正确目标设备(如 /dev/sda),避免写错盘;写回后使用 partprobe 或重启使分区表生效。
- LVM 场景
- 若仅元数据丢失,可在救援模式用 LVM 备份还原:vgcfgrestore -f /etc/lvm/backup/centos centos;必要时 pvcreate --uuid “<PV_UUID>” --restorefile /etc/lvm/backup/centos /dev/sdX 重建 PV,再激活 VG/LV。
- XFS 文件系统修复
- 先卸载分区,再执行:xfs_repair /dev/mapper/centos-root(或 /dev/sdXN);ext 系列使用 fsck(如 fsck -y /dev/sdXN)。修复前建议先备份重要数据。
三、分区丢失或分区表损坏的恢复
- 使用 LVM 元数据恢复
- 救援模式查看 LVM 备份:cat /etc/lvm/backup/centos;测试并恢复 VG:vgcfgrestore -f --test /etc/lvm/backup/centos centos 与 vgcfgrestore -f /etc/lvm/backup/centos centos;随后激活 VG:vgchange -ay。
- 使用 TestDisk 恢复分区表
- 安装:yum install testdisk;运行 testdisk,选择磁盘,Analyze → Quick Search/Deep Search 查找丢失分区,Write 写回分区表并重启。
- 备份/还原分区表(MBR 主引导记录后 446 字节的 64 字节分区表项)
- 备份:dd if=/dev/sda of=/backup/dpt.img bs=1 count=64 skip=446
- 还原:dd if=/backup/dpt.img of=/dev/sda bs=1 count=64 seek=446
- 重要提示
- 上述操作有数据风险;对含生产数据的磁盘,先克隆或完整镜像后再尝试修复;若数据极其重要,建议交由专业恢复服务。
四、加密分区与注意事项
- LUKS 加密分区备份
- 打开加密卷:cryptsetup luksOpen /dev/sdb1 my_encrypted
- 备份明文设备:dd if=/dev/mapper/my_encrypted of=/backup/enc_part.img bs=4M
- 或先备份 LUKS 头:cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /backup/luks-header.img
- 恢复:先 luksOpen,再 dd 写回;或先 luksHeaderRestore 再恢复数据镜像。
- 通用注意事项
- 备份与恢复全程使用 root 或具备 sudo 权限;操作前确认目标设备路径(如 /dev/sda 与 /dev/sda1 的区别),避免误写。
- 文件系统类型不同,修复工具不同:XFS 用 xfs_repair,ext2/3/4 用 fsck;修复前卸载分区更稳妥。
- 校验备份完整性(如 sha256sum)、保留多份副本并异地/离线存放;定期做恢复演练,验证可启动性与数据一致性。