注意:只要时运行备份,建议都使用Ubuntu的Live CD功能启动来操作(即启动盘下的试用Ubuntu而不安装的功能),因为这样可以减少资源占用造成的备份不完整。

说明:

1、使用DD进行硬盘备份可以实现类似Ghost的基本功能,比如整个硬盘备份(包括MBR),单分区备份,单备份MBR,硬盘对拷。

2、如果分区对分区进行拷贝时,当两个分区大小不一致的情况,在恢复完之后需要重新调整新分区大小。两个硬盘对拷的情况也需要这样去调整。

3、使用DD备份分区或整块硬盘时,如果分区是100G的容量,而只使用了20G的容量,那么备份后输出的文件大小是100G;这种情况可以使用压缩解决,不过不一定有效,结果可能还是一样很大。

4、DD不能解决文件排序,磁盘碎片整理等问题,所以在备份后文件的大小问题很难解决。

5、DD一般使用在本机的硬盘备份和还原上,也就是针对原分区的操作。或者硬盘对拷。因为这样完成后不需要修改任何东西。

6、如果使用DD把系统还原到另一个新硬件上,估计要修改很多东西,待实践。

7、DD还可以用做测试硬盘速度。

DD命令:

语法

dd [选项]

选项

#注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
if=文件名:输入文件名,缺省为标准输入。即指定源文件。<if=input file>
of=文件名
:输出文件名,缺省为标准输出。即指定目的文件。<of=output file>
ibs=
bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
#注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=conversion:用指定的参数转换文件。
          ascii:转换ebcdic为ascii
          ebcdic:转换ascii为ebcdic
          ibm:转换ascii为alternate ebcdic
          block:把每一行转换为长度为cbs,不足部分用空格填充
          unblock:使每一行的长度都为cbs,不足部分用空格填充
          lcase:把大写字符转换为小写字符
          ucase:把小写字符转换为大写字符
          swab:交换输入的每对字节
          noerror:出错时不停止
          notrunc:不截短输出文件
          sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

使用实例:

说明:在Linux上,一块硬盘或者一个分区都由一个目录表示,一般存在于系统根目录的/dev/之下。例如/dev/hda代表你的第一块IDE硬盘,/dev/sdb代表第二块SCSI硬盘,/dev/fd0代表系统的软盘驱动器等等。同样每块硬盘上的分区也有独特的目录名,例如/dev/hda1表示你第一块硬盘上的第一个分区。

1、将本地的/dev/hdb整盘备份到/dev/hdd

dd if=/dev/hdb of=/dev/hdd

2、将/dev/hdb全盘数据备份到指定路径的image文件

dd if=/dev/hdb of=/root/image

3、将备份文件恢复到指定盘

dd if=/root/image of=/dev/hdb

4、备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径

dd if=/dev/hdb | gzip > /root/image.gz

5、将压缩的备份文件恢复到指定盘

gzip -dc /root/image.gz | dd of=/dev/hdb

6、备份与恢复MBR

备份磁盘开始的512个字节大小的MBR信息到指定文件:

dd if=/dev/hda of=/root/image count=1 bs=512

count=1指仅拷贝一个块;bs=512指块大小为512个字节。

恢复:

dd if=/root/image of=/dev/had

将备份的MBR信息写到磁盘开始部分。

7、备份软盘

dd if=/dev/fd0 of=disk.img count=1 bs=1440k (即块大小为1.44M)

8、拷贝内存内容到硬盘

dd if=/dev/mem of=/root/mem.bin bs=1024 (指定块大小为1k)

9、拷贝光盘内容到指定文件夹,并保存为cd.iso文件

dd if=/dev/cdrom(hdc) of=/root/cd.iso

10、增加swap分区文件大小

第一步:创建一个大小为256M的文件:

dd if=/dev/zero of=/swapfile bs=1024 count=262144

第二步:把这个文件变成swap文件:

mkswap /swapfile

第三步:启用这个swap文件:

swapon /swapfile

第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:

/swapfile swap swap default 0 0

11、销毁磁盘数据

dd if=/dev/urandom of=/dev/hda1

注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。

