首页 > 编程知识 正文

dd命令怎么用,linux命令dd与cp的区别

时间:2023-05-06 13:23:08 阅读:151896 作者:2979

本文首先简要介绍了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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。