Linux镜像如何备份数据
小樊
40
2025-11-22 14:02:39
Linux 镜像备份与恢复实用指南
一、方法总览与选择建议
- dd:整盘/分区逐字节拷贝,生成原始镜像 img,适合“同硬件/同分区布局”的克隆与迁移。操作需谨慎,目标盘容量需不小于源盘已用数据量。
- Clonezilla(再生龙):基于partclone的向导式磁盘/分区克隆与镜像,支持网络/外置盘,适合批量与离线备份。
- tar 打包:按文件级备份,保留权限与属性,适合“文件级恢复/迁移”,不依赖磁盘布局,易于验证与增量思路配合。
- rsync:文件级同步,天然适合增量备份与日常数据保护,可本地或远程。
- rdiff-backup:基于 rsync 的差异备份,保留历史版本,便于回滚。
- LVM Snapshot + 任意备份工具:先快照再备份,降低在线系统备份的一致性与锁表风险。
以上工具与方法均为 Linux 常见、稳定的备份手段,可按场景组合使用。
二、整盘镜像备份与恢复(适合迁移/克隆)
- 使用 dd 制作磁盘镜像(推荐在 LiveCD/救援环境中执行,避免运行中系统写入干扰):
- 查看设备:lsblk、fdisk -l
- 备份:sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress
- 压缩备份(节省空间):sudo dd if=/dev/sda bs=4M | gzip > /backup/sda.img.gz
- 还原:sudo dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
- 还原压缩镜像:gzip -dc /backup/sda.img.gz | sudo dd of=/dev/sda bs=4M status=progress
- 提示:目标盘容量需≥源盘已用数据;还原会覆盖目标盘分区表与数据,务必核对设备名。
- 使用 Clonezilla 进行离线整盘/分区镜像:
- 制作可启动 U 盘 → 选择 device-device 或 device-image → 选择源盘/分区与目标介质(本地/网络)→ 按向导执行。
- 关键注意:
- 建议在LiveCD/救援模式下执行 dd/还原,避免对运行中的系统盘写入。
- 还原前确认目标磁盘容量足够;跨硬件迁移时关注 UUID、网卡名 等差异(必要时调整 /etc/fstab、/boot/grub/grub.cfg、网卡规则)。
- 操作完成后执行 sync 确保缓存落盘。
三、文件级备份与恢复(适合日常与版本化)
- 使用 tar 做系统/目录的打包备份(排除虚拟与临时文件系统):
- 备份:cd / && sudo tar -cvpzf /backup/fullbackup_$(date +%F).tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/tmp --exclude=/backup /
- 恢复:sudo tar -xvpzf /backup/fullbackup_YYYY-MM-DD.tar.gz -C /
- 说明:保留权限/属性,适合“文件级恢复/迁移”,不依赖磁盘/分区布局。
- 使用 rsync 做增量备份(本地或远程):
- 本地:rsync -aAX --info=progress2 /home /backup/home_$(date +%F)
- 远程:rsync -avz -e ssh /home user@backup-server:/backup/home/
- 说明:-aAX 保留权限/ACL/xattrs,适合日常增量与快速回滚。
- 使用 rdiff-backup 做差异历史备份:
- 备份:rdiff-backup /home /backup/rdiff_home
- 回滚到 7 天前:rdiff-backup -r 7D /backup/rdiff_home /home_rollback
- 删除 30 天前的历史:rdiff-backup --remove-older-than 30D /backup/rdiff_home
四、高级与自动化建议
- LVM Snapshot:先创建快照卷,再对快照做 tar/rsync/dd,降低在线备份的一致性问题(适合数据库、业务运行中环境)。
- 备份策略:结合业务选择完全备份 + 增量/差异;明确保留周期与异地/离线副本;定期做恢复演练与校验(如校验和/还原测试)。
- 跨硬件迁移注意:检查并必要时调整 /etc/fstab 的 UUID、/boot/grub/grub.cfg、网卡规则(如删除或调整 /etc/udev/rules.d/70-persistent-net.rules),确保可启动与网络正常。
五、快速命令清单
- 整盘镜像(dd):备份 sudo dd if=/dev/sda of=/backup/sda.img bs=4M status=progress;还原 sudo dd if=/backup/sda.img of=/dev/sda bs=4M status=progress
- 压缩镜像:备份 dd if=/dev/sda bs=4M | gzip > sda.img.gz;还原 gzip -dc sda.img.gz | sudo dd of=/dev/sda bs=4M status=progress
- 文件级打包(tar):备份 cd / && sudo tar -cvpzf /backup/full_$(date +%F).tar.gz --exclude=/proc --exclude=/lost+found --exclude=/sys --exclude=/mnt --exclude=/media --exclude=/tmp --exclude=/backup /;恢复 sudo tar -xvpzf /backup/full_YYYY-MM-DD.tar.gz -C /
- 增量同步(rsync):本地 rsync -aAX --info=progress2 /home /backup/home_$(date +%F);远程 rsync -avz -e ssh /home user@host:/backup/home/
- 差异历史(rdiff-backup):备份 rdiff-backup /home /backup/rdiff_home;回滚 rdiff-backup -r 7D /backup/rdiff_home /home_rollback