DD的完整且详细的指南(包括示例)

我给你留下了一篇很棒的文章 我发现自己 在网上冲浪,它向我们展示了多个示例,并详细说明了它是什么以及使用该命令可以实现什么 DD.

我给你完整的翻译 危象:

1.为什么是dd?:

我们选择了 dd 您将看到,它是本系列中的第一个竞争者,因为它是一个有用的工具,具有很多选择。 这几乎使其成为Linux世界中的瑞士军刀之一。 是的,这个术语(瑞士军刀)的使用量比面向Linux的文章编写者所使用的更多,因此我们不能放弃自己使用它的机会。

2.一般用途:

在开始之前,我们想给您一个大致的用法 dd。 首先,该名称来自数据复制器,但幽默地说,它也意味着磁盘破坏者或数据破坏者,因为它是一个非常强大的工具。 因此,我们建议在使用dd时要格外小心,因为一时的粗心会浪费您宝贵的数据。 命令的一般语法 dd 是:

# dd if = $ input_data = = $ output_data [选项]

输入数据 y 输出数据 可以是磁盘,分区,文件,设备吗? 几乎所有您可以写入或读取的内容。 如您所见,例如,您可以在网络上下文中使用dd通过LAN发送数据流。 您只能使用dd命令的输入部分,也可以只使用输出命令,在某些情况下甚至可以将两者都删除。 所有这些将在下面的列表中处理。

3.范例:

dd if = / dev / urandom of = / dev / sda bs = 4k -»用随机数据填充磁盘

dd if = / dev / sda of = / dev / sdb bs = 4096-» 磁盘到磁盘镜像

dd如果= / dev /零= / dev / sda bs = 4k-» 清洁硬盘驱动器(可能需要重复进行)

dd if =输入文件= / dev / st0 bs = 32k conv =同步-» 从文件复制到磁带设备

dd if = / dev / st0 of = outfile bs = 32k conv = sync-» 前者,扭转

dd if = / dev / sda | 十六进制转储-C | grep [^ 00]-» 检查磁盘是否真的归零

dd if = / dev / urandom == / home / $ user / heugefile bs = 4096-» 填充分区(当心系统分区!)

dd如果= / dev / urandom = myfile bs = 6703104 count = 1-» 对文件进行编码(可能在删除之前)

dd if = / dev / sda3 of = / dev / sdb3 bs = 4096 conv = notrunc,noerror-» 将一个分区复制到另一个分区

dd if = / proc / filesystems | 十六进制转储-C | 减 - ” 查看可用的文件系统

dd if = / proc /分区| 十六进制转储-C | 减 - ” 查看可用分区(以kb为单位)

dd if = / dev / sdb2 ibs = 4096 | gzip> partition.image.gz conv = noerror-» 创建第二个磁盘的第二个分区的gzip映像

dd bs = 10240 cbs = 80 conv = ascii,如果= / dev / st0 of = ascii.out,则解除阻止-» 将磁带的内容复制到文件,从EBCDIC转换为ASCII

dd if = / dev / st0 ibs = 1024 obs = 2048 of = / dev / st1-» 将1KB块设备复制到2KB块设备

dd if = / dev /零= / dev / null bs = 100M count = 100
100 + 0条记录
100 + 0条记录
复制了10485760000字节(10GB),

5.62955 s,1.9 GB /秒

将10 GB的零复制到回收站。

dd if = / dev /零= / dev / sda bs = 512 count = 2
fdisk -s / dev / sda
dd if = / dev /零= / dev / sda seek =(number_of_sectors-20)bs = 1k

从磁盘擦除GPT。 GPT如何将数据写入开头
在磁盘的末端,从头开始擦除之后,我们必须找到扇区数(第二个命令),然后擦除最后20个扇区。

dd if = /home/$user/bootimage.img of = / dev / sdc-» 创建可启动的UDB磁盘(在此处显示为/ dev / sdc)

dd if = / dev / sda = / dev / null bs = 1m-» 查找坏块的好方法。 备份与系统有关

dd if = / dev / sda of = / dev / fd0 bs = 512 count = 1-» 将MBR复制到软盘

dd if = / dev / sda1 of = / dev / sdb1 bs = 4096-» 磁盘到磁盘镜像

dd if = / dev / sr0 of = / home / $ user / mycdimage.iso \ bs = 2048 conv = nosync-» 创建CD映像

挂载-o循环/home/$user/mycdimage.iso / mnt / cdimages--» 在本地安装提到的图像

dd if = / dev / sda of = / dev / sdb bs = 64k conv = sync-» 当用相同大小的光盘替换光盘时很有用。

dd if = / dev / sda2 of = / home / $ user / hddimage1.img bs = 1M count = 4430
dd if = / dev / sda2 of = / home / $ user / hddimage2.img bs = 1M count = 8860
[...]

创建分区的DVD映像(用于进行备份)

