Although Linux has been around since the early 90s, the GNU project software preceded it by a decade. The GNU
dd program, though, stems from Version 5 Unix, released back in 1974.
dd survives to this day, and although less used than it used to be, it still has its place when a bit-for-bit copy of a disk is needed. The command does show its age with its unconventional format, and it lacks some user-friendliness that we’ve come to expect over the intervening decades.
One shortcoming that may be perceived is the lack of user feedback. Once a
dd copy has started, progress can be gauged by sending a
USR1 signal – but that, in turn, requires knowing the Process ID (PID) of the
dd process. It could be easier.
dcfldd program builds on
dd. It retains the same unusual command format for backward compatibility, but adds a few features. Some examples:
dcflddwill give status updates (by default) every 256 blocks which, for most disk to disk copies, means “very frequently”:
# dcfldd if=/dev/sda6 of=/dev/null status=on 33280 blocks (1040Mb) written.
- By telling
dcflddto look at either the input or output device, it can report percentage progress and give an estimate of time remaining:
# dcfldd if=/dev/sda6 of=/dev/null status=on sizeprobe=if [0% of 4883744Mb] 48896 blocks (1528Mb) written. 04:26:15 remaining.
- It can create multiple output files. In this example, a new output file is created for every 1GB of data copied with the files named
# dcfldd split=1G if=/dev/sda6 of=/home/test
- It’s possible to specify the filenames used for the split option. In this example, the filenames will have two hex digits after the period:
# dcfldd split=64M splitformat="aa" if=/dev/sda6 of=/home/test
Here’s the resulting files:
# ls /home/test.a? -1 /home/test.aa /home/test.ab /home/test.ac
Not a command that’s used often, but when you do need to use
dd, it may be worth trying
Was This Helpful?
Let us know in the comments below.