Linux 分区磁盘镜像备份实操指南
一、核心方法与适用场景
- 使用 dd 进行逐字节的块级镜像,适合系统盘/引导盘的“原样”克隆与还原,能完整保留 分区表、MBR、文件系统 等结构。可备份到镜像文件或直接盘对盘克隆。
- 使用 partimage 对单个分区做压缩镜像,仅保存已用块,适合数据分区的快速备份与恢复(不支持所有文件系统)。
- 使用 Clonezilla 进行整机/分区的镜像与批量部署,支持网络环境与多机并发,适合灾备与大规模上线。
- 使用 rsync/tar 做文件级备份(非镜像),便于增量、远程与选择性恢复,适合日常数据与配置备份。
二、用 dd 做分区镜像备份与恢复(含进度与压缩)
- 基本流程
- 建议用 Live USB 启动,避免对正在运行的系统盘写入;确认设备名(如 /dev/sda1),必要时先卸载目标分区。
- 备份分区到镜像:
dd if=/dev/sda1 of=/backup/sda1.img bs=4M status=progress
- 如需节省空间,边备份边压缩:
dd if=/dev/sda1 bs=4M status=progress | gzip > /backup/sda1.img.gz
- 恢复镜像到分区:
gunzip -c /backup/sda1.img.gz | dd of=/dev/sdb2 bs=4M status=progress
或(未压缩)
dd if=/backup/sda1.img of=/dev/sdb2 bs=4M status=progress
- 同步落盘:执行 sync。
- 只备份分区已用扇区(高级)
用 fdisk -u -l 查看分区 end 扇区,按扇区精确备份:
dd if=/dev/sda1 of=part.img bs=512 count=$((END+1))
- 查看 dd 进度
另开终端:kill -USR1 $(pidof dd)(或 watch -n 5 killall -USR1 dd)。
- 重要提示
- 目标空间必须 ≥ 源分区实际占用;恢复时 of= 必须指向正确的分区或文件。
- 盘对盘克隆(如 if=/dev/sda of=/dev/sdb)会复制整盘(含分区表/MBR),谨慎操作。
三、只备份 MBR 与分区表(系统盘必备)
- 备份前 512 字节(含 MBR + 分区表):
dd if=/dev/sda of=mbr.img bs=512 count=1
- 仅备份分区表(跳过引导代码,保留分区表项):
dd if=/dev/sda of=pt.img bs=512 skip=446 count=66
- 恢复:
dd if=mbr.img of=/dev/sda bs=512 count=1
或仅恢复分区表
dd if=pt.img of=/dev/sda bs=512 seek=446 count=66
- 说明:仅恢复分区表不会重写引导代码;整盘恢复(含 MBR)时通常无需单独恢复分区表。
四、其它工具与进阶方案
- partimage(分区镜像,压缩、网络存储)
安装:apt-get install partimage(或启用 EPEL 后 yum install partimage);
备份:partimage -z1 -o -d save /dev/sda2 /nfs/backup/sda2.img.gz;
恢复:partimage restore /dev/sda2 /nfs/backup/sda2.img.gz.000。
- Clonezilla(整机/分区镜像与批量部署)
支持本地介质或网络环境,适合灾备与大规模克隆,仅保存已用块,效率高。
- rsync/tar(文件级备份,便于增量与远程)
示例:
rsync -aAXhv --exclude={“/dev/“,”/proc/”,“/sys/“,”/tmp/”,“/run/“,”/mnt/”,"/media/“,”/lost+found"} / /mnt/backup/
tar -cvpzf backup.tar.gz --exclude=/mnt/backup --exclude=/home//.cache --exclude=/var/cache --one-file-system /
适合日常数据/配置备份与迁移(非逐扇区镜像)。
五、常见问题与排错要点
- 目标空间不足会导致写入失败;镜像恢复前务必确认 of= 指向正确设备/分区。
- 运行中的系统盘不建议直接 dd,可能产生不一致镜像;优先使用 Live USB。
- 盘对盘克隆会覆盖目标盘全部数据;跨容量克隆时,恢复后可用文件系统工具(如 resize2fs)调整分区大小。
- 还原后若网卡名变化(如 eth1),可删除 /etc/udev/rules.d/70-persistent-net.rules 后重启,或调整网络配置。
- 还原完成后执行 sync 并校验关键文件/分区可用性。