dd 命令的作用是什么?

dd 命令的作用是什么?

如果我使用“dd”命令从块设备(比如 8 GB)复制到 16 GB 块设备,那么第一个设备的内容会被复制到第二个设备,直到它满了?(也就是说,直到 16GB 满了,也就是 2 次)还是只有第一个设备的内容被复制到第二个设备 1 次?

如果我将 6GB .iso 映像复制到 8GB 设备,是否会发生同样的事情?也就是说,在这种情况下,它将复制整个 .iso 文件一次,然后仅复制该文件的 2GB?

如果确实如此,为什么我们在创建设备副本时通常不指定bs和选项,如下所示: ?从逻辑上讲,它应该不断复制到无限远,但是它没有,而是创建了一个与 USB 记忆棒大小完全相同的文件。countsudo dd if=/dev/sdc of=image.iso

答案1

dd将继续复制,直到满足以下三个条件之一

  1. 读取时收到错误 - 源设备没有更多块可读取
  2. 写入时收到错误 - 目标设备没有更多可写入的块
  3. count它达到了块大小的块数bs

前两个条件优先于第三个条件。如果其中任何一个先满足,程序就会退出。

所以:

  1. 如果您有一个 6GB 的源并将其复制到 8GB 的​​目标,那么它将复制 6GB 的数据并停止。
  2. 如果您有 16GB 的源和 8GB 的​​目标,那么它将复制 8GB 的​​数据然后停止。
  3. 如果您告诉它复制 4,096,000 个 1024 字节的块,那么它将复制 4GB 的数据,除非它到达源或目标设备的末尾,在这种情况下它将仅复制size源或目标的数据。

相关内容