# $Id$ # Main page of 'My::Project::badblock_guess' # Copyright (C) 2003-2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; exactly version 2 of June 1991 is required # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA package project::badblock_guess::Index; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; use strict; use warnings; use My::Web; Wuse 'project::Lib'; our @ListItem=( "name"=>"badblock-guess", "platform"=>"unixuser", "priority"=>590, "icon"=>"hdd-icon.jpeg", "download-compiled static binary"=>"badblock-guess", "download-gzipped compiled static binary"=>"badblock-guess.gz", "cvs"=>"badblock-guess", "link-README"=>'http://git.jankratochvil.net/?p=badblock-guess.git;a=blob_plain;hb=HEAD;f=README', "summary"=>"Data recovery from a damaged disk", "license"=>"GPL", "maintenance"=>"ready", "language"=>"C", "description"=><<"HERE",

badblock-guess will recover all readable sectors of the disk in minimal time while trying to prevent disk read retrying head recalibrations.

HERE ); sub handler { project::Lib->init(); print <<'HERE';

It is similiar to:

dd if=<src_dev> of=<dst_dev> bs=512 conv=noerror,sync

but dd(1) solution can last for many weeks/months on heavily corrupted disk.

This program will not recover data of any sector with failing read command. If dd(1) command above finishes for you in a reasonable time, you do not need this program.

HERE exit; } 1;