12、测试硬盘的读写速度

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/root/1Gb.file bs=64k | dd of=/dev/null

通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。

13、确定硬盘的最佳块大小:

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。

14、修复硬盘:

dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda

当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magnetic flux point,当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数 据起死回生。并且这个过程是安全、高效的。

15、利用netcat远程备份

dd if=/dev/hda bs=16065b | netcat < targethost-ip > 1234

在源主机上执行此命令备份/dev/hda

netcat -l -p 1234 | dd of=/dev/hdc bs=16065b

在目的主机上执行此命令来接收数据并写入/dev/hdc

netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img

以上两条指令是目的主机指令的变化分别采用bzip2、gzip对数据进行压缩,并将备份文件保存在当前目录。

16、将一个很大的视频文件中的第i个字节的值改成0x41(也就是大写字母A的ASCII值)

echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc

17、备份分区

dd if=/dev/sda1 of=~/partition1.img 

18、光盘备份

dd if=/dev/cdrom of=tgsservice.iso bs=2048

注意:如果光盘是自动挂载的,在使用dd命令创建iso映像之前最好umount掉以避免造成对CD ROM不必要的访问。

19、在上面的拷贝过程中,并不知道拷贝了多少,只有最终结束时才显示出时间、拷贝速度。为了查看进度,可以在另一个终端输入:

sudo watch -n 5 killall -USR1 dd

20、还原分区表,跳过主引导记录

dd if=/backup/mbr.img of=/dev/sda bs=1 count=64 skip=446 seek=446

使用技巧:

1、修复还原到大小不一样的分区时的设置:

sudo dd if=/dev/sda1 of=/dev/sdb1
sudo e2fsck -f /dev/sdb1
sudo resize2fs /dev/sdb1

2、硬盘和硬盘对拷时不需要上述设置。

3、在dd生成镜像之前,先umount所有if和of设备的分区。这样可以确保在dd的过程中文件系统没有被改变。

4、如果把镜像恢复到另一台计算机上,可能会发现网卡是eth1,而不是eth0。这是因为/etc/udev/rules.d/70-persistent-net.rules文件把做镜像的计算机的网卡作为eth0登记了。  如果网络脚本对eth0进行了处理,而没有对eth1进行处理,那么不修改网络脚本,可能就无法上网。也许会希望在做镜像之前,先删除/etc/udev/rules.d/70-persistent-net.rules文件。这样恢复镜像时,网卡的名字就是eth0。   就不会造成在恢复后的计算机上无法上网的问题。

5、如果硬件不一样的机器,可以尝试以下方法:

sudo chroot
#更新grub
sudo update-grub
#更新fstab的UUID
/etc/fstab

参考:

http://blog.csdn.net/linux_hua130/article/details/51346176

http://www.4wei.cn/archives/1002013

http://www.linuxde.net/2013/03/12928.html

http://tieba.baidu.com/p/2840814432

http://blog.csdn.net/shendl/article/details/7384755

http://blog.csdn.net/shendl/article/details/7960219(把物理机转成虚拟机镜像)

http://wiki.ubuntu.org.cn/Ubuntu%E5%A4%87%E4%BB%BD%E4%B8%8E%E8%BF%98%E5%8E%9F#.E5.A4.87.E4.BB.BDmbr

http://forum.ubuntu.org.cn/viewtopic.php?t=469838

