`
lingqi1818
  • 浏览: 253936 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[转]linux之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整盘数据备份与恢复


                备份:


CODE:
dd if=/dev/hdx of=/dev/hdy


将本地的/dev/hdx整盘备份到/dev/hdy


CODE:
dd if=/dev/hdx of=/path/to/image


将/dev/hdx全盘数据备份到指定路径的image文件


CODE:
dd if=/dev/hdx | gzip >/path/to/image.gz


备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
                恢复:


CODE:
dd if=/path/to/image of=/dev/hdx


将备份文件恢复到指定盘


CODE:
gzip -dc /path/to/image.gz | dd of=/dev/hdx


将压缩的备份文件恢复到指定盘


                2.1.2.利用netcat远程备份


CODE:
dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234


在源主机上执行此命令备份/dev/hda


CODE:
netcat -l -p 1234 | dd of=/dev/hdc bs=16065b


在目的主机上执行此命令来接收数据并写入/dev/hdc


CODE:
netcat -l -p 1234 | bzip2 > partition.img
                netcat -l -p 1234 | gzip > partition.img


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


                2.1.3.备份MBR


                备份:


CODE:
dd if=/dev/hdx of=/path/to/image count=1 bs=512


备份磁盘开始的512Byte大小的MBR信息到指定文件
                恢复:


CODE:
dd if=/path/to/image of=/dev/hdx


将备份的MBR信息写到磁盘开始部分


                2.1.4.备份软盘


CODE:
dd if=/dev/fd0 of=disk.img count=1 bs=1440k


将软驱数据备份到当前目录的disk.img文件


                2.1.5.拷贝内存资料到硬盘


CODE:
dd if=/dev/mem of=/root/mem.bin bs=1024


将内存里的数据拷贝到root目录下的mem.bin文件


                2.1.6.从光盘拷贝iso镜像


CODE:
dd if=/dev/cdrom of=/root/cd.iso


拷贝光盘数据到root文件夹下,并保存为cd.iso文件               


        2.2.增加Swap分区文件大小


CODE:
dd if=/dev/zero of=/swapfile bs=1024 count=262144


创建一个足够大的文件(此处为256M)


CODE:
mkswap /swapfile


把这个文件变成swap文件


CODE:
swapon /swapfile


启用这个swap文件


CODE:
/swapfile swap swap defaults 0 0


在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行


        2.3.销毁磁盘数据


CODE:
dd if=/dev/urandom of=/dev/hda1


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


        2.4磁盘管理


                2.4.1.得到最恰当的block size


CODE:
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


通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小


                2.4.2测试硬盘读写速度


CODE:
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
                dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000


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


                2.4.3.修复硬盘


CODE:
dd if=/dev/sda of=/dev/sda


当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux
point。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。


转自:http://blog.chinaunix.net/u1/41660/showart_1213155.html
分享到:
评论

相关推荐

    linux dd命令 源代码

    Linux中的`dd`命令是一个非常强大的工具,用于数据复制、转换和备份。它的工作原理是读取输入(源)文件或设备,然后按照指定的块大小写入到输出(目标)位置。这个命令在系统维护、磁盘克隆、创建映像文件等方面...

    dd命令烧写linux系统到sd卡

    ### dd命令烧写Linux系统到SD卡的知识点详解 #### 一、理解U-Boot如何到达SD卡的原理概述 1. **S3c2416架构下的启动过程** - **BL0 (Boot Loader Stage 0):** - **定义与功能:** BL0指的是S3c2416处理器内部ROM...

    Linux中DD命令详解

    ### Linux中DD命令详解 #### 一、DD命令概述与基本功能 `dd`命令是Linux下非常强大的数据处理工具之一,它能够实现文件或设备之间的数据复制,并且支持多种格式转换。`dd`(data definition)命令的核心作用是按照...

    在Linux系统下用DD命令制作ISO镜像U盘启动盘.docx

    Linux系统下用DD命令制作ISO镜像U盘启动盘 在 Linux 系统中,我们可以使用 DD 命令来制作 ISO 镜像 U 盘启动盘,这个方法非常简单高效。下面是该知识点的详细说明: 标题解释 "在 Linux 系统下用 DD 命令制作 ISO ...

    linux的dd命令克隆磁盘方法.docx

    ### Linux下的dd命令克隆磁盘方法详解 #### 概述 在Linux环境中,dd命令是一种非常强大的工具,常用于复制文件或者进行低级别的磁盘操作。本文将详细介绍如何使用dd命令来克隆磁盘,包括操作前的准备工作、注意事项...

    如何查看dd命令的拷贝进度

    "如何查看dd命令的拷贝进度" DD 命令是 Linux 中一个非常常用的命令,用于 binary copy,可以用于硬盘克隆等操作。通常,使用 DD 命令时,我们需要等待命令完成,进程退出。但是,当我们需要拷贝的数据量非常大的...

    linux dd命令实用技巧总结

    Linux中的`dd`命令是一个非常强大的工具,常用于数据转换和复制。它的功能包括但不限于创建映像文件、格式化磁盘、数据迁移等。本文将深入探讨`dd`命令的基本用法及其各种实用技巧。 首先,`dd`命令的基本语法是: ...

    linuxdd命令备份与恢复.rar

    linuxdd命令备份与恢复.rar

    Linux dd命令中dsync与fdatasync的区别.docx

    Linux dd命令中dsync与fdatasync的区别 Linux 系统中常常会用法 dd 指令来测试硬盘的写入速度,该指令会涉及到两个参数:dsync 与 fdatasync。本文将详细介绍这两个参数的区别。 dsync 参数: dsync 参数是 Linux...

    Linux dd命令的简单介绍.docx

    Linux dd 命令的简单介绍 Linux dd 命令是一种功能强大且灵活的命令行工具,用于将指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。dd 命令的主要功能是将输入文件中的数据拷贝到输出...

    Linux dd命令全面解析.docx

    Linux dd 命令全面解析 Linux dd 命令是 Linux 系统中一个非常强大的命令,主要用来复制和转换文件,下面将对其进行详细的解析。 一、dd 命令的基本概念 dd 命令是 Linux 系统中的一条命令,主要用于复制和转换...

    Linux dd命令制作U盘系统启动盘.docx

    这时,dd 命令就成为了我们的不二之选。 dd 命令的基本用法 dd 命令的基本用法是将输入文件转换成输出文件。其命令格式为: ``` dd [OPERAND]... ``` 其中,OPERAND 是指令的操作数,可以是输入文件、输出文件、块...

    使用dd命令烧写linux系统到sd卡

    《使用dd命令烧写Linux系统到SD卡》 在嵌入式系统开发中,烧录Linux系统到SD卡是一项常见的任务。本文将详细介绍这一过程,包括理解U-Boot的加载原理,以及如何使用dd命令来烧写Linux系统到SD卡。 一、U-Boot加载...

    LInux连接工具dd

    【标题】:“Linux连接工具dd” ...通过理解并熟练运用dd命令,Linux用户和系统管理员能够有效地管理数据,进行系统维护和恢复,提高工作效率。dd的灵活性和强大功能使其成为了Linux环境中不可或缺的工具之一。

    Linux dd命令的详解与应用实例解析

    内容概要:本文详细介绍了 Linux 下用于低级别的数据复制的强大工具 dd 命令,其中包括如何指明输入文件(if)、输出文件(of)、以及设置字节为单位的块大小(bs)和复制块的数量(count)。特别提到 /dev/zero 这...

    在linux上用dd命令实现ghost功能.pdf

    在Linux上使用dd命令实现Ghost功能,解决了传统Ghost工具的不足之处。Ghost工具可以备份和恢复操作系统,但是只能识别少数老旧的Linux文件系统,无法识别grub和LILO等引导加载程序。使用dd命令可以实现任意复杂的...

    linux下的dd和cpio命令.pdf

    "Linux 下的 dd 和 cpio 命令" Linux 下的 dd 命令是非常有用的命令,它可以用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。dd 命令直接调用硬盘驱动复制的,所以说速度上会很快。语法:dd [选项] if=...

Global site tag (gtag.js) - Google Analytics