一、dd指令简介
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝 的同时进行指定的转换 =================================================================== 二、dd指令使用 1、语法格式 dd [operand] dd [option] 2、选项参数
=================================================================== 三、dd实例讲解 1、数据备份与恢复 1)整盘数据备份与恢复 (1)备份 # #将本地的/dev/hdx整盘备份到/dev/hdy dd if=/dev/hdx of=/dev/hdy ##将/dev/hdx全盘数据备份到指定路径的image文件 dd if=/dev/hdx of=/path/to/image ##备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径 (bzip2工具也一样可使用) dd if=/dev/hdx | gzip > /path/to/image.gz (2)恢复 ##将备份文件恢复到指定盘 dd if=/path/to/image of=/dev/hdx ##将压缩的备份文件恢复到指定盘 gzip -dc /path/to/image.gz | dd of=/dev/hdx ---------------------------------------------------------------------------------------------------------------------------- 2)利用netcat与dd指令进行远程备份 (1)备份 假设:接收端的IP地址为:192.168.1.200;发送端的IP地址为:192.168.1.100 第一步:在接收端上执行命令:nc -l 1234 | dd of=/dev/sdb1 或者 nc -l 1234 | gzip -dc | dd of=/dev/sdb1 ,即:nc指令的输出为标准输出,通过管道将nc指令的输出作为dd指令的输入,最后将数据写入/dev/sdb1中 (2)恢复 第二步:在发送端上执行命令:dd if=/dev/hda1 | nc 192.168.1.200 1234 或者 dd if=/dev/hda1 | gzip | nc 192.168.1.200 1234,即:将/dev/hda1设备上的数据作为dd的输入,而标准输出作为dd指令的输出,但是由于管道,所以将dd的标准输出将作为nc指令的输出 ---------------------------------------------------------------------------------------------------------------------------- 3)备份MBR (1)备份 ##备份磁盘开始的512Byte大小的MBR信息到指定文件 dd if=/dev/hdx of=/path/to/image count=1 bs=512 (2)恢复 ## 将备份的MBR信息写到磁盘开始部分 dd if= /path/to/image of= /dev/hdx ---------------------------------------------------------------------------------------------------------------------------- 4)备份软盘 ##将软驱数据备份到当前目录的disk.img文件 dd if=/dev/fd0 of=disk.img count=1 bs=1440k ---------------------------------------------------------------------------------------------------------------------------- 5) 拷贝内存资料到硬盘 ## 将内存里的数据拷贝到backup目录下的mem.bin文件 dd if=/dev/mem of=/backup/mem.bin bs=1024 ---------------------------------------------------------------------------------------------------------------------------- 6)将光盘制作成ISO镜像文件 ##拷贝光盘数据到backup文件夹下,并保存为cd.iso文件,再进行刻录 dd if=/dev/cdrom of=/backup/cd.iso cdrecord -v cd.iso ---------------------------------------------------------------------------------------------------------------------------- 2、增加swap分区文件大小 第一步:创建一个足够大的文件(250M) dd if=/dev/zero of=/swapfile bs=1024 count=262144 第二步:把这个文件变成swap文件 mkswap /swapfile 第三步:启用这个swap文件 swapon /swapfile 第四步: 在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行 /swapfile swap swap defaults 0 0 注意:查看当前swap使用情况,请查看文件/proc/swaps;创建交换分区其实还有另一种方法:fdisk指令法 ---------------------------------------------------------------------------------------------------------------------------- 3、销毁磁盘数据 ##利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作无法执行 dd if=/dev/urandom of=/dev/hda1 ---------------------------------------------------------------------------------------------------------------------------- 4、磁盘管理 (1) 得到最恰当的block size # #通过比较dd指令输出中所显示的命令执行时间(选时间最少的那个),即可确定系统最佳的block size大小 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 由上图可得到,/dev/sdb这块硬盘最好使用block size=4096最好 (2) 测试硬盘读写速度 ## 通过下面两个命令输出的执行时间,可以计算出测试硬盘的读/写速度 dd if=/root/1Gb.file bs=64k | dd of=/dev/null dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000 由上图可知:/dev/sdb这块硬盘的写的速度 由上图可知:/dev/sdb这块硬盘的读的速度 (3)修复硬盘 ##当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数 据起死回生。且这个过程是安全,高效的 dd if=/dev/sda of=/dev/sda |
文件复制工具dd
最新推荐文章于 2024-04-23 22:51:23 发布
【转】使用dd工具来备份数据
2011-08-26 17:54
转载自
9812658
最终编辑
9812658