Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
FIZ(1)			    General Commands Manual			FIZ(1)

       fiz - analyze damaged zoo archive for data revovery

       fiz archive[.zoo]

       Fiz  is	used  to analyze damaged zoo archives and locate directory en-
       tries and file data in them.  The current version of fiz	is 2.0 and  it
       is  meant to be used in conjunction with	zoo version 2.0.  Fiz makes no
       assumptions about archive structure.  Instead, it simply	 searches  the
       entire subject archive for tag values that mark the locations of	direc-
       tory entries and	file data.  In a zoo archive, a	directory  entry  con-
       tains  information  about  a stored file	such as	its name, whether com-
       pressed or not, and its timestamp.  The file data are the  actual  data
       for  the	archived file, and may be either the original data, or the re-
       sult of compressing the file.

       For each	directory entry	found, fiz prints where	in the archive	it  is
       located,	 the  directory	 path and filename(s) found in it, whether the
       directory entry appears to be corrupted (indicated by  [*CRC  Error*]),
       and  the	value of the pointer to	the file data that is found in the di-
       rectory entry.  For each	block of file data found in the	 archive,  fiz
       prints where in the archive the block begins.  In the case of an	undam-
       aged archive, the pointer to file data found in a directory entry  will
       correspond to where fiz actually	locates	the data.  Here	is some	sample
       output from fiz:

	   2526: DIR  [changes]	==>   95
	   2587: DATA
	   3909: DIR  [copyrite] ==> 1478
	   3970: DATA
	   4769: DATA

       In such output, DIR indicates where fiz found a directory entry in  the
       archive,	 and  DATA indicates where fiz found file data in the archive.
       Filenames located by fiz	are enclosed in	square brackets, and the nota-
       tion  "==>   95"	indicates that the directory entry found by fiz	at po-
       sition 2526 has a file data pointer to position 95.  In actuality,  fiz
       found  file  data  at  positions	2587, 3970, and	4769.  Since fiz found
       only two	directory entries, and each directory entry corresponds	to one
       file, one of the	file data positions is an artifact.

       Once  the locations of directory	entries	and file data are found, the @
       modifier	to zoo's archive list and extract commands can be used and the
       archive	contents selectively listed or extracted, skipping the damaged
       portion.	 This is further described in the documentation	for zoo(1).

       In the above case, commands to try giving to zoo	might  be  x@2526,2587
       (extract	 beginning  at	position 2526, and get file data from position
       2587),  x@3090,3970  (extract  at  3090,	 get  data  from   3970)   and
       x@3909,4769  (extract  at 3909, get data	from 4769).  Once a correctly-
       matched directory entry/file data pair is found,	zoo will in most cases
       synchronize  with and correctly extract all files subsequently found in
       the archive.  Trial and error should allow all undamaged	 files	to  be
       extracted.   Also  note that self-extracting archives created using sez
       (the Self-Extracting Zoo	utility	for MS-DOS), which are	normally  exe-
       cuted on	an MS-DOS system for extraction, can be	extracted on non-MSDOS
       systems in a similar way.


       Random byte patterns can	occasionally be	incorrectly recognized as  tag
       values.	 This  occurs  very  rarely, however, and trial	and error will
       usually permit all undamaged data to be extracted.

       Fiz always exits	with a status code of 0.

       Automation of data recovery  from  a  damaged  archive  is  potentially
       achievable.   However, since damaged archives occur only	rarely,	fiz as
       it currently stands is unlikely to change much in the near future.

       Rahul Dhesi

				 Jan 31, 1988				FIZ(1)


Want to link to this manual page? Use this URL:

home | help