dd is a traditional utility for binary data copies
dd
is a command to copy input to output, granting control over the block size and allowing partial copies and progress reports as well as endianness, case and ASCII/EBCDIC translations. It is a traditional Unix command, able from the start to cope with binary data.
A major limitation of dd
is that it copies blocks, and does not count partial blocks specially, so it may copy less data than intended. dd
is also not particularly fast.
Although dd
is very often mentioned in tutorials as a way to copy disk images, all the “magic” is in fact in the /dev/
entries. For example, to make an image from a disk partition, you can use the command
cat /dev/sda1 >sda1.img
Further information
- dd vs cat -- is dd still relevant these days?
- Is there a way to determine the optimal value for the bs parameter to dd?
- When is dd suitable for copying data? (or, when are read() and write() partial)
- Clone whole partition or hard drive to a sparse file
- Why does dd from /dev/random give different file sizes?
- Read the middle of a large file
- Is dd able to overwrite parts of a file?