一直对发型和身材不满意的人,有一个共同点:不肯承认这是脸的问题。
前言
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字
- b=512
- c=1
- k=1024
- w=2
dd 命令例子
dd 创建测试文件
1 | 语法: |
1 | if =输入文件(或设备名称)。 |
创建一个2G的文件
1 | dd if=/dev/zero of=/tmp/test bs=1M count=2048 |
测试硬盘读写速度
通过两个命令输出的执行时间,可以计算出测试硬盘的读/写速度:
1 | dd if=/root/1Gb.file bs=64k | dd of=/dev/null |
销毁磁盘数据
1 | dd if=/dev/urandom of=/dev/hda1 |
注意:
利用随机的数据填充硬盘
,在某些必要的场合可以用来销毁数据。
确定硬盘的最佳块大小
1 | dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file |
通过比较以上命令输出中所显示的
命令执行时间
,即可确定系统最佳的块大小。
备份与恢复MBR
备份磁盘开始的512个字节大小的MBR信息到指定文件:
1 | dd if=/dev/hda of=/root/image count=1 bs=512 |
将备份的MBR信息写到磁盘开始部分
1 | dd if=/root/image of=/dev/had |
拷贝内存内容到硬盘
1 | dd if=/dev/mem of=/root/mem.bin bs=1024 |
修复硬盘
1 | dd if=/dev/sda of=/dev/sda |
将一个很大的视频文件中的第i个字节的值改成0x41(也就是大写字母A的ASCII值)
1 | echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc |
结尾总结
/dev/null和/dev/zero的区别
- /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
- /dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/null,它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
/dev/zero,是一个输入设备,你可你用它来初始化文件。
- /dev/zero,是一个输入设备,你可你用它来初始化文件。
- /dev/zero,该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。