首页 > 系统相关 >Linux dd 命令

Linux dd 命令

时间:2023-08-11 17:08:01浏览次数:30  
标签:count dd Linux dev 命令 bs root 备份

dd 命令 用于复制文件并对原文件的内容进行转换和格式化处理。dd 命令功能很强大的,对于一些比较底层的问题,使用 dd 命令往往可以得到出人意料的效果。用的比较多的还是用 dd 来备份裸设备。但是不推荐,如果需要备份 oracle 裸设备,可以使用 rman 备份,或使用第三方软件备份,使用 dd 的话,管理起来不太方便。需要的时候使用 dd 对物理磁盘操作,如果是文件系统的话还是使用 tar backup cpio 等其他命令更加方便。另外,使用 dd 对磁盘操作时,最好使用块设备文件。


bs=<字节数>:将ibs(输入)与obs(输出)设成指定的字节数;
cbs=<字节数>:转换时,每次只转换指定的字节数;
conv=<关键字>:指定文件转换的方式;
count=<区块数>:仅读取指定的区块数;
ibs=<字节数>:每次读取的字节数;
obs=<字节数>:每次输出的字节数;
of=<文件>:输出到文件;
seek=<区块数>:一开始输出时,跳过指定的区块数;
skip=<区块数>:一开始读取时,跳过指定的区块数;
--help:帮助;
--version:显示版本信息。
> dd if=/dev/zero of=sun.txt bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.006107 seconds, 172 MB/s

[root@localhost text]
1.1M    sun.txt
该命令创建了一个 1M 大小的文件 sun.txt,其中参数解释:

    if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。
    of 代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出。
    bs 代表字节为单位的块大小。
    count 代表被复制的块数。
    /dev/zero 是一个字符设备,会不断返回 0 值字节(\0)。

Linux dd 命令_数据

DD实例:
1.将本地的/dev/hdb整盘备份到/dev/hdd
#dd if=/dev/hdb of=/dev/hdd
2.将/dev/hdb全盘数据备份到指定路径的image文件
#dd if=/dev/hdb of=/root/image
3.将备份文件恢复到指定盘
#dd if=/root/image of=/dev/hdb
4.备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径
#dd if=/dev/hdb | gzip > /root/image.gz
5.将压缩的备份文件恢复到指定盘
#gzip -dc /root/image.gz | dd of=/dev/hdb
6.备份与恢复MBR
备份磁盘开始的512个字节大小的MBR信息到指定文件:
#dd if=/dev/hda of=/root/image count=1 bs=512
   count=1指仅拷贝一个块;bs=512指块大小为512个字节。
恢复:
#dd if=/root/image of=/dev/had
将备份的MBR信息写到磁盘开始部分
7.备份软盘
#dd if=/dev/fd0 of=disk.img count=1 bs=1440k (即块大小为1.44M)
8.拷贝内存内容到硬盘
#dd if=/dev/mem of=/root/mem.bin bs=1024 (指定块大小为1k)  
9.拷贝光盘内容到指定文件夹,并保存为cd.iso文件
#dd if=/dev/cdrom(hdc) of=/root/cd.iso
10.增加swap分区文件大小
第一步:创建一个大小为256M的文件:
#dd if=/dev/zero of=/swapfile bs=1024 count=262144
第二步:把这个文件变成swap文件:
#mkswap /swapfile
第三步:启用这个swap文件:
#swapon /swapfile
第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:
/swapfile    swap    swap    default   0 0
11.销毁磁盘数据
#dd if=/dev/urandom of=/dev/hda1
注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。
12.测试硬盘的读写速度
#dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
#dd if=/root/1Gb.file bs=64k | dd of=/dev/null
通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。
13.确定硬盘的最佳块大小:
#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
通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。
14.修复硬盘:
#dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda
当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magnetic flux point,当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数 据起死回生。并且这个过程是安全、高效的。
15.利用netcat远程备份
#dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234
在源主机上执行此命令备份/dev/hda
#netcat -l -p 1234 | dd of=/dev/hdc bs=16065b
在目的主机上执行此命令来接收数据并写入/dev/hdc
#netcat -l -p 1234 | bzip2 > partition.img
#netcat -l -p 1234 | gzip > partition.img
以上两条指令是目的主机指令的变化分别采用bzip2、gzip对数据进行压缩,并将备份文件保存在当前目录。
将一个很大的视频文件中的第i个字节的值改成0x41(也就是大写字母A的ASCII值)
echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc
-----------------------------------
©著作权归作者所有:来自51CTO博客作者羊草的原创作品,请联系作者获取转载授权,否则将追究法律责任
linux学习,模拟资源占用
https://blog.51cto.com/u_11555417/7010220

