1. 前言
磁盘克隆是将一个硬盘(或分区)的内容复制到另一个磁盘或“映像”文件的过程。我使用rsnapshot工具定期备份,但我也每月克隆一次或两次硬盘。此工具允许我快速恢复操作系统和安装的软件。 Linux附带了各种用于执行磁盘克隆的实用程序。在这篇文章中,我将列出我最喜欢的开源磁盘克隆软件。
2. linux系统克隆工具之又老又旧的`dd`命令
dd命令允许您以原始格式进行低级别的数据复制和转换。它将标准输入复制到标准输出。它还可以用于备份硬盘驱动器的引导扇区(MBR)或使用/dev/zero或/dev/random来销毁数据。
使用案例:
把/dev/sdb3分区克隆到另一个名为/dev/sdc3的分区,请输入:
- [root@zcwyou ~]# dd if=/dev/sdb3 of=/dev/sdc3 bs=4096 conv=noerror
把硬盘/dev/sdc 的数据克隆到 /dev/sdd
- [root@zcwyou ~]# dd if=/dev/sdc of=/dev/sdd bs=1M conv=noerror
您可以将名为/dev/sda1的磁盘分区数据复制到名为backup.sda1.mm.dd.yy.img文件的磁盘映像文件:
- [root@zcwyou ~]# dd if=/dev/sda1 of=/path/to/safe/location/backup.sda1.07.06.19.img bs=4096 conv=noerror
或者
- [root@zcwyou ~]# dd if=/dev/sda1 of=/nfs/backup/images/backup.sda1.07.06.19.img bs=1M conv=noerror
恢复镜像文件
- [root@zcwyou ~]# dd if=/nfs/backup/images/backup.sda1.07.28.12.img of=/dev/sda1 bs=1M conv=noerror
无论操作系统是什么,dd命令都可以备份任何分区。您可以在FreeBSD / OpenBSD / Mac OS X / MS-Windows等中使用它:
3. 使用克隆工具命令`ddrescue`
ddrescue命令将数据从一个文件或块设备复制到另一个文件或块设备,在读取遇到错误时它会自动尝试修复数据。 比如dd命令失败的场合,我们可以尝试使用ddrescue工具:
- [root@zcwyou ~]# ddrescue /dev/sda /dev/sdb
4. 使用`partimage`命令备份分区数据并压缩镜像文件
partimage命令将磁盘分区备份到映像文件中并恢复它们(很像Ghost)。您可以使用Debian / Ubuntu Linux下的apt-get命令安装相同的命令:
- [root@zcwyou ~]# ddrescue /dev/sda /dev/sdb
如果您使用的是RHEL/Fedora/SL/ Red Hat/ CentOS Linux,请打开EPEL repo并键入以下yum命令:
- [root@zcwyou ~]# yum install partimage
键入partimage命令以查看各种参数和选项
- [root@zcwyou ~]# partimage
使用partimage命令备份分区数据并压缩镜像文件
如上图所,按菜单指引进行操作。
使用案例:
创建/dev/sda2的映像(确保未挂载/dev/sda2):
- [root@zcwyou ~]# partimage -z1 -o -d save /dev/sda2 /nfs/backup/laptop.wks01.sda1.home_06_07_2019.gz
恢复镜像内容:
- [root@zcwyou ~]# partimage restore /dev/sda2 /nfs/backup/laptop.wks01.sda1.home_07_06_2019.gz.000
请注意,partimage只会复制分区的已使用分区中的数据。这样做是为了提高速度和效率,不会将空闲块写入图像文件。由于在顺序扇区基础上处理分区,因此磁盘传输时间最大化并且搜索时间最小化。
可以使用partimage网络支持或使用Samba / NFS(网络文件系统)在网络中保存分区。这提供了在磁盘崩溃后执行硬盘分区恢复的功能。您需要安装partimage-server软件包,它为远程映像提供服务器守护程序,就像Ghost一样。
5. 使用`Clonezilla`命令
如果您要替换Norton Ghost企业版,请尝试使用Clonezilla。它提供以下功能:
- 灾难恢复
- 磁盘克隆
- 磁盘镜像
- 部署解决方案
- 自由和开源
该软件允许您进行裸机备份和恢复。 Clonezilla可以使用以下任何一种模式:
Clonezilla live – 在家中使用此功能或单机备份和还原.
Clonezilla server edition – 在办公室或数据中心使用它进行大规模部署,它可以同时克隆许多(40多台!)计算机。 Clonezilla仅保存和恢复硬盘中使用的块。这提高了克隆效率.
使用Clonezilla命令制作系统镜像和恢复分区数据
6. 使用`Mondo`免费灾难恢复软件
我经常使用的另一个好的免费灾难恢复软件。它适用于Linux / FreeBSD,支持克隆磁带,磁盘,USB设备,网络和CD / DVD作为备份媒体,多个文件系统,LVM,软件和硬件RAID。可以从包括OBDR磁带支持或CD / DVD / USB介质的物理介质或通过PXE从网络完成恢复。
该软件由Lockheed-Martin,Nortel Networks,西门子,惠普,IBM,NASA的JPL,美国农业部,数十家小公司以及全球数万用户使用。
使用Mondo免费灾难恢复软件
7. 使用`Redo backup and recovery`备份和恢复数据
Redo backup and recovery是一个免费的备份和灾难恢复软件。它从可启动的Linux CD映像运行,具有GUI,并且能够进行裸机备份和磁盘分区恢复。它可以使用外部硬盘驱动器和网络共享。它是最简单的点击式开源备份和恢复解决方案。您可以将镜像存储在外部驱动器或网络共享上,例如基于nfs的共享文件夹。
使用Redo backup and recovery备份和恢复数据
8. 使用`Trinity Rescue Kit`恢复和修复文件
Trinity Rescue Kit或TRK是一个免费的实时Linux发行版,专门用于MS-Windows系统上的恢复和修复操作,但同样适用于Linux恢复问题,如救援,修复,密码重置和磁盘克隆。一些功能:
- 使用改进的winpass工具重置Windows密码。
- 5种不同的病毒扫描产品集成在一个统一的命令行中,具有在线更新功能。
- 由于ntfs-3g,完整的ntfs写支持
- Winclean,一种清除计算机上各种不必要的临时文件的实用程序。
- 通过组播在网络上克隆计算机。
- 名为“pi”的贡献备份实用程序,用于自动执行本地计算机备份
- 轻松找到并挂载所有本地文件系统的脚本
- 使用实用程序和过程恢复和取消删除文件
- 恢复丢失的分区
使用Trinity Rescue Kit恢复和修复文件
9. 推荐的工具
对于底层数据的还原,我更喜欢dd命令(gziped镜像),因为它包括引导扇区,引导分区和根分区的副本。 dd命令适用于小型设置或家庭用户。但是,对于大型设置和数据中心,由于易于使用和可靠性,我更喜欢使用clonezilla或Mondo。