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 [email protected]
Neulinger Consulting (573) 612-1412
_______________________________________________
Bug-ddrescue mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-ddrescue