文件复制工具dd
来源:互联网 发布:win7怎么禁止安装软件 编辑:程序博客网 时间:2024/05/17 09:04
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝
的同时进行指定的转换
===================================================================
二、dd指令使用
1、语法格式
dd [operand]
dd [option]
2、选项参数
dd指令选项详解
if=file
输入文件名,缺省为标准输入
of=file
输出文件名,缺省为标准输出
ibs=bytes
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)
obs=bytes
一次写 bytes 个字节(即一个块大小为 bytes 个字节)
bs=bytes
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs
cbs=bytes
一次转换 bytes 个字节,即转换缓冲区大小
skip=blocks
从输入文件开头跳过 blocks 个块后再开始复制
seek=blocks
从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)
count=blocks
仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数
conv=conversion[,conversion...]
用指定的参数转换文件
ascii
转换 EBCDIC 为 ASCII
ebcdic
转换 ASCII 为 EBCDIC
ibm
转换 ASCII 为 alternate EBCDIC
block
把每一行转换为长度为 cbs 的记录,不足部分用空格填充
unblock
使每一行的长度都为 cbs ,不足部分用空格填充
lcase
把大写字符转换为小写字符
ucase
把小写字符转换为大写字符
swab
交换输入的每对字节
noerror
出错时不停止
notrunc
不截短输出文件
sync
把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
注意:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number m,kB=1000,K=1024,MB=1000*1000,M=1024*1024,GB=1000*1000*1000,G=1024*1024*1024
===================================================================
三、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
- 【dd】转换并复制文件
- Unity 文件复制工具
- Ubuntu使用dd复制文件到sd卡上有问题,
- java 文件复制 文件夹复制工具类
- dd命令复制硬盘
- java复制文件工具类
- Java复制文件工具类
- linux用dd工具制作img镜像文件
- 在不复制文件的情况下,通过dd命令将文件尾巴删除的方法
- linux的dd命令:文件复制与备份、快速生成大文件、大小写转换
- dd复制ASM中的datafile
- 硬盘dd复制linux系统
- 源码文件复制工具 for ACMer
- MFC根据前缀批量复制文件工具
- 文件生成或复制的工具类
- 第九章 dd备份工具
- 加强版dd工具dc3dd
- IOS动画学习
- 实例讲解2--正则表达式a
- 把数字转化成固定长度的字符串,如00004
- Oracle CSS Service
- adb push permission denied
- 文件复制工具dd
- NSDictnary 等对象的继承实现
- 工厂方法——设计模式系列
- 【学习知识】详解常见漏洞扫描器及网络扫描技术(图)
- public、protected和private
- java socket 通讯
- 常用的排序算法
- C/C++数组名与指针区别深入探索
- fortran中调用C封装的函数