Hello Antonio-

First, thank you for the wonderful tool. I've used ddrescue many times to recover data from failing hard drives, as well as for manually imaging working drives (the progress/speed display is very nice).

I'm curious whether it's possible for ddrescue to preallocate space for the file that it writes using posix_fallocate. I don't envision this as standard behavior; I remember reading a message that you posted to the mailing list saying that on some platforms, the size information is not available at all. Additionally, I've seen failing hard drives report erroneous sizes (such as an 80GB drive showing as 2.1TB -- it apparently reported 0xFFFFFFFF when queried).

If the size is available (which would be a compile-time option) and correct (which would be a runtime option that defaults to false), would you support using a preallocation system call in order to improve filesystem performance and reduce fragmentation? Modern filesystems such as ext4, xfs, ocfs2, etc. support very efficient preallocation of large files and it seems worth it to take advantage of this capability.

I did a quick grep through the source code and didn't find any instance of 'allocate'. My understanding (which is not all that likely to be correct) is that this behavior is distinct from the --sparse option. A sparse file's size is reported to be much larger than the allocated size on disk, whereas the new behavior would tell the filesystem in advance that e.g. the image file will eventually contain 250GB. The filesystem will then allocate this space as contiguously as possible.


Semi-related question: is there a publicly accessible source code repository for ddrescue? I created a repository on GitHub ( http://github.com/mruffalo/ddrescue ) that I will use to publish my changes in the event that I implement this feature myself. It contains all released versions of ddrescue back to version 0.6 and the authorship timestamps match the modification times of the archives on the GNU mirrors. For example:

Author: Antonio Diaz Diaz <[email protected]>  2005-01-04 05:39:00
Committer: Matthew Ruffalo <[email protected]>  2010-05-30 14:16:34
Tags: v0.9

Thank you,
--
Matt Ruffalo...
Department of Electrical Engineering and Computer Science
Case Western Reserve University

_______________________________________________
Bug-ddrescue mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-ddrescue

Reply via email to