bug-ddrescue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-ddrescue] Suggestion for ddrescue in _seriously hosed filesyste


From: Nathan Neulinger
Subject: Re: [Bug-ddrescue] Suggestion for ddrescue in _seriously hosed filesystem_ environment
Date: Wed, 29 Apr 2015 10:57:10 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0



On 04/29/2015 10:40 AM, Antonio Diaz Diaz wrote:
Hello Nathan,

Nathan Neulinger wrote:
If you are using ddrescue against a filesystem (to recover raw file contents) - 
there is a scenario where the current
behavior doesn't handle things well - when the filesystem is hosed to the point 
of causing ddrescue to be killed with
segfaults.

Do you mean recovering a file from a damaged filesystem (mounted read-only I 
hope), as in the following command?

   ddrescue /somedir/somefile outfile logfile

Neither ddrescue nor the kernel should segfault in such scenario. What versions 
of ddrescue and OS are you running? What
type of filesystem?

It was on a synology nas embedded linux, ext4, with some _really_ messed up filesystem content with interrupted fscks, etc. Fresh build of latest 1.19.

I managed to finally get it to read without crashing by adding the -d direct option, so my suggestion may not strictly be necessary. However, until I hit on that, I managed to get all but a portion of the file recovered - it just reran the same blocks each time since it was crashing during the reads when trying to access certain parts of the corrupted file.

It just seemed to me that the 'I'm trying block X' information is lost if the process is uncleanly terminated _while_ trying that block, and seems like there should be something that is recording reads in progress with a fsync of that temporary log while it's running.


I'd like to see two (what I see as probably relatively simple) improvements to 
alleviate this:

They are not so simple. So I would like to be sure that they are useful before 
trying to implemente them.


    1. Implement a "--log-every-time" option - you could use "-e" it looks like.

The '-e' option is already taken since version 0.1 (2004). You are using GNU 
ddrescue. Aren't you?

Ah, missed that while reading list of options... being blind.


Best regards,
Antonio.

-- Nathan

------------------------------------------------------------
Nathan Neulinger                       address@hidden
Neulinger Consulting                   (573) 612-1412



reply via email to

[Prev in Thread] Current Thread [Next in Thread]