dd if = / $ location / hddimage1.img = / dev / sda2 bs = 1M
dd if = / $ location / hddimage2.img = / dev / sda2 seek = 4430 bs = 1M
dd if = / $ location / hddimage3.img = / dev / sda2 seek = 8860 bs = 1M
[等等…]

从以前的备份还原

dd if = / dev / zero count = 1 bs = 1024 seek = 1 of = / dev / sda6-» 摧毁超级街区

dd if = / dev / zero count = 1 bs = 4096 seek = 0 of = / dev / sda5-» 破坏超级方块的另一种方法

dd if = /home/$user/suspicious.doc | 蛤scan-» 检查文件中是否有病毒(需要ClamAV)

dd if = / home / $ user / binary file | 十六进制转储-C | 减 - ” 查看二进制文件的内容(需要hexdump)

dd if = / home / $ user / bigfile = / dev / null
dd if = / dev / 1024 == / home / $ user / bigfile bs = 1000000 count = XNUMX

基准测试硬盘驱动器的读取/写入速度

dd if = / dev / sda = / dev / sda-​​» 重新使用久未使用的旧硬盘(驱动器必须“卸下”)

dd if = / dev / mem | 字符串| grep'string_to_search'-» 检查内存内容(可读)

dd if = / dev / fd0 of = / home / $ user / floppy.image bs = 2x80x18b conv = notrunc-» 复制软盘

dd if = / proc / kcore | 十六进制转储-C | 减 -»显示虚拟内存

dd if = / proc / filesystems | 十六进制转储-C | 减 - ” 查看可用的文件系统

dd if = / proc / kallsyms | 十六进制转储-C | 减 - ” 显示已加载的模块

dd if = / proc /中断| 十六进制转储-C | 减 - ” 显示中断表

dd if = / proc / uptime | 十六进制转储-C | 减 - ” 以秒为单位显示正常运行时间

dd if = / proc /分区| 十六进制转储-C | 减 - ” 查看可用分区(以kb为单位)

dd if = / proc / meminfo | 十六进制转储-C | 减 - ” 显示内存状态

dd if = / dev / urandom == / home / $ user / myrandom bs = 100 count = 1-» 创建一个1kb的随机乱码文件

dd if = / dev / mem == / home / $ user / mem.bin bs = 1024-» 创建系统内存当前状态的映像

dd if = / home / $ user / myfile-» 将文件打印到标准输出

dd if = / dev / sda2 bs = 16065 | 十六进制转储-C | grep'text_to_search'-» 在整个分区中查找字符串; 即使安全,也可以启动liveCD

dd if = /home/$user/file.bin skip = 64k bs = 1 of = / home / $ user / convfile.bin-» 将file.bin复制到convfile.bin,跳过前64 kb

dd if = /home/$user/bootimage.img of = / dev / sdc-» 创建可启动的UDB磁盘(在此处显示为/ dev / sdc)

dd if = / dev / mem bs = 1k skip = 768 count = 256 2> / dev / null | 字符串-n 8-» 阅读BIOS。

dd bs = 1k,如果= imageimage.nrg = imagefile.iso skip = 300k-» 将Nero图像转换为标准ISO图像。
这是可能的,因为两者之间的唯一区别是Nero添加到标准ISO映像的300 kB标头。

echo -n“你好垂直世界” | dd cbs = 1 conv = unblock 2> / dev / null-» 试试看,很安全。 🙂

dd if = / dev / sda1 | gzip -c | 分割-b 2000m-\ /mnt/hdc1/backup.img.gz-» 使用split创建分区的gzip映像

猫/mnt/hdc1/backup.img.gz.* | gzip -dc | dd = / dev / sda1-» 恢复以前的备份

dd如果= / dev /零= myimage bs = 1024 count = 10240-» 创建一个空的磁盘映像

dd ibs = 10跳过= 1-» 分割标准输入的前10个字节

dd bs = 265b conv = noerror if = / dev / st0 of = / tmp / bad.tape.image-» 制作带斑点的磁带图片

dd if = / dev / sda count = 1 | hexdump -C-» 查看您的MBR

dd if = / dev / sda | nc -l 10001 nc $ system_to_backup_IP 10001 | dd = sysbackupsda.img-» 使用netcat的快速网络备份

dd如果= / dev /零= / dev / sdX bs = 1024000 count = 1-» 清理分区的前10MB

dd if = / dev /零= tmpswap bs = 1k
计数= 1000000
chmod 600 tmpswap
mkswap 临时交换
交换tmpswap

创建一个临时交换空间

dd if = / dev / sda = / dev / null bs = 1024k计数= 1024
复制了1073741824字节(1.1GB),
24.1684 s,44.4 MB / s

确定磁盘的顺序I / O速度。

dd if = / dev / random count = 1 2> / dev / null | od -t u1 | \ awk'{print $ 2}''| 头-1-» 产生一个随机数

dd if = / dev / mem of = myRAM bs = 1024-» 将RAM内存复制到文件

