Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
GNU ddrescue was written by Antonio Diaz Diaz.

Thanks to Dave Burton for his ideas about the logfile format, the raw
Thanks to Dave Burton for his ideas about the mapfile format, the raw
devices, and more.

Thanks also to the many people who have contributed useful ideas, testing,
Expand Down
24 changes: 11 additions & 13 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
2019-12-17 Antonio Diaz Diaz <antonio@gnu.org>
2020-02-21 Antonio Diaz Diaz <antonio@gnu.org>

* Version 1.25-rc1 released.
* Version 1.25 released.
* block.h: Add default constructors to classes Block and Sblock.
(Reported by Rosen Penev).
* check.sh: Quote all file name variables to allow names with spaces.
(Reported by David Morrison).
* In rescue mode, join non-finished subsectors read from mapfile.
(Reported by David Burton).
* mapbook.cc (update_mapfile): Exclude writing time from intervals.
(Reported by David Burton).
* rescuebook.cc (extend_outfile_size): Use ftruncate if it works.
* Print large numbers in groups of 3 digits separated by underscores.
* main.cc: Set a valid invocation_name even if argc == 0.

2019-04-12 Antonio Diaz Diaz <antonio@gnu.org>

* Version 1.25-pre1 released.
* rescuebook.cc (extend_outfile_size): Use ftruncate if it works.
* block.h: Add default constructors to classes Block and Sblock.
(Reported by Rosen Penev).

2019-02-24 Antonio Diaz Diaz <antonio@gnu.org>

* Version 1.24 released.
Expand Down Expand Up @@ -213,7 +211,7 @@
(whichever is smaller), rounded to the next multiple of sector
size.
* Set current_pos to end of block when reading backwards.
* The '-E, --max-error-rate' option now checks the rate of
* The option '-E, --max-error-rate' now checks the rate of
actually failed reads, not the growth of error size.
* The option '-v, --verbose' now increases verbosity if repeated.
* Changed quote characters in messages as advised by GNU Standards.
Expand Down Expand Up @@ -267,7 +265,7 @@
* main.cc: Outfile is now created with mode 0666 if umask allows it.
* main.cc: New constant 'o_binary'.
* Makefile.in: Added quotes to directory names.
* Makefile.in: Added '--name' option to help2man invocation.
* Makefile.in: Added option '--name' to help2man invocation.
* check.sh: Use 'test1' instead of 'COPYING' for testing.
* Use 'time_t' instead of 'long' for time variables.

Expand Down Expand Up @@ -336,7 +334,7 @@
* An interrupted retry pass is now resumed instead of reinitiated.
* Perfect resumability if interrupted during trimming or splitting.
* ddrescue.cc (set_signals): Handle also SIGHUP and SIGTERM.
* '--quiet' option also quiets error messages.
* Option '--quiet' now also quiets error messages.
* Print a more informative error message when reading an old logfile.
* Added note to ddrescue.texinfo about old logfiles.
* Added some consistency checks.
Expand Down Expand Up @@ -445,7 +443,7 @@
* Version 0.1 released.


Copyright (C) 2004-2019 Antonio Diaz Diaz.
Copyright (C) 2004-2020 Antonio Diaz Diaz.

This file is a collection of facts, and thus it is not copyrightable,
but just in case, you have unlimited permission to copy, distribute, and
Expand Down
6 changes: 3 additions & 3 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ the main archive.
Another way
-----------
You can also compile ddrescue into a separate directory.
To do this, you must use a version of 'make' that supports the 'VPATH'
variable, such as GNU 'make'. 'cd' to the directory where you want the
To do this, you must use a version of 'make' that supports the variable
'VPATH', such as GNU 'make'. 'cd' to the directory where you want the
object files and executables to go and run the 'configure' script.
'configure' automatically checks for the source code in '.', in '..', and
in the directory that 'configure' is in.
Expand All @@ -58,7 +58,7 @@ After running 'configure', you can run 'make' and 'make install' as
explained above.


Copyright (C) 2004-2019 Antonio Diaz Diaz.
Copyright (C) 2004-2020 Antonio Diaz Diaz.

This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.
15 changes: 9 additions & 6 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
Changes in version 1.25:

Default constructors have been added to classes Block and Sblock.
(Reported by Rosen Penev).

