Linux DD命令常用:
zhuhongxi 2021-6-8
-
拷贝(备份)
dd if=xx1 of=xx2 举例: dd if=/dev/sda of=/root/sda.bak
其中:
if=文件名:指定输入文件名或者设备名,如果省略“if=文件名”,则表示从标准输入读取。
of=文件名:指定输出文件名或者设备名,如果省略“of=文件名”,则表示写到标准输出。上述例子表示将/dev/sda这个文件(实际上就是我们的某块硬盘)的内容拷贝到文件sda.bak中,实现备份。
将输入文件和输出文件调换位置,作用就变成了将备份文件写回硬盘。 -
拷贝(备份)并压缩
dd if=/dev/sda | gzip > /root/sda.bak.gz 或者 dd if=/dev/sda | bzip2 > disk.bak.bz2
-
备份磁盘某个分区的固定大小区域
dd if=/dev/sda of=/root/sda.bak.img count=1 bs=512
其中:
bs=N:设置单次读入或单次输出的数据块(block)的大小为 N 个字节。当然也可以使用 ibs 和 obs 选项来分别设置。
ibs=N:单次读入的数据块(block)的大小为 N 个字节,默认为 512 字节。
obs=N:单次输出的数据块(block)的大小为 N 个字节,默认为 512 字节。
count=N:表示总共要复制 N 个数据块(block) -
拷贝(备份)内存数据
dd if=/dev/mem of=/root/mem.img
这个方式在我们保留调试现场的环境,方便我们分析设备异常非常有用。
-
使用 /dev/zero 和 /dev/null 来测试磁盘
#向磁盘上写一个大文件, 来看写性能 time dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file #从磁盘上读取一个大文件, 来看读性能 time dd if=/root/1Gb.file bs=64k | dd of=/dev/null
/dev/null,也叫空设备,小名“无底洞”。任何写入它的数据都会被无情抛弃
/dev/zero,可以产生连续不断的 null 的流(二进制的零流),用于向设备或文件写入 null 数据,一般用它来对设备或文件进行初始化。 -
利用 /dev/urandom 进行格式化
dd if=/dev/urandom of=/dev/sda
/dev/urandom,它是“随机数设备”,它的本领就是可以生成理论意义上的随机数。如果我们想清除硬盘里的某些机密数据,就可以使用 这个随机数生成器来产生随机数据,写到磁盘上,以确保将磁盘原始数据完全覆盖掉。