温馨提示×

Linux Minimal备份与恢复方法

小樊
38
2025-11-22 13:51:42
栏目: 智能运维

Linux Minimal 备份与恢复方法

一 适用场景与总体策略

  • 面向CentOS Minimal、Ubuntu Minimal、Debian Minimal等最小化安装环境,优先采用“系统级镜像”(整盘/分区)与“文件级归档”(rsync/tar)两类方案,按数据重要性与恢复时效选择或组合使用。
  • 关键取舍:
    • 整盘/分区镜像(如dd、Clonezilla):恢复快、一致性高,适合“同硬件/同分区布局”的一键回滚;占用空间大、跨硬件迁移需额外处理(如 initramfs、fstab、UUID)。
    • 文件级归档(如tar、rsync):灵活、可增量、易跨硬件/跨版本迁移;需准备LiveCD/救援环境逐层恢复并重建引导。
  • 建议始终保留一份“离线/异地”备份,并定期做恢复演练验证可用性。

二 方法一 整盘或分区镜像备份与恢复(dd 或 Clonezilla)

  • 备份
    • 使用 dd 创建磁盘/分区镜像(示例为整盘):
      sudo dd if=/dev/sda of=/mnt/backup/system_$(date +%F).img bs=4M status=progress
      
      提示:目标盘空间需≥源盘已用空间;如需压缩可管道至 gzip。
    • 使用 Clonezilla 制作磁盘/分区镜像:制作启动U盘 → 选择 device-image 模式 → 选择源盘与目标位置(外置硬盘/NFS)→ 执行备份。
  • 恢复
    • 使用 dd 将镜像写回目标盘(会覆盖目标盘分区表与数据,务必确认!):
      sudo dd if=/mnt/backup/system_2025-11-22.img of=/dev/sda bs=4M status=progress
      
    • 使用 Clonezilla 恢复:选择 device-image → 指定备份镜像 → 选择目标磁盘/分区 → 开始恢复。
  • 适用与注意
    • 适合“同硬件”快速还原;跨硬件需检查并更新 /etc/fstab、/boot/grub/grub.cfg、initramfs,必要时在救援环境中重装/重建 GRUB。

三 方法二 文件级归档备份与恢复(tar 或 rsync)

  • 备份
    • 使用 tar 做系统级归档(排除虚拟/临时文件系统,保留权限与属性):
      sudo tar -cvpzf /mnt/backup/full-$(date +%F).tar.gz \
        --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
        --exclude=/tmp --exclude=/lost+found --exclude=/mnt --exclude=/media \
        --exclude=/backup* / 2>>/var/log/tar_backup.err
      
      提示:务必排除存放备份文件的目录(如 /backup),避免递归;建议将错误输出记录到日志。
    • 使用 rsync 做文件级同步(本地或远程):
      # 本地
      sudo rsync -aAXv --delete / /mnt/backup/rootfs/
      
      # 远程
      sudo rsync -aAXv -e ssh / user@remote:/backup/rootfs/
      
      常用选项:-a(归档)、-A(保留ACL)、-X(保留扩展属性)、-v(详细)、–delete(镜像删除)。
  • 恢复
    • 准备恢复环境:用 LiveCD/救援模式启动,挂载目标根分区(示例为 /dev/sda2)到 /mnt
      sudo mount /dev/sda2 /mnt
      
    • 使用 tar 解包系统归档(在 Live 环境中对目标根分区操作):
      sudo tar -xvpzf /mnt/backup/full-2025-11-22.tar.gz -C /mnt
      
      解包后按需创建必要目录(如 /proc /sys /dev /run),然后 chroot 进入新系统完成后续修复。
    • 使用 rsync 回写文件(确保目标分区已挂载到 /mnt):
      sudo rsync -aAXv /mnt/backup/rootfs/ /mnt/
      
  • 适用与注意
    • 灵活、可增量、易跨硬件/跨发行版迁移;恢复时需重建引导(见下一节)。

四 无法启动时的救援与引导修复

  • 进入救援/单用户环境
    • GRUB 菜单按 e 编辑启动项,在内核行末尾追加 systemd.unit=rescue.targetsingle,进入救援/单用户模式;或在启动时进入 GRUB 救援模式
  • 文件系统与根分区修复
    • 检查并修复文件系统(示例分区 /dev/sda2):
      fsck -y /dev/sda2
      mount -o remount,rw /
      
    • /etc/fstab 配置错误导致无法挂载,可在救援环境中临时注释异常行或基于 Live 环境修正后重启。
  • 重建 GRUB 引导
    • BIOS 平台(MBR):
      grub2-install /dev/sda
      grub2-mkconfig -o /boot/grub2/grub.cfg
      
    • UEFI 平台(示例 ESP 分区 /dev/sda1 挂载于 /boot/efi):
      grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
      grub2-mkconfig -o /boot/grub2/grub.cfg
      
    • 若仅 grub.cfg 丢失,可在 chroot 中临时手动引导后执行 grub2-mkconfig 生成配置。
  • 使用 Timeshift 在 Live 环境中恢复(Ubuntu 常见)
    • Ubuntu Live USB 启动 → 安装并启动 Timeshift → 选择“Restore”并指定备份点 → 按向导完成系统回滚。

五 实践建议与注意事项

  • 备份策略
    • 关键目录优先级:/etc、/home、/var(数据库、日志、容器/虚拟机镜像等)、以及 /boot(若单独分区)。
    • 建议“3-2-1”策略:3 份副本、2 种不同介质、1 份异地/离线;定期(如每周)做恢复演练
  • 命令与参数要点
    • tar:务必排除 /proc、/sys、/dev、/run、/tmp、/lost+found、/mnt、/media 与备份文件所在目录;使用 -p 保留权限;建议将错误日志重定向到文件以便核查。
    • rsync:常用 -aAX 组合;跨主机备份注意 SSH 密钥与带宽;本地回写时目标分区需已挂载且为读写
  • 镜像与跨硬件
    • dd/Clonezilla 镜像恢复会覆盖目标盘结构;跨硬件需检查并更新 /etc/fstab(UUID/设备名)initramfsGRUB,必要时在 chroot 中重装内核与重建 initramfs。
  • 自动化与远程
    • 结合 cron 定时执行 tar/rsync 备份,并配合日志轮转;远程备份优先使用 SSH 或企业备份存储,确保传输与存储安全。

0