linux下dd命令详解及应用实例

来源:互联网 发布:淘宝个人尺码设置在哪 编辑:程序博客网 时间:2024/06/06 01:41

先简要介绍下dd的参数,后边通过几个实例介绍dd的应用,参考了其他网友的资料,在此一

并感谢,水平有限文中有什么错误请大家指正。

dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝

的同时进行指定的转换。

1. 命令简介

dd 的主要选项:

指定数字的地方若以下列字符结尾乘以相应的数字:

b=512, c=1, k=1024, w=2, xm=number m

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)字符补齐。

2.实例分析

2.1.数据备份与恢复

2.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工具进行压缩,保存到指定路径:dd if=/dev/hdx | gzip

>/path/to/image.gz

恢复

将备份文件恢复到指定盘:dd if=/path/to/image of=/dev/hdx

将压缩的备份文件恢复到指定盘 :gzip -dc /path/to/image.gz | dd of=/dev/hdx

2.1.2.利用netcat远程备份

在源主机上执行此命令备份/dev/hda:dd if=/dev/hda bs=16065b | netcat < targethost-IP >

1234

在目的主机上执行此命令来接收数据并写入/dev/hdc:netcat -l -p 1234 | dd of=/dev/hdc

bs=16065b

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

前目录 :

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

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

2.1.3.备份MBR

备份:

备份磁盘开始的512Byte大小的MBR信息到指定文件:dd if=/dev/hdx of=/path/to/image

count=1 bs=512

恢复:

将备份的MBR信息写到磁盘开始部分:dd if=/path/to/image of=/dev/hdx

2.1.4.备份软盘

将软驱数据备份到当前目录的disk.img文件:dd if=/dev/fd0 of=disk.img count=1 bs=1440k

2.1.5.拷贝内存资料到硬盘

将内存里的数据拷贝到root目录下的mem.bin文件:dd if=/dev/mem of=/root/mem.bin

bs=1024

2.1.6.从光盘拷贝iso镜像

拷贝光盘数据到root文件夹下,并保存为cd.iso文件:dd if=/dev/cdrom of=/root/cd.iso

2.2.增加Swap分区文件大小

创建一个足够大的文件(此处为256M):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

2.3.销毁磁盘数据

利用随机的数据填充硬盘:dd if=/dev/urandom of=/dev/hda1

在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作

无法执行。

2.4磁盘管理

2.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

2.4.2测试硬盘读写速度

通过两个命令输出的执行时间,可以计算出测试硬盘的读/写速度:

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

hdd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

2.4.3.修复硬盘

当硬盘较长时间(比如一两年年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到

这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致

硬盘报废。下面的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

dd if=/dev/sda of=/dev/sda

2.4.4.刻录光盘

当然您能够拿这个来方便的拷贝光碟(注意,您的光碟是标准的 iso9660格式才能够这么做唷!)
       dd if=/dev/cdrom of=cdrom.iso
       其中 if 后面连同 of 后面的内容依您的需求调整。
       然后给系统这个指令就能够烧了:
       cdrecord -v cdrom.iso

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩多动调皮怎么办 手心老是出汗是怎么办 孩子吃饭特别慢怎么办 小孩子老想睡觉怎么办 孩子下午上课犯困怎么办 小孩子有多动症该怎么办 初中写作业犯困怎么办 孩子晚上学习困怎么办 小孩子容易兴奋激动怎么办 中考时过度兴奋怎么办 小孩兴奋不睡觉怎么办 孩子突然反常不听话怎么办? 婴儿亢奋不睡觉怎么办 宝宝听力筛查没通过怎么办 7个多月宝宝缺钙怎么办 暑假孩子天天看电视怎么办 移植后天天便秘怎么办 天天拉屎还便秘怎么办 孩子不爱吃鸡蛋怎么办 孩子看书没耐心怎么办 5岁宝宝鼻炎怎么办 手术后认知障碍怎么办 孩子很调皮好动怎么办 学生打家长该怎么办 老师打学生家长该怎么办 三岁儿子多动症怎么办 小孩一直缺锌怎么办 宝宝严重缺锌怎么办 儿童缺钙缺锌怎么办 怀孕前期喝酒了怎么办 怀孕之前喝酒了怎么办 怀孕后喝酒了怎么办 刚怀孕喝啤酒怎么办 早孕期间喝酒了怎么办 发现怀孕一个月怎么办 怀孕初期喝白酒怎么办 准备怀孕喝酒了怎么办 怀孕初期喝醉了怎么办 怀孕前喝酒了怎么办 受孕期间喝酒了怎么办 一个月发现怀孕怎么办