- Copy a disk to a raw image file and hash the image using SHA256:
dcfldd if=/dev/disk_device of=file.img hash=sha256 hashlog=file.hash
- Copy a disk to a raw image file, hashing each 1GB chunk:
dcfldd if=/dev/disk_device of=file.img hash=sha512|sha384|sha256|sha1|md5 hashlog=file.hash hashwindow=1G
Copy a file, converting and formatting according to the options.
force ibs=BYTES and obs=BYTES
convert BYTES bytes at a time
convert the file as per the comma separated keyword list
copy only BLOCKS input blocks
read BYTES bytes at a time
read from FILE instead of stdin
write BYTES bytes at a time
write to FILE instead of stdout
NOTE: of=FILE may be used several times to write
output to multiple files simultaneously
exec and write output to process COMMAND
skip BLOCKS obs-sized blocks at start of output
skip BLOCKS ibs-sized blocks at start of input
use the specified binary pattern as input
use repeating TEXT as input
send error messages to FILE as well as stderr
perform a hash on every BYTES amount of data
either md5, sha1, sha256, sha384 or sha512
default algorithm is md5. To select multiple algorithms to run simultaneously enter the names in a comma separated list
send MD5 hash output to FILE instead of stderr
if you are using multiple hash algorithms you can send each to a seperate file using the convention ALGORITHMlog=FILE, for example md5log=FILE1, sha1log=FILE2, etc.
exec and write hashlog to process COMMAND
ALGORITHMlog:=COMMAND also works in the same fashion
perform the hashing before or after the conversions
display each hashwindow according to FORMAT
the hash format mini-language is described below
display the total hash value according to FORMAT
display a continual status message on stderr
default state is "on"
update the status message every N blocks
default value is 256
determine the size of the input or output file
for use with status messages. (this option gives you a percentage indicator) WARNING: do not use this option against a
write every BYTES amount of data to a new file
This operation applies to any of=FILE that follows
the file extension format for split operation.
you may use any number of 'a' or 'n' in any combo the default format is "nnn" NOTE: The split and splitformat options take effect
only for output files specified AFTER these options appear in the command line. Likewise, you may specify these several times for for different output files within the same command line. you may use as many digits in any combination you would like. (e.g. "anaannnaana" would be valid, but quite insane)
verify that FILE matches the specified input
send verify results to FILE instead of stderr
exec and write verify results to process COMMAND
display this help and exit
output version information and exit
The structure of of FORMAT may contain any valid text and special variables. The built-in variables are used the following format: #variable_name# To pass FORMAT strings to the program from a command line, it may be necessary to surround your FORMAT strings with "quotes." The built-in variables are listed below:
The beginning byte offset of the hashwindow
The ending byte offset of the hashwindow
The beginning block (by input blocksize) of the window
The ending block (by input blocksize) of the hash window
The hash value
The name of the hash algorithm
For example, the default FORMAT for hashformat and totalhashformat are
hashformat="#window_start# - #window_end#: #hash#" totalhashformat="Total (#algorithm#): #hash#"
The FORMAT structure accepts the following escape codes
Insert the '\' character
Insert the '#' character as text, not a variable
BLOCKS and BYTES may be followed by the following multiplicative suffixes: xM M, c 1, w 2, b 512, kD 1000, k 1024, MD 1,000,000, M 1,048,576, GD 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y. Each KEYWORD may be:
from EBCDIC to ASCII
from ASCII to EBCDIC
from ASCII to alternated EBCDIC
pad newline-terminated records with spaces to cbs-size
replace trailing spaces in cbs-size records with newline
change upper case to lower case
do not truncate the output file
change lower case to upper case
swap every pair of input bytes
continue after read errors
pad every input block with NULs to ibs-size; when used with block or unblock, pad with spaces rather than NULs
Written by: dcfldd by Nicholas Harbour, GNU dd by Paul Rubin, David MacKenzie and Stuart Kemp.
Report bugs to <email@example.com>.
Copyright © 1985-2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The full documentation for dcfldd is maintained as a Texinfo manual. If the info and dcfldd programs are properly installed at your site, the command
should give you access to the complete manual.