A failure in 'make check', happening when testing under a directory with
spaces in the name, has been fixed. (Reported by David Morrison).

In rescue mode, any non-finished subsector that is now found during the
initial read of the mapfile will be joined to its corresponding sector (if
it is also not finished), marking the whole sector with the less processed
state, so as to make sure that sub-sector data will not be discarded from a
succesful read during the rescue. (A subsector is a block smaller than
successful read during the rescue. (A subsector is a block smaller than
sector size). (Reported by David Burton).

The time needed to write the mapfile is now excluded from the mapfile save
and sync intervals. (It seems that some mapfiles take 7 seconds to write).
(Reported by David Burton).

Large numbers in messages (like device sizes) are now printed in groups of 3
digits separated by underscore '_' characters to make them more readable.

Ddrescue now extends the output file using 'ftruncate' if it works, because
it is slightly more efficient.

Default constructors have been added to classes Block and Sblock.
(Reported by Rosen Penev).
Large numbers in messages (like device sizes) are now printed in groups of 3
digits separated by underscore '_' characters to make them more readable.
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ so can be used for any kind of device supported by your kernel (ATA, SATA,
SCSI, old MFM drives, floppy discs, or even flash media cards like SD).


Copyright (C) 2004-2019 Antonio Diaz Diaz.
Copyright (C) 2004-2020 Antonio Diaz Diaz.

This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.
Expand Down
2 changes: 1 addition & 1 deletion arg_parser.cc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Arg_parser - POSIX/GNU command line argument parser. (C++ version)
Copyright (C) 2006-2019 Antonio Diaz Diaz.
Copyright (C) 2006-2020 Antonio Diaz Diaz.

This library is free software. Redistribution and use in source and
binary forms, with or without modification, are permitted provided
Expand Down
2 changes: 1 addition & 1 deletion arg_parser.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Arg_parser - POSIX/GNU command line argument parser. (C++ version)
Copyright (C) 2006-2019 Antonio Diaz Diaz.
Copyright (C) 2006-2020 Antonio Diaz Diaz.

This library is free software. Redistribution and use in source and
binary forms, with or without modification, are permitted provided
Expand Down
2 changes: 1 addition & 1 deletion block.cc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* GNU ddrescue - Data recovery tool
Copyright (C) 2004-2019 Antonio Diaz Diaz.
Copyright (C) 2004-2020 Antonio Diaz Diaz.

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
Expand Down
2 changes: 1 addition & 1 deletion block.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* GNU ddrescue - Data recovery tool
Copyright (C) 2004-2019 Antonio Diaz Diaz.
Copyright (C) 2004-2020 Antonio Diaz Diaz.

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
Expand Down
2 changes: 1 addition & 1 deletion command_mode.cc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* GNU ddrescue - Data recovery tool
Copyright (C) 2004-2019 Antonio Diaz Diaz.
Copyright (C) 2004-2020 Antonio Diaz Diaz.

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
Expand Down
6 changes: 3 additions & 3 deletions configure
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#! /bin/sh
# configure script for GNU ddrescue - Data recovery tool
# Copyright (C) 2004-2019 Antonio Diaz Diaz.
# Copyright (C) 2004-2020 Antonio Diaz Diaz.
#
# This configure script is free software: you have unlimited permission
# to copy, distribute, and modify it.

pkgname=ddrescue
pkgversion=1.25-rc1
pkgversion=1.25
progname=ddrescue
use_non_posix=
srctrigger=doc/${pkgname}.texi
Expand Down Expand Up @@ -174,7 +174,7 @@ echo "LDFLAGS = ${LDFLAGS}"
rm -f Makefile
cat > Makefile << EOF
# Makefile for GNU ddrescue - Data recovery tool
# Copyright (C) 2004-2019 Antonio Diaz Diaz.
# Copyright (C) 2004-2020 Antonio Diaz Diaz.
# This file was generated automatically by configure. Don't edit.
#
# This Makefile is free software: you have unlimited permission
Expand Down
15 changes: 8 additions & 7 deletions ddrescuelog.cc
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* GNU ddrescuelog - Tool for ddrescue mapfiles
Copyright (C) 2011-2019 Antonio Diaz Diaz.
Copyright (C) 2011-2020 Antonio Diaz Diaz.

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
Expand Down Expand Up @@ -53,6 +53,9 @@ void show_help( const int hardbs )
"rescue status, and can delete a mapfile if the rescue is done. Ddrescuelog\n"
"operations can be restricted to one or several parts of the mapfile if the\n"
"domain setting options are used.\n"
"\nUse '-' as mapfile to read the mapfile from standard input\n"
"(also in the options taking a mapfile argument) or to write the mapfile\n"
"created by '--create-mapfile' to standard output.\n"
"\nNOTE: In versions of ddrescue prior to 1.20 the mapfile was called\n"
"'logfile'. The format is the same; only the name has changed.\n"
"\nUsage: %s [options] mapfile\n", invocation_name );
Expand Down Expand Up @@ -84,9 +87,7 @@ void show_help( const int hardbs )
" -y, --and-mapfile=<file> AND the finished blocks in file with mapfile\n"
" -z, --or-mapfile=<file> OR the finished blocks in file with mapfile\n"
" --shift shift all block positions by (opos - ipos)\n"
"\nUse '-' to read a mapfile from standard input or to write the mapfile\n"
"created by '--create-mapfile' to standard output.\n"
"Numbers may be in decimal, hexadecimal, or octal, and may be followed by a\n"
"\nNumbers may be in decimal, hexadecimal, or octal, and may be followed by a\n"
"multiplier: s = sectors, k = 1000, Ki = 1024, M = 10^6, Mi = 2^20, etc...\n"
"\nExit status: 0 for a normal exit, 1 for environmental problems (file\n"
"not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or\n"
Expand Down Expand Up @@ -120,7 +121,7 @@ void parse_types( const std::string & arg,
if( types1.empty() || types2.empty() ) error = true;
if( error )
{
show_error( "Invalid type for 'change-types' option.", 0, true );
show_error( "Invalid type for option 'change-types'.", 0, true );
std::exit( 1 );
}
if( types1.size() > types2.size() )
Expand All @@ -135,7 +136,7 @@ void parse_2types( const std::string & arg,
if( arg.size() != 2 || arg[0] == arg[1] ||
!Sblock::isstatus( arg[0] ) || !Sblock::isstatus( arg[1] ) )
{
show_error( "Invalid type for 'create-mapfile' option.", 0, true );
show_error( "Invalid type for option 'create-mapfile'.", 0, true );
std::exit( 1 );
}
type1 = Sblock::Status( arg[0] );
Expand All @@ -148,7 +149,7 @@ void parse_type( const std::string & arg, Sblock::Status & complete_type )
if( arg.empty() ) return;
if( arg.size() != 1 || !Sblock::isstatus( arg[0] ) )
{
show_error( "Invalid type for 'complete-mapfile' option.", 0, true );
show_error( "Invalid type for option 'complete-mapfile'.", 0, true );
std::exit( 1 );
}
complete_type = Sblock::Status( arg[0] );
Expand Down
10 changes: 6 additions & 4 deletions doc/ddrescue.1
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
.TH DDRESCUE "1" "December 2019" "ddrescue 1.25-rc1" "User Commands"
.TH DDRESCUE "1" "February 2020" "ddrescue 1.25" "User Commands"
.SH NAME
ddrescue \- data recovery tool
.SH SYNOPSIS
Expand All @@ -10,8 +10,10 @@ GNU ddrescue is a data recovery tool. It copies data from one file or block
device (hard disc, cdrom, etc) to another, trying to rescue the good parts
first in case of read errors.
.PP
Always use a mapfile unless you know you won't need it. Without a
mapfile, ddrescue can't resume a rescue, only reinitiate it.
Always use a mapfile unless you know you won't need it. Without a mapfile,
ddrescue can't resume a rescue, only reinitiate it. Be careful to not
specify by mistake an old mapfile from an unrelated rescue.
.PP
NOTE: In versions of ddrescue prior to 1.20 the mapfile was called
\&'logfile'. The format is the same; only the name has changed.
.PP
Expand Down Expand Up @@ -202,7 +204,7 @@ Ddrescue home page: http://www.gnu.org/software/ddrescue/ddrescue.html
.br
General help using GNU software: http://www.gnu.org/gethelp
.SH COPYRIGHT
Copyright \(co 2019 Antonio Diaz Diaz.
Copyright \(co 2020 Antonio Diaz Diaz.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
.br
This is free software: you are free to change and redistribute it.
Expand Down
Loading