Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 2000 10:19:45 -0400
From:      "Thomas M. Sommers" <tms2@mail.ptd.net>
To:        Sergey Babkin <babkin@bellatlantic.net>
Cc:        "Gary T. Corcoran" <gcorcoran@lucent.com>, "Jordan K. Hubbard" <jkh@zippy.cdrom.com>, hackers@FreeBSD.ORG
Subject:   Re: Way off-topic, but anybody know how to resurrect files from FAT-12?
Message-ID:  <39464301.4CDA218E@mail.ptd.net>
References:  <200006121452.HAA74024@zippy.cdrom.com> <39453A78.565BDECC@lucent.com> <39456F52.BC507026@bellatlantic.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Sergey Babkin wrote:
> 
> "Gary T. Corcoran" wrote:
> >
> > "Jordan K. Hubbard" wrote:
> > >
> > > I'm sitting here in Seoul, Korea (which is very nice, by the way) and
> > > I've just managed to delete all 82 images of Kyoto off the FAT-12 format
> > > Smartcard they were on.  Waaaah!
> > >
> >
> > Way back in the Dark Ages I used to hack on FAT-12 code...
> > Going *way* back in the archives - (had to find a 5-1/4 inch floppy
> > drive!) it looks as if there are directory entry attributes at the byte
> > at dirptr+11, and the lower bits (ANDed with 0x1C) should be 0.  Otherwise,
> > if I recall (don't have reference books here), there is a bit saying
> > the file is deleted (other bits say subdirectory, system file, etc.)
> > So you may just have to change that one byte (per file) to recover them
> > (in addition to changing the first byte of the file name which you
> > already did).
> 
> The clusters in the FAT have to be re-connected. The number of the
> first cluster is still stored in the directory entry, as well as
> directory file size. Then hoping that the files were written sequentially
> you start from that cluster and link together as many free clusters going
> sequentially after it to cover this file size. FAT-12 is an array of
> 12-bit entries, each corresponding to a cluster. An entry contains the
> number of the next cluster in file. The last cluster in a file has some
> special value in its FAT entry, something like 0xFFF or 0xFFE, can't

The last cluster is indicated by any value from 0xff8 to 0xfff.  0xff7
indicates a bad cluster.  0xff0 - 0xff6 mark reserved clusters.

> remember exactly. The unallocated clusters have value like 000 in their
> entries. The cluster size for FAT-12 will probably be equal to one
> sector, that is 512 bytes. At least that's true for diskettes but may be
> different for the Smartcard.

The cluster size is at offset 0xd in the boot sector.  
 
Also, there are usually 2 copies of the FAT, both of which should be
fixed.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39464301.4CDA218E>