Learn a few different ways to get a progress bar for your dd
command.
The dd
tool has been a critical component on the Linux (and UNIX) command line for ages. You know a command-line tool is important if it has only two letters, and dd
is no exception. What I love about it in particular is that it truly embodies the sense of a powerful tool with no safety features, as described in Neal Stephenson's In the Beginning was the Command Line. The dd
command does something simple: it takes input from one file and outputs it to another file, and since in UNIX "everything is a file", that means dd
doesn't care if the output file is another file on your disk, a partition or even your active hard drive, it happily will overwrite it! Because of this, dd
fits in that immortal category of sysadmin tools that I type out and then pause for five to ten seconds, examining the command, before I press Enter.
Unfortunately, dd
has fallen out of favor lately, and some distributions even will advise using tools like cp
or a graphical tool to image drives. This is largely out of the concern that dd
doesn't wait for the disk to sync before it exits, so even if it thinks it's done writing, that doesn't mean all of the data is on the output file, particularly if it's over slow I/O like in the case of USB flash storage. The other reason people have tended to use other imaging tools is that traditionally dd
doesn't output any progress. You type the command, and then if the image is large, you just wait, wait and then wait some more, wondering if dd
will ever complete.
But, it turns out that there are quite a few different ways to get progress output from dd
, so I cover a few popular ones here, all based on the following dd
command to image an ISO file to a disk:
$ sudo dd if=/some/file.iso of=/dev/sdX bs=1M
Option 1: Use pv
Like many command-line tools, dd
can accept input from a pipe and output to a pipe. This means if you had a tool that could measure the data flowing over a pipe, you could sandwich it in between two different dd
commands and get live progress output. The pv
(pipe viewer) command-line tool is just such a tool, so one approach is to install pv
using your distribution's packaging tool and then create a pv
and dd
sandwich:
from Linux Journal - The Original Magazine of the Linux Community https://ift.tt/2LQZL7c
via IFTTT
No comments:
Post a Comment