Linux系统备份还原工具1(DD)的更多相关文章

  1. Linux系统备份还原工具2(TAR/压缩工具)

    相比DD备份还原工具,TAR压缩还原工具更加小巧和灵活,但是不能备份MBR.当然可以通过重新安装GRUB来解决MBR的这一问题.同时,TAR的做法也是官方推荐的. 注意:一个硬盘启动时最新经过MBR( ...

  2. Linux系统备份还原工具1(DD)(应用实例)

    DD使用教程:http://www.cnblogs.com/EasonJim/p/7442223.html 以下实例没经过大量测试,可能在一些机器上不会有效. 一般围绕以下几点进行设置: 1.dd完后 ...

  3. Linux系统备份还原工具3(使用Clonezilla/再生龙对硬盘进行镜像和克隆,类似于Ghost)

    说明:经过实验验证,再生龙主要是适合在本机还原原大小的分区,不适合将镜像备份还原到不同大小分区,期间可能有很多莫名奇妙的问题出现.硬盘对拷和PXE网刻这些没发现什么不好.如果要还原到别的电脑镜像制作时 ...

  4. Linux系统备份还原工具4(rsync/远程数据同步工具)

    rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http:/ ...

  5. LINUX系统备份还原

    1.Linux系统备份工具 REAR (RELAX-AND-RECOVER) https://blog.csdn.net/qq43748322/article/details/78710754?loc ...

  6. linux 系统备份还原

    操作系统或文件备份 tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude ...

  7. linux系统 备份与还原

    linux 系统备份与还原备份系统:1.成为 root 用户: su root2.进入根目录: cd /3.用tar命令打包压缩:tar cvpjf 压缩包名.tar.bz2 --exclude=/压 ...

  8. 【实用Windows双系统一键备份还原工具】Winclone Pro for Mac

    [简介] 今天和大家分享最新的 Winclone Pro 7.3.3 Mac 版本,这是一款Mac上强大易用的Windows分区备份还原工具,类似于Windows上的一键Ghost,能够将 PC 上的 ...

  9. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十三):系统备份还原

    系统备份还原 在很多时候,我们需要系统数据进行备份还原.我们这里就使用MySql的备份还原命令实现系统备份还原的功能. 新建工程 新建一个maven项目,并添加相关依赖,可以用Spring boot脚 ...

随机推荐

  1. 【XSY3141】哲学家 计算几何 线段树

    题目描述 有一个平面,最开始平面上没有任何点. 你要按顺序加入 \(n\) 个点,求加入每个点后有多少三角形严格包含原点(在边界上不算). \(n\leq 400000\),无重点. 题解 其实这题本 ...

  2. AWS设置允许root登陆

    Refer to the following to set root login: sudo -s (to become root) vi /root/.ssh/authorized_keys Del ...

  3. 忘掉Ghost!利用Win10自带功能,玩转系统备份&恢复 -- 关于系统恢复的深度思考

    上一篇文章讲了,系统可以正常启动,如何从D盘恢复系统到C盘的情况. 如果系统不能启动,要怎么去恢复系统,恢复后会是什么结果? 先说明系统结构: 系统版本:Windows 10 (1709) 硬盘1(5 ...

  4. 【洛谷P1516】青蛙的约会

    题目大意:给定 \(a,b,c\),求线性同余方程 \(ax+by=c\) 的最小正整数解. 题解:首先判断方程是否有解,若 c 不能整出 a 与 b 的最大公约数,则无解.若有解,则利用扩展欧几里得 ...

  5. python中的GIL详解

    GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可 ...

  6. vsftpd启动问题简记

    centos7 能以ipv6方式启动,启动只需修改配置如下 如需同时启动到ipv4跟ipv6,需拷贝配置文件,一份配置中只监听ipv4,一份配置中只监听ipv6 centos6中无法启动到ipv6,错 ...

  7. 深入浅出mybatis之返回主键ID

    目录 添加单一记录时返回主键ID 在映射器中配置获取记录主键值 获取新添加记录主键字段值 添加批量记录时返回主键ID 获取主键ID实现原理 添加记录后获取主键ID,这是一个很常见的需求,特别是在一次前 ...

  8. 使用ZooKeeper协调多台Web Server的定时任务处理(方案2)

    承接上个博文, 这次是方案2的实现, 本方案的特点:1. 该方案能很好地从几台服务器中选出一个Master机器, 不仅仅可以用于定时任务场景, 还可以用在其他场景下. 2. 该方案能实现Master节 ...

  9. Geometric regularity criterion for NSE: the cross product of velocity and vorticity 2: $u\times \om\cdot \n\times \om$

    在 [Lee, Jihoon. Notes on the geometric regularity criterion of 3D Navier-Stokes system. J. Math. Phy ...

  10. 《尚学堂_史上最易懂的设计模式视频》--章节5 动态代理-JDK6自带的编译器

    所有的设计模式中最难的一个 ==组合和聚合是有很大区别的 组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上: 比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象 ...