🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.nativeapi
Article #6026

Re: Need help with where to start

#6026
From: Andrue Cope [TeamB]
Date: Mon, 20 Jun 2005 08:25
46 lines
2911 bytes
PeterS wrote:

> I was asked at my work to start developing a file recovery tool that
> can work on FAT, FAT32 and NTFS. Although I am not sure where I
> should start? I have tried search engines but no success :(

FATx will be fairly straightforward but NTFS is quite a complicated
beast. For NTFS documentation see:

http://linux-ntfs.sourceforge.net/ntfs/index.html

This documentation is very good. It's not 100% correct nor complete but
it's pretty close.

There are two comments I'd make about this though:

Firstly data recovery is like brain surgery. If you get it wrong you
often make the situation worse and DIY is often inadvisable. All
serious data recovery companies take a sector by sector copy (usually
called an image) of the problem drive then work on that image (or lay
the image down on a 'doner' drive).

Never, ever, work on the original unit and you should encourage and
assist your potential customers to follow this procedure.

I'll also say that 'fixing' the filesystem is often not neccessary and
frequently impractical. It's usually enough to be able to work around
the corruption and pull off surviving data. After that the original
drive can be reformatted and the recovered data copied back on. This
strategy also fits in with the basic rule mentioned above.

Secondly, the code is going to have to be 'bullet proof' and very
suspicious of every structure it reads. Typical programmers have enough
difficulty writing bullet proof code when they are working with good,
reliable data. Data recovery code is going to be working with poor and
frequently downright corrupt data. We were guarding against buffer
overruns before most people knew what the Web was :)

Linux source code will give you some useful pointers but I'm a little
sceptical about its ability to handle corrupt file systems. Not that
I've looked at it much but it doesn't look to be anywhere near as
paranoid as the stuff I churn out :)
-- 
Andrue Cope [TeamB]
[Bicester, Uk]
http://info.borland.com/newsgroups/guide.html
Technical Details
Message-ID: <42b67d91$1@newsgroups.borland.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news-out.nntp.be!propagator2-sterling.newsfeeds.com!in.nntp.be!caladan.landsraad.net!newsgroups.borland.com!not-for-mail
References: <42b5c8bc@newsgroups.borland.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 10cc67,a794610cdc904357
X-Google-Attributes: gid10cc67,public
X-Google-Language: ENGLISH,ASCII-7-bit
From: "Andrue Cope [TeamB]" <no.spam@not.a.valid.address>
Subject: Re: Need help with where to start
Newsgroups: borland.public.cppbuilder.nativeapi
References: <42b5c8bc@newsgroups.borland.com>
Date: Mon, 20 Jun 2005 09:25:52 +0100
User-Agent: XanaNews/1.17.5.2
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
NNTP-Posting-Host: 217.207.223.34
Message-ID: <42b67d91$1@newsgroups.borland.com>
X-Trace: newsgroups.borland.com 1119255953 217.207.223.34 (20 Jun 2005 01:25:53 -0700)
Lines: 46
X-Authenticated-User: acope
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news-out.nntp.be!propagator2-sterling.newsfeeds.com!in.nntp.be!caladan.landsraad.net!newsgroups.borland.com!not-for-mail