标签:count,dd,Linux,dev,命令,bs,root,备份
From: https://blog.51cto.com/speediness/7049384

相关文章

  • 漫谈Linux系统的二次定制
    拥有一个自己的Linux系统从内核到应用程序的定制这个对于使用Linux的用户和众多的Linux玩家来说在目前的Linux发展的技术成熟度下面已经不是梦想,完全是可以通过通俗的技术条件实现;Linux从开始就逐渐的分化为针对服务器环境应用的server版本,这个版本基本上是因命令行方式与管理员进......
  • linux下Makefile学习
    概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix......
  • wipefs 和 zcat 命令使用记录
    wipefs–a/dev/sdb以下是wipefs的一些常用用法:擦除整个设备:wipefs-a/dev/sda擦除设备的第一个分区:wipefs-p/dev/sda1擦除设备的所有分区:wipefs-a-p/dev/sda擦除设备的所有元数据:wipefs-a-M/dev/sda擦除设备的所有分区和元数据:wipefs-a-M-p/dev/......
  • 创建元组的三种方式、字典中的setdefault和get妙用、类中的重载方法__add__()
    创建元组的三种方式#print(tuple([input(),input()]))#print((input(),input()))t=input(),input()print(t)#可以将列表转换成tuple,也可以直接()创建tuple,或者将多个变量赋值给一个值会自动转换成tuple字典中的setdefault和get妙用setdefault类似get方法w=input()......
  • Linux fdisk 命令
    Linuxfdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。fdisk[必要参数][选择参数]必要参数:-l列出所有的分区表-u与 -l 搭配使用,显示分区数目选择参数:-s<分区编号>指定分区-v版本信息菜单操作说明m:显示菜单和帮助信息a:活动分区......
  • Linux shell 脚本常用指南
    常用语法变量#!/bin/bash#字符串USER_NAME="shell"#数字AGE=25echo${USER_NAME}echo${AGE}数组#!/bin/bash#普通数组定义USER_IDS=(1234)echo${USER_IDS[0]}echo${USER_IDS[1]}echo${USER_IDS[2]}echo${USER_IDS[3]}USER_IDS[0]=-1echo${USER_IDS[......
  • Linux_CentOS
    windows和macOS是个人桌面操作系统;linux是服务器操作系统一、入门Linux1.1操作系统概述操作系统调度和管理计算机硬件进行工作,调度CPU,内存,硬盘,网卡,音响等发消息-->操作系统-->网卡驱动-->网卡发送数据包-->服务器-->接收计算机由硬件和软件组成,操作系统是软件的一类,主要协助......
  • DOS命令 - 在当前目录创建所需目录一步到位
    有时候会碰到大量创建目录结构,可是一层层创建会麻烦,所以使用DOS命令来创建。创建目录按日期创建为目录,其他以需要的目录结构创建命令如下:@echooffcolor2f@REMecho请输入创建模块名称,并回车。settmp=%date:~0,4%%date:~5,2%%date:~8,2%echo将创建%tmp%的目录set/pcomman......
  • Linux 系统 基础命令
    目录ls:列出目录下的文件和文件夹名字"mkdir创建新目录(文件夹)//mkdirt01rmdir删除空目录//rmdirt01cd切换目录pwd查看当前所在的工作目录的绝对路径vim文本编辑器touch创建文件cat查看文件全部内容(不用进入内容,只展示内容)(从第一行显示)more命令查看文件内容cp......
  • Unity Addressable 打包 WebGL 报错
    1.现象:PC端打包正常,Web平台打包后报错  2.原因分析    服务器的 MIME类型 没有.bundle 3.解决方案在web.config配置文件中加上对应的配置项,如下所示:<?xmlversion="1.0"encoding="UTF-8"?><configuration><system.webServer>......