We're an ISO27001:2013 Certified Supplier

blog-post-featured-image

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Secure. Reliable. Scalable.

If that doesn't describe your current Linux systems, check out our FREE Linux Survival Guide to help you get your systems up to scratch today!
  • This field is for validation purposes and should be left unchanged.