不一样的复制-dd命令

不一样的复制-dd命令

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

dd 是一个 Unix 和类 Unix 系统上的命令,主要功能为转换和复制文件。
在 Unix 上,硬件的设备驱动(如硬盘)和特殊设备文件(如 /dev/zero/dev/random)就像普通文件一样,出现在文件系统中;只要在各自的驱动程序中实现了对应的功能,dd 也可以读取自 / 或写入到这些文件。这样,dd 也可以用在备份硬件的引导扇区、获取一定数量的随机数据等任务中。dd 程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。

相对 cp 命令来说,cp 命令是在文件系统层次接口的复制,而 dd 是在块层次接口的复制,效率更高。

它的使用也很简单,格式如下:

dd if=<SOURCE> of=<DEST>
    SOURCE:源文件;
    DEST:目标文件;

它还有一些常用选项:

  • bs=#:Block size,复制单元大小,单位为字节;
  • count=#:复制多少个 bs;

常见用法:

  • 磁盘复制,如 dd if=/dev/sda of=/dev/sdb 就是将 /dev/sda 中的数据拷贝到 /dev/sdb 磁盘中,效率比 cp 命令更高;
  • 备份 MBR,如 dd if=/dev/sda of=/tmp/sda_mbr.bak bs=512 count=1 就是将磁盘的前 512 字节备份到指定文件;
  • 清除 MBR,即清空了磁盘的分区表,dd if=/dev/zero of=/dev/sda bs=1 count=512
  • 破坏磁盘的主引导程序,如果仅覆盖磁盘的前 446 字节,则就破坏了磁盘 MBR 中的主引导程序,如 dd if=/dev/zero of=/dev/sda bs=256 count=1

MBR 总大小为 512 字节,主要由三部分组成:
1.主引导程序代码,占 446 字节;
2.硬盘分区表 DPT,占 64 字节;
3.主引导扇区结束标志 AA55H

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/linux-cmd-dd.html

Buy me a cup of coffee ☕.