一样适用于非Linux操作系统
  在linux上用dd命令实现系统镜像备份和恢复,是不是很简单呢?
  对于Windows系统,甚至Mac等等任意系统,其实都可以用dd命令实现系统镜像的备份和恢复。
  因为,Linux的fdisk命令能够识别任意系统下的分区格式。fdisk并不关系分区上的文件系统,甚至有无文件系统都不关心。fdisk总是可以报告分区占用了哪些扇区。
  dd命令也不关心磁盘的文件系统格式,它只是简单地按照要求从指定的位置,复制多少字节数据而已。
  dd命令实现镜像备份和恢复,比Ghost软件简单和强大多了。使用ghost软件,依然需要用户进行复杂而危险的磁盘分区操作。
  而使用fdisk和dd这两条命令,一切都免了!
  压缩和解压缩
  可能我们需要备份的分区很大,使用dd命令生成的镜像文件也很大。存储和传输这些镜像不太方便。  我们也可以使用压缩程序压缩生成的镜像文件。 这里,我选择使用gzip程序,配合dd命令一起使用。
  gzip参数:
  -c 表示输出到stdout
  -d  表示解压缩
  -1 表示快压缩
  -9 表示好压缩
  默认使用的是-6压缩级别。
  要使用 dd 和 gzip 生成压缩的镜像文件,可以执行命令:
  dd   bs=512 count=[fdisk命令中大的end数+1] if=/dev/sda | gzip -6 > /ghost.img.gz
  还原时,可以执行下列命令:
  gzip -dc /ghost.img.gz.gz | dd of=/dev/sda
  提醒:
  如果你把镜像恢复到另一台计算机上,你可能会发现你的网卡是eth1,而不是eth0。这是因为/etc/udev/rules.d/70-persistent-net.rules文件把你做镜像的计算机的网卡作为eth0登记了。
  如果你的网络脚本对eth0进行了处理,而没有对eth1进行处理,那么不修改网络脚本,你可能无法上网了。
  也许你会希望在做镜像之前,先删除 /etc/udev/rules.d/70-persistent-net.rules 文件。这样你恢复镜像时,网卡的名字是eth0。   不会造成你在恢复后的计算机上无法上网的问题了。
  注意:
  好在dd生成镜像之前,先umount所有 if和of 设备的分区。这样可以确保在dd的过程中文件系统没有被改变。
  在完成dd(生成镜像和恢复镜像)后,执行sudo sync,确保数据被真正写入到硬盘上。
  另外,如果你想要对整个硬盘进行备份和恢复,而不是只备份和恢复部分分区,那么请把dd命令中的 count=[fdisk命令中大的end数+1]   去掉。bs=512也可以去掉。