本文首先简要介绍了dd的参数,然后通过一些实例介绍了dd的应用,这些素材的整理来源于网络。
dd在Linux/UNIX上是非常有用的命令,它的作用是用指定大小的块复制文件,并在复制的同时进行指定的转换。
1 .命令摘要
dd的主要参数选项:
如果指定的数字位置以下一个字符结束,则乘以对应的数字:
b=512,c=1,k=1024,w=2,xm=number m
if=file
输入文件名。 默认值为标准输入。
of=file
输出文件名。 默认为标准输出。
ibs=bytes
一次读取字节。 这意味着一个块的大小是字节。
obs=bytes
一次写一个字节。 这意味着一个块的大小是字节。
bs=bytes
将读写块的大小设置为bytes而不是ibs和obs。
cbs=bytes
一次转换bytes字节或转换缓冲区大小。
skip=blocks
从输入文件的开头跳过块,然后开始复制。
seek=blocks
从输出文件的开头跳过块,然后开始复制。 (通常,仅当输出文件是磁盘或磁带时才有效。)。
count=blocks
只复制blocks个块。 块大小与ibs指定的字节数相同。
conv=conversion[,conversion…]
用指定的参数转换文件。
转换参数:
ascii将EBCDIC转换为ascii。
ebcdic将ASCII转换为ebcdic。
ibm将ASCII转换为备用。
块将每行转换为cbs长度的记录,用空格填充不足的部分。
unblock将每行的长度作为cbs,不足的部分用空格填充。
lcase将大写字母转换为小写字母。
ucase将小写字母转换为大写字母。
swab交换一对输入的字节。
noerror错误时不停止。
notrunc不会截断输出文件。
sync将各输入块填充到ibs字节中,不足的部分用空白(NUL )字符填充。
2 .事例介绍
2.1 .数据备份和恢复
2.1.1磁盘范围内的数据备份和恢复
备份:
dd if=/dev/hdx of=/dev/hdy
将整个本地/dev/hdx磁盘备份到/dev/hdy
dd if=/dev/hdx of=/path/to/image
将/dev/hdx中的所有数据备份到指定路径的image文件中
ddif=/dev/hdx|gzip/path/to/image.gz
备份/dev/hdx中的所有数据,使用gzip工具压缩并保存到指定路径
恢复:
dd if=/path/to/image of=/dev/hdx
将备份文件恢复到指定的磁盘
gzip-DC/path/to/image.gz|ddof=/dev/hdx
将压缩的备份文件恢复到指定的磁盘
2.1.2 .通过net cat进行远程备份
ddif=/dev/hda bs=16065 b|netcattargethost-IP 1234
在源主机上运行此命令以备份/dev/hda
netcat-l-p 1234|ddof=/dev/hdc bs=16065 b
在目标主机上运行此命令以接收数据并将其写入/dev/hdc
netcat-l-p 1234|bzip2partition.img
netcat-l-p 1234|gzip partition.img
以上两个命令是对目标主机命令的更改分别使用bzip2 gzip压缩数据并将备份文件保存到当前目录中。
2.1.3.MBR备份
备份:
ddif=/dev/hdx of=/path/to/image count=1bs=512
将磁盘开始时512字节大小的MBR信息备份到指定文件中
恢复:
dd if=/path/to/image of=/dev/hdx
将备份的MBR信息写入磁盘的第一部分
2.1.4 .软盘备份
ddif=/dev/fd0of=disk.img count=1bs=1440 k
将软驱中的数据备份到当前目录的disk.img文件中
2.1.5 .将内存数据复制到硬盘
ddif=/dev/memof=/root/mem.binbs=1024
将内存中的数据复制到根目录的mem.bin文件中
2.1.6 .从磁盘复制iso镜像
dd if=/dev/cdrom of=/root/cd.iso
将CD数据复制到根文件夹并另存为cd.iso文件
2.2 .增加swap分区的文件大小
ddif=/dev/zero of=/swap file bs=1024 count=262144
创建足够大的文件。 这里为256M )
mkswap/swap文件
将此文件转换为swap文件
swapon /swapfile
启用此swap文件
/swap文件交换默认值0
要在每次打开电源时自动加载swap文件,必须在/etc/fstab文件中添加一行
2.3 .销毁磁盘数据
dd if=/dev/urandom of=/dev/hda1
可以在硬盘中嵌入随机数据,并根据需要销毁数据。 此操作将导致无法装载/dev/hda1,并且无法进行创建和复制操作。
2.4磁盘管理
2.4.1 .获得最佳块大小
ddif=/dev/zero bs=1024 count=1000000 of=/root/1gb.file
ddif=/dev/zero bs=2048 count=500000 of=/root/1gb.file
ddif=/dev/zero bs=4096 count=250000 of=/root/1gb.file
ddif=/dev/zero bs=8192 count=125000 of=/root/1gb.file
通过比较dd命令输出中显示的命令的执行时间,可以确定系统的最佳块大小
2.4.2测试硬盘读写速度
ddif=/root/1gb.filebs=64k|ddof=/dev/null
ddif=/dev/zero of=/root/1gb.filebs=1024 count=10000000
可以根据前面两个命令输出的执行时间计算测试硬盘的读取/写入速度
2.4.3 .硬盘修复
dd if=/dev/sda of=/dev/sda
如果硬盘长时间放置一两年不使用,例如,磁盘将出现幻灯片点。 磁头读取这些区域很困难,可能会导致I/O错误。 如果这种情况影响到硬盘的第一个扇区,硬盘可能会被丢弃。 上面的命令有可能复活这些数据。 这个过程安全高效。
正文链接: http://www.yunwei pai.com/2366.html