[comp.sys.amiga] FFS details

cire@dustbin.cisco.com (Eric B. Decker) (08/17/89)

I am dealing with a hard disk problem that is formated using the Fast File
System.  I know almost nothing about FFS and have no documentation for it.
I have lots of other documentation but not that stuff.  One of the things
I was wondering is how does it ensure data integrity.  So my two questions
are

1) How does the FFS deal with data integrity?  Is there some kind of
   checksum or other protection mechanism?

2) Where can I find detailed specifications of the FFS?

Thanks,

-c
--
cire|eric

Eric B. Decker
Token Ring Development
cisco Systems - engineering
Menlo Park, California

email:	cire@cisco.com
uSnail: 1360 Willow Rd.,  Menlo Park, CA  94025
Phone : (415) 326-1941

daveh@cbmvax.UUCP (Dave Haynie) (08/17/89)

in article <CIRE.89Aug16133920@dustbin.cisco.com>, cire@dustbin.cisco.com (Eric B. Decker) says:
> Xref: cbmvax comp.sys.amiga:41248 comp.sys.amiga.tech:7424

> 1) How does the FFS deal with data integrity?  Is there some kind of
>    checksum or other protection mechanism?

There are checksums on file, directory, and extension blocks under FFS,
but not on data blocks.  These checksums, I suppose, are mainly there for
historical reasons if anything.  The responsibility for checking data is
considered the domain of the device driver, not the filesystem.  So for
floppies, for instance, there will be checksum information on hidden 
blocks outside of the 512 byte DOS managed block.  For SCSI hard drives,
data checking is managed by the drive itself; even the device driver doesn't
see any of that.

> 2) Where can I find detailed specifications of the FFS?

Not sure about that one.  The specs on the Standard FileSystem are in 
the AmigaDOS Technical Reference Manual, which is now part of the large
AmigaDOS book you find in book and computer stores.  It's not written very
well, but most of the information on SFS is there.  FFS from a low-level
point of view is very much like SFS, only the data blocks store only data;
the checksum and parent/next links have been removed.  At a higher level,
FFS is much smarter about the block allocations is makes.  I've hacked 
around with the disk format since 1985, so I can probably answer any 
related specific questions.

> Eric B. Decker

-- 
Dave Haynie Commodore-Amiga (Systems Engineering) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: D-DAVE H     BIX: hazy
           Be careful what you wish for -- you just might get it

lphillips@lpami.wimsey.bc.ca (Larry Phillips) (08/18/89)

In <CIRE.89Aug16133920@dustbin.cisco.com>, cire@dustbin.cisco.com (Eric B. Decker) writes:
>2) Where can I find detailed specifications of the FFS?

I don't know of anywhere you can find the details offhand, but here are all the
differences I know of between the old and new file system.

--------------------

Block 0 (Cyl 0, Head 0, Sector 0 on any partition), contains:

OFS:  'DOS',0
FFS:  'DOS',1

--------------------
Root block:

FFS can have an extension to the bitmap pointer table. The pointer to the next
sector containing pointers to bitmap pages is contained in longword $68

--------------------

Hash chain extensions are sorted in increasing order of blocks pointed to.

--------------------

File data blocks contain  512 bytes of data, with none of the overhead
contained in the OFS scheme. This results in a tradeoff. You trade considerable
speed for less recoverability.

--------------------

-larry

--
"So what the hell are we going to do with a Sun?" - Darlene Phillips -
+-----------------------------------------------------------------------+ 
|   //   Larry Phillips                                                 |
| \X/    lphillips@lpami.wimsey.bc.ca -or- uunet!van-bc!lpami!lphillips |
|        COMPUSERVE: 76703,4322  -or-  76703.4322@compuserve.com        |
+-----------------------------------------------------------------------+

new@udel.EDU (Darren New) (08/22/89)

For various reasons, I wish to write a variant of DiskCopy
except that it would work on my SCSI hard drive. Can anyone
direct me to the sources for a program that can inhibit,
read, and write through the device driver (not the scsi.library)
and that is PD, FD, ShareWare, etc?  I have the Fish disks up
to 196 or so.  The only programs I've seen only work on floopies.
I have the info I need on the FFS (from the manual of the
DiskMechanic program, which I strongly disrecommend).
Thanks in advance -- Darren