当前位置: 首页 > Linux

linux的dd命令

时间:2023-04-06 22:53:27 Linux

复制文件并对原文件的内容进行转换格式化。dd命令非常强大。对于一些低级问题,使用dd命令往往可以得到意想不到的结果。比较常用的是使用dd来备份原始设备。但不推荐。如果需要备份oracle裸设备,可以使用rmanbackup或者使用第三方软件进行备份。使用dd管理起来不是很方便。建议必要时使用dd对物理磁盘进行操作。如果是文件系统,用tarbackupcpio等其他命令更方便。另外,使用dd对磁盘进行操作时,最好使用块设备文件。语法dd(option)命令选项bs=<字节数>:设置ibs(输入)和obs(输出)为指定的字节数;cbs=<字节数>:转换时,每次字节数只转换指定的字节数;conv=:指定文件转换的方式;count=:只读取指定数量的块;ibs=:每次读取的字节数;obs=:每次输出的字节数;of=:输出到文件;seek=:在输出开始时跳过指定数量的块;skip=:开始读取时,跳过指定的块数;--帮助:帮助;--version:显示版本信息。示例>ddif=/dev/zeroof=sun.txtbs=1Mcount=11+0recordsin1+0recordsout1048576bytes(1.0MB)copied,0.006107seconds,172MB/s[root@localhosttext]1.1Msun.txt该命令创建一个文件sun.txt,大小为1M,参数说明:if代表输入文件。如果没有指定if,默认情况下将从stdin读取输入。of代表输出文件。如果不指定of,默认使用stdout作为默认输出。bs表示以字节为单位的块大小。count表示复制的块数。/dev/zero是一个字符设备,将始终返回零值字节(\0)。blocksizetableunitsizecodebyte(1B)cbyte(2B)wblock(512B)bkilobyte(1024B)kmegabyte(1024KB)Mgigabyte(1024MB)G及以上从命令可以看出,dd命令是用于测试内存运行速度:>1048576bytes(1.0MB)复制,0.006107秒,172MB/s生成随机字符串。我们甚至可以使用带有dd命令的/dev/urandom设备来获取随机字符串。>ddif=/dev/urandombs=1count=15|base64-w015+0recordsin15+0recordsout15bytes(15B)copied,0.000111993s,134kB/swFRAnlkXeBXmWs1MyGEsDev/hdb全盘备份到/dev/hdd#ddif=/dev/hdbof=/dev/hdd2.备份/dev/hdb全盘数据到指定路径下的image文件#ddif=/dev/hdbof=/root/image3.将备份文件恢复到指定磁盘#ddif=/root/imageof=/dev/hdb4。备份/dev/hdb整盘数据,用gzip工具压缩,保存到指定路径#ddif=/dev/hdb|gzip>/root/image.gz5.将压缩后的备份文件恢复到指定磁盘#gzip-dc/root/image.gz|ddof=/dev/hdb6.备份还原MBR备份盘启动512字节MBR信息到指定文件:#ddif=/dev/hdaof=/root/imagecount=1bs=512count=1表示只复制一个块;bs=512表示块大小为512字节。恢复:#ddif=/root/imageof=/dev/had将备份的MBR信息写入磁盘的开头7.备份软盘#ddif=/dev/fd0of=disk.imgcount=1bs=1440k(即块大小为1.44M)8.将内存内容复制到硬盘#ddif=/dev/memof=/root/mem.binbs=1024(指定块大小为1k)9.将光盘内容复制到指定文件夹,并保存为cd.iso文件#ddif=/dev/cdrom(hdc)of=/root/cd.iso10。增加交换分区文件的大小第一步:创建一个大小为256M的文件:#ddif=/dev/zeroof=/swapfilebs=1024count=262144第二步:将这个文件变成交换文件:#mkswap/swapfile步骤3:启用此交换文件:#swapon/swapfile步骤4:编辑/etc/fstab文件,以便每次启动时自动加载交换文件:/swapfileswapswapdefault0011.销毁磁盘数据#ddif=/dev/urandomof=/dev/hda1注意:使用随机数据填充硬盘,在某些必要的时候可以用来销毁数据。12、测试硬盘的读写速度#ddif=/dev/zerobs=1024count=1000000of=/root/1Gb.file#ddif=/root/1Gb.filebs=64k|ddof=/dev/null通过以上两条命令输出的命令执行时间,可以计算出硬盘的读写速度。13、确定硬盘最佳块大小:#ddif=/dev/zerobs=1024count=1000000of=/root/1Gb.file#ddif=/dev/zerobs=2048count=500000of=/root/1Gb.file#ddif=/dev/zerobs=4096count=250000of=/root/1Gb.file#ddif=/dev/zerobs=8192count=125000of=/root/1Gb.file通过比较上面命令输出中显示的命令执行时间可以确定系统的最佳块大小。14、修复硬盘:#ddif=/dev/sdaof=/dev/sdaorddif=/dev/hdaof=/dev/hda会产生磁通点,磁头读取困难这些区域,并可能导致I/O错误。当这种情况影响硬盘驱动器的第一个扇区时,它会使硬盘驱动器无法使用。上述命令有可能使这些数据起死回生。而且这个过程安全高效。15.使用netcat远程备份#ddif=/dev/hdabs=16065b|netcat1234在源主机上执行此命令以备份/dev/hda#netcat-l-p1234|ddof=/dev/hdcbs=16065b在目的主机上执行此命令接收数据并写入/dev/hdc#netcat-l-p1234|bzip2>partition.img#netcat-l-p1234|gzip>partition.img以上两个第一个命令是目的主机命令的改变,分别使用bzip2和gzip压缩数据,将备份文件保存在当前目录。将大视频文件中第i个字节的值改为0x41(即大写字母A的ASCII值)echoA|ddof=bigfileseek=$ibs=1count=1conv=notrunc原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门