Article View: borland.public.cppbuilder.nativeapi
Article #6026Re: Need help with where to start
From: Andrue Cope [TeamB]
Date: Mon, 20 Jun 2005 08:25
Date: Mon, 20 Jun 2005 08:25
46 lines
2911 bytes
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-mailReferences:
<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