didu(1)
| DIDU(1) | User Commands | DIDU(1) |
NAME
didu - corrupted DIsk DUmper program
SYNOPSIS
didu [OPTION...] [infile [outfile]]
DESCRIPTION
didu -- corrupted DIsk DUmper utility
DIskDUmper (didu) is simple dd(1) replacement, much lighter and more standard by options set. The main feature introduced in didu is that bad sectors are not skipped while dumping, but filled with certain byte pattern.
The primary goal of didu is creating and patching back continuous areas of disk devices and files. As now, didu just can select a certain area of input file and paste it into certain area of output file (one can use the whole file as well). To speed up dumping process, didu uses adaptive I/O block sizing. That means dumping always starts with maximal I/O block size, dropping it to the actual read() result when an error or end-of-file occurs. In case of error, the I/O block size then decreased to minimal one. If bad block can not be read from input, the corresponding output block is filled with fill byte to keep overall output image size actual.
- -f, --fill=BYTE
- Fill bad areas with BYTE (default is 0)
- -r, --raw
- Input file is raw device (so has no SEEK_END)
- -v, --verbose
- Produce verbose output
- -b, --begin=ADDRESS
- Begin reading from ADDRESS of input file
- -e, --end=ADDRESS
- End reading at ADDRESS of input file
- -s, --seek=ADDRESS
- Seek for ADDRESS in output file to start writing
- -m, --min=SIZE
- Set minimal I/O block SIZE
- -M, --max=SIZE
- Set maximal I/O block SIZE
- -a, --append=FILE
- Append output to FILE
- -i, --input=FILE
- Use FILE for input
- -o, --output=FILE
- Redirect output to FILE, truncate old one if exists
- -p, --patch=FILE
- Patch output FILE without truncation (default)
- -?, --help
- Give this help list
- --usage
- Give a short usage message
- -V, --version
- Print program version
Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.
ADDRESS and SIZE may be either a <number> (bytes), <numberK> (kilobytes) or <numberM> (megabytes).
EXAMPLES
Suppose we have a disk with badblocks attached to /dev/sdc and want to resurrect filesystems on it. It's better to make an image first:
Now we can use sdc.image as, for example, qemu(1) disk image to reconstruct it safely. It's recommended to use original image read-only, creating another one in copy-on-write mode (it wouldn't grow so large), and syncing data back to original image when the work is done.
When we finished reconstructing, we can paste sdc.image back into fresh undamaged device (/dev/sdd), either by dd(1) or didu(1):
CAVEATS
Patch mode (the -p option) sets output seek position to current input begin position (for equalizing location of dumping area in both files). Similarly, append mode (the -a option) sets output seek position to end of file. Be sure you're using -b option before -p, and -s option after -p or -a. This behaviour is slightly unclear.
HISTORY
First version of didu was written at the end of the previous century to resurrect important data from one of those bloody IBM DeathStar hard drives.
AUTHOR
George V. Kouryachy (a.k.a Fr. Br. George) <george@altlinux.org>.
REPORTING BUGS
Report bugs to https://bugzilla.altlinux.org/enter_bug.cgi?product=Sisyphus&component=didu.
SEE ALSO
dd(1), vim(1) (in vim -b mode)
| April 2009 | didu 1.01 |