dd if = / dev / sda bs = 512 count = 1 | od -xa-» 以十六进制和ASCII格式查看MBR的内容

dd if = / / my / old / mbr of = / dev / sda bs = 446 count = 1-» 恢复MBR,而不更改分区表记录(介于447-511字节之间)

dd if = / dev / sda1 | 分离-b 700m-sda1-image-» 创建分区的副本并保存最大卷大小为700MB的图像

ls -l | dd conv = ucase-» 将命令的输出转换为大写

回显“我的大写文本” | dd conv = lcase-» 将任何文本转换为小写

dd if = / etc / passwd cbs = 132 conv = ebcdic of = / tmp / passwd.ebcdic-» 将系统密码文件转换为EBCDIC格式的固定长度文件

dd如果= text.ebcdic的text.ascii conv = ebcdic-» 从ASCII转换为EBCDIC

dd if = myfile of = myfile conv = ucase-» 将文件转换为大写(简单的SED或tr替换)

4。结论:

这只是dd可以做的一小部分,我们希望本文能够对它们进行介绍,以涵盖普通用户最常用的示例。 但是,在进行下一步之前,我们建议您阅读硬盘驱动器文档,查找类似LBA的限制,并在根终端中使用dd时要格外小心。 当然,您已经有备份,但是稍加注意将为您节省数小时的不必要工作。

文章到此结束。

作为记录,我没有尝试过本文中显示的任何命令,因此,如果有人滥用(或不正确地)使用了这些命令,则很可能如果它们损坏了计算机上的某些内容,我将无法为您提供帮助。

没什么,我会一点一点地测试命令,如果我发现一些有趣的东西,我会分享它。

问候


17条评论,留下您的评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   路德

    很棒的文章,这是对命令进行彻底分析的方式,因此我们了解了很多有关命令的知识。 一如既往的祝贺和感谢!

  2.   奥斯卡

    很好且有趣的条目,因为我认为很重要,因此我将继续进行归档。
    我想您和伴侣在休假两天后会发现电池充满电,哈哈哈哈。
    我错过了博客上缺少文章的地方。

    1.    KZKG ^ Gaara <“ Linux

      谢谢,信誉不是我的。我只是翻译了🙂
      哈哈,是的,明天还会有更多文章哈哈,我们对这些日子没有发表任何东西表示歉意,即使查看统计数据,我们也看到了下降趋势。

    2.    elav <°Linux

      你说休假? 哈哈哈哈...我希望那是..

  3.   油脂

    好文章,我一直提醒您,是否可以启用插件将其导出为PDF或将文章附加为PDF

    的问候!

    1.    勇气

      顺便说一句,我提醒您,您应该开设一个论坛,因为这样会导致帖子中的很多标签不受欢迎(我包括我自己)

      1.    KZKG ^ Gaara <“ Linux

        我们一直在提出的错误或问题,与数据库的连接问题以及其他问题,是由于该站点产生了太多的活动或流量,因此我们暂时处于离线状态。 如果除了该站点之外,我们还添加了一个论坛,它将产生更多的访问量,并使一切变得更糟。

        论坛的想法是的,我们喜欢它,我们真的很想这样做,但是目前我们不能不幸🙁

        1.    勇气

          WordPress有一个插件,您不必使用看不见的网站

      2.    油脂

        好的...无需添加其他平台或站点的替代方法是WordPress上的bbPres(bbpress.org)

        的问候!

        1.    KZKG ^ Gaara <“ Linux

          是的,我们认识他,嘿,我们实际上是在考虑FluxBB🙂
          问题不在于另一个数据库,也不是同一个数据库使用更多表,而只是更多活动。

      3.    elav <°Linux

        我们将很快开设一个论坛😀

    2.    KZKG ^ Gaara <“ Linux

      我们仍然必须对该插件进行足够的测试,如果效果良好,则将其放入🙂
      我们没时间哈哈

  4.   舞蹈病

    亲爱的同事们,很高兴我引述这个非常可惜的事情,因为它是如此卡住应用程序,我希望您能深入研究一下,因为我想知道
    如果您可以用DVD或* .iso制成可引导的磁铁,请对其进行压缩,在此先感谢您,我希望您对我的后记作答,我认为您是整个西班牙阿巴拉(Abala)网络中唯一在其上进行了扩展的磁铁解释了很棒的文章,

  5.   第69章69

    如何通过网络从一台计算机克隆到另一台计算机? 在我的情况下,有2台笔记本电脑以固定方向连接在局域网中

  6.   埃里克

    谢谢你的信息🙂

  7.   吉达德4

    我的合同变更后
    http://premium.cars.purplesphere.in/?post.zoey
    妈妈和女儿免费色情片免费的3gp同性恋色情影片蜂鸣器色情企鹅西元色情路线96色情

  8.   艾亚斯博尔

    使旧记录栩栩如生的命令至关重要。 好东西,这是可以做的简短清单!