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.
Older Programs
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.
New Version
The dcfldd
program builds on dd
. It retains the same unusual command format for backward compatibility, but adds a few features. Some examples:
dcfldd
will 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
dcfldd
to 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
/home/test.001
,/home/test.002
, etc:
# 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
Wrap Up
Not a command that’s used often, but when you do need to use dd
, it may be worth trying dcfldd
instead.
Was This Helpful?
Let us know in the comments below.