温馨提示×

centos分区如何备份和恢复

小樊
49
2025-11-01 19:24:24
栏目: 智能运维

一、CentOS分区备份方法

1. 使用tar命令备份(保留权限,适合全系统或目录备份)

tar命令可将文件系统打包为压缩文件,支持排除无需备份的目录(如/proc、/sys等)。

  • 全系统备份sudo tar cvpzf /backup/backup_$(date +%Y%m%d_%H%M%S).tgz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/mnt --exclude=/media --exclude=/tmp /
    说明:将根目录下除排除目录外的所有内容打包为压缩文件,文件名包含时间戳以便区分。
  • 指定目录备份sudo tar cvpzf /backup/home_backup.tgz /home/
    说明:仅备份/home目录,适合用户数据备份。
  • 恢复操作sudo tar xvpfz /backup/backup_*.tgz -C /
    说明:将备份文件解压到根目录,覆盖现有文件(需谨慎操作,建议先备份当前系统)。

2. 使用rsync命令实现增量备份(高效节省空间)

rsync通过同步文件差异实现增量备份,适合频繁更新的目录(如/home、/var)。

  • 全量备份rsync -avz /source/directory/ /destination/directory/
    说明:将source目录完整复制到destination,保留文件属性(-a)、显示过程(-v)、压缩传输(-z)。
  • 增量备份rsync -avz --delete --link-dest=/previous/backup/ /source/directory/ /new/backup/
    说明:仅同步source中新增或修改的文件,–link-dest指向上次备份目录,相同文件通过硬链接共享,节省空间;–delete删除destination中source不存在的文件,保持一致性。

3. 使用dd命令备份分区(块级备份,适合整盘/分区)

dd命令直接复制分区的块数据,生成镜像文件,适合备份整个分区(包括MBR、分区表)。

  • 备份分区sudo dd if=/dev/sda1 of=/backup/sda1.img bs=4M status=progress
    说明:if指定输入文件(源分区,如/dev/sda1),of指定输出文件(镜像路径),bs设置块大小(4M提升速度),status=progress显示进度。
  • 恢复分区sudo dd if=/backup/sda1.img of=/dev/sda1 bs=4M status=progress
    说明:将镜像文件写回目标分区(如/dev/sda1),操作前需确认目标分区正确,否则会导致数据丢失

4. 使用dump/restore命令(针对文件系统的备份)

dump命令针对ext2/ext3/ext4/XFS等文件系统,支持增量备份(基于文件修改时间);restore用于恢复。

  • 完全备份sudo dump -0uj -f /backup/boot.bak.bz2 /boot/
    说明:-0表示完全备份,-u记录备份时间到/etc/dumpdates,-j使用bzip2压缩,-f指定备份文件路径,/boot/为目标分区。
  • 恢复操作sudo restore -r -f /backup/boot.bak.bz2
    说明:-r表示恢复,按提示选择恢复目录(如/),恢复后需检查文件权限和属性。

5. 使用Clonezilla图形化工具(整盘/分区备份)

Clonezilla是开源的灾难恢复工具,支持整盘克隆、分区备份,生成可启动ISO镜像。

  • 备份步骤
    (1)下载Clonezilla ISO,制作启动盘(如使用Rufus或Etcher);
    (2)从启动盘启动,选择“device-image”模式(备份到镜像文件);
    (3)选择“saveparts”(备份分区)或“savedisk”(备份整盘);
    (4)指定备份存储路径(如外接U盘或网络存储);
    (5)选择要备份的分区(如/dev/sda1),开始备份。
  • 恢复步骤
    (1)从Clonezilla启动盘启动,选择“device-image”模式;
    (2)选择“restoreparts”(恢复分区)或“restoredisk”(恢复整盘);
    (3)选择备份文件,指定目标分区(如/dev/sda1),确认后开始恢复。

二、CentOS分区恢复方法

1. 使用tar命令恢复(对应备份操作)

若之前使用tar备份,可通过解压恢复:sudo tar xvpfz /backup/backup_*.tgz -C /
说明:恢复前需进入救援模式(如使用CentOS安装盘),挂载根分区到临时目录(如/mnt/sysimage),再执行解压命令(如sudo tar xvpfz /backup/backup.tgz -C /mnt/sysimage)。

2. 使用rsync命令恢复(对应增量备份)

若之前使用rsync备份,可通过同步恢复:rsync -avz /backup/source/ /destination/
说明:恢复前需确保目标分区已挂载,同步时会覆盖目标目录中的文件,建议先备份当前数据。

3. 使用dd命令恢复(对应备份操作)

若之前使用dd备份分区镜像,可通过写回恢复:sudo dd if=/backup/sda1.img of=/dev/sda1 bs=4M status=progress
说明:恢复前需确认目标分区(如/dev/sda1)未被挂载,避免数据冲突;操作不可逆,请谨慎执行。

4. 使用dump/restore命令恢复(对应备份操作)

若之前使用dump备份文件系统,可通过restore恢复:sudo restore -r -f /backup/boot.bak.bz2
说明:恢复前需进入救援模式,挂载根分区,再执行恢复命令;恢复后需检查文件系统完整性(如使用fsck)。

5. 使用Clonezilla恢复(对应备份操作)

若之前使用Clonezilla备份,可通过镜像恢复:
(1)从Clonezilla启动盘启动,选择“device-image”模式;
(2)选择“restoreparts”(恢复分区)或“restoredisk”(恢复整盘);
(3)选择备份文件,指定目标分区(如/dev/sda1),确认后开始恢复。

6. LVM逻辑卷恢复(针对LVM分区丢失)

若分区使用LVM(逻辑卷管理),可通过以下步骤恢复:

  • 进入救援模式:使用CentOS安装盘启动,选择“Rescue a CentOS system”,进入shell界面;
  • 查看LVM备份信息cat /etc/lvm/backup/centos(查看卷组、逻辑卷的备份配置);
  • 恢复卷组配置vgcfgrestore -f /etc/lvm/backup/centos centos(恢复卷组centos的配置);
  • 激活卷组vgchange -ay centos(激活卷组,使逻辑卷可见);
  • 挂载并检查mount /dev/centos/root /mnt/sysimage(挂载根逻辑卷),检查数据完整性。

7. /boot分区恢复(针对引导故障)

若/boot分区损坏(如无法进入系统,提示“error 15”),可通过以下步骤恢复:

  • 进入救援模式:使用CentOS安装盘启动,选择“Rescue a CentOS system”,进入shell界面;
  • 挂载/boot分区mount /dev/sda1 /mnt/boot(假设/boot分区为/dev/sda1);
  • 恢复内核和GRUB:从备份中复制内核文件(如vmlinuz-*)和initramfs文件到/mnt/boot,或从安装盘复制;
  • 恢复GRUB配置chroot /mnt/sysimage(切换到原系统环境),grub2-install /dev/sda(重新安装GRUB到硬盘),grub2-mkconfig -o /boot/grub2/grub.cfg(生成GRUB配置文件),退出chroot(exit),重启系统(reboot)。

0