Next: , Previous: , Up: Top   [Index]


6 Logfile structure

The logfile is a text file easy to read and edit. It is formed by three parts, the heading comments, the status line, and the list of data blocks. Any line beginning with ‘#’ is a comment line.

The heading comments contain the version of ddrescue or ddrescuelog that created the logfile, the command line used, and the time when the program started. If the logfile was created by ddrescue it will also contain the current time when the logfile was saved and a copy of the status message from the screen describing the operation being performed (copying, trimming, finished, etc). They are intended as information for the user.

The first non-comment line is the status line. It contains a non-negative integer and a status character. The integer is the position being tried in the input file. (The beginning of the block being tried in a forward pass or the end of the block in a backward pass). The status character is one of these:

CharacterMeaning
’?’copying non-tried blocks
’*’trimming non-trimmed blocks
’/’scraping non-scraped blocks
’-’retrying bad sectors
’F’filling specified blocks
’G’generating approximate logfile
’+’finished

The blocks in the list of data blocks must be contiguous and non-overlapping.

Every line in the list of data blocks describes a block of data. It contains 2 non-negative integers and a status character. The first integer is the starting position of the block in the input file, the second integer is the size (in bytes) of the block. The status character is one of these:

CharacterMeaning
’?’non-tried block
’*’failed block non-trimmed
’/’failed block non-scraped
’-’failed block bad-sector(s)
’+’finished block

And here is an example logfile:

# Rescue Logfile. Created by GNU ddrescue version 1.19
# Command line: ddrescue -d -c18 /dev/fd0 fdimage logfile
# Start time:   2014-05-03 09:37:44
# Current time: 2014-05-03 09:38:19
# Copying non-tried blocks... Pass 1 (forwards)
# current_pos  current_status
0x00120000     ?
#      pos        size  status
0x00000000  0x00117000  +
0x00117000  0x00000200  -
0x00117200  0x00001000  /
0x00118200  0x00007E00  *
0x00120000  0x00048000  ?

If you edit the file, you may use decimal, hexadecimal or octal values, using the same syntax as integer constants in C++.

NOTE: Logfiles generated by a version of ddrescue prior to 1.6 lack the status line. If you want to use an old logfile with ddrescue 1.6 or later, you will have to insert a line like ‘0 +’ at the beginning of the logfile.


Next: , Previous: , Up: Top   [Index]