dd_rhelp is a bash script that handles a very usefull program written in C by Kurt Garloff which is called dd_rescue. dd_rhelp roughly act as the dd linux command with the characteristic to NOT stop when it falls on read/write errors.
This makes dd_rescue the best tool for recovering hard drive having bad sectors. (dd_rescue can be found : http://www.garloff.de/kurt/linux/ddrescue )
But using it is quite time consuming. This is where dd_rhelp come to help.
In short, it'll use dd_rescue on your entire disc, but will try to gather the maximum valid data before trying for ages on badsectors. So if you leave dd_rhelp work for infinite time, it'll have the same effect as a simple dd_rescue. But because you might not have this infinite time (this could
indeed take really long in some cases... ), dd_rhelp will jump over bad sectors and rescue valid data. In the long run, it'll parse all your device with dd_rescue.
You can Ctrl-C it whenever you want, and rerun-it at will, it'll resume it's job as it depends on the log files dd_rescue creates.
In addition, progress will be shown in a ASCII picture of your device beeing rescued.
As stated by Kurt Garloff for his dd_rescue program :
"Just one note: It does work. I unfortunately did not just create this program for fun ..."
As it is for dd_rhelp, which has saved me YEARS on my hard drive.
For some times, dd_rhelp was the only tool (AFAIK) that did this type of job, but since a few years, it is not true anymore : Antonio Diaz did write a ideal replacement for my tool : GNU 'ddrescue'.
Yes, this is not very clever to have called a tool the same name that 'dd_rescue' from Kurt Garloff (catch the subtle difference between 'ddrescue' and 'dd_rescue' ?), but it seems that it was done by intent as we warned Antonio Diaz from the fact it would probably mess users in this tiny world of hard drive recovery tools.
Nevertheless, I really encourage you to use this replacement tool if it works for you (and it should be the case). Why ? Understand first what we are comparing :
- dd_rhelp (in bash script) + dd_rescue (in C) in one hand
- ddrescue (in C) in the other.
dd_rhelp was meant as a quick hack to implement what dd_rescue didn't do, and what couldn't be done at that time (AFAIK).
It could be some cases where ddrescue won't work, and this is the major reason why I keep maintaining dd_rhelp. It is important to tell me and Antonio Diaz when these cases occur.
Now that you are enlightened, you are free to use dd_rhelp.
Why do people want to use dd_rhelp ?
Well, you do not WANT to use dd_rhelp. I hope you'll never HAVE TO use it.
Basically, if you have bad sector corrupting your filesystem you'll have several solutions depending on the filesystem itslef, the partition table, and what remains accessible...
In some recovering process, as a first stage, you'll need to secure all the remaining data of your disk (or partition) in a file on a healthier filesystem. Often, next operations are to mount the file with loopback device (for example) to rebuild the damaged filesystem information. Once the filesystem meta-data has been reconstructed on the healthier filesystem, chances are that you'll be able to access files. These could then be in various states depending of how
they have been affected by the damages. Possible file states are ranging from completely recovered without any further work, to lost, damaged, scrambled, and often anonymously collected in your filesystem lost-and-found repository...
dd_rhelp and dd_rescue are meant to be in the very first phase only : securing your remaining data into a another file.
dd_rescue which has been created by Kurt Garloff, is a great program. And could already help you without dd_rhelp. But in some case, like disks cluttered with bad sectors, it can be time consuming to use for 2 main reasons :
1 - it does straight recovery, and thus can spend months making it's path in a solid bunch of bad sectors before rescuing hole portions of perfectly sain data hidden just after.
2 - if you decide to manoeuver dd_rescue to stop him when he's bumping in large sequences of bad sectors and try to start it from spots to spots in normal or reverse direction (as dd_rescue options allows this), then this can require a lot of YOUR time.
It is where dd_rhelp comes to help : it is a wrapper for dd_rescue. This means it'll call it with various arguments to change it's start position or the direction of the scanning process. It'll guide dd_rescue into a new behavior which will lead to rescuing much more data in the beginning of the process all over the disk.
· It worked fine for me (Home made distrib) on big harddrives (partitions of · 15 Gigs). Received positive feedbacks on large partition (60 Gigs and 200 Gigs), and it should only be limited by the linux kernel limitation. Though the bash script could be longer to compute next position in very large disk with lots of bad sectors scatered all over your disk.
· It worked on Debian, and on a Knoppix CD. After each release, I test it on a knoppix with a 1.44M diskette with badsectors or damaged CD-ROM/DVD-ROM.
· Darwin/MacOSX should be supported with GNU sed, GNU bc installed. Has been working since 0.0.6 . This support is erratical, so more feedback are appreciated.
What's New in This Release:
· Some annoying bugs were corrected.
· Installation is easier.
· Log file creation is checked for a sane environnement.
· More and simpler information is displayed.
· The behavior has been tweaked to avoid creation of too many data chunks, which greatly slowed the execution of dd_rhelp and the recovery process.