From: dplatt@ntg.com (Dave Platt)
Newsgroups: comp.sys.mac.system
Subject: Re: File copy unsuccessful -- what to do?
Date: 29 Dec 92 06:37:50 GMT
Organization: New Technologies Group, Inc.  Palo Alto CA

>My hard drive format util, APS power tools 2.6.4, can be coaxed to print
>what it calls the "P" and "G" lists, which are lists of defects. What's the
>difference between the two? 

"P" is the "primary" list - the set of defects which were identified at
the factory when the drive was manufactured.

"G" is the "grown" list.  It consists of blocks which were identified as
being bad after the drive was shipped.  There can be at least three ways
that blocks are added to the "G" list - during low-level formatting-
and-verification passes (if the block fails to verify), during normal
operation (if the block cannot be read or written), and at user request
(either by passing the block number as a parameter to the FORMAT
command, or via the REASSIGN BLOCK command).

>                       Also it has a feature that will scan the hard
>drive and remap bad sectors to good, without you having to reformat. This
>feature has a lot of problems (chief among them that it only works about
>half the time) but what does it actually do? 

Good question.  As far as I know there's no standard method for
un-flawing a block with the disk in use.  The only standard method I've
seen used is one where the program reads the G list, removes some or all
of the blocks from that list, and then reformats the drive with FORMAT
options which mean "Erase the existing G list and replace it by this one
I'm giving you."

>                                        My guess is that there is a
>list of bad blocks stored at the start of the disk and the disk driver
>checks this list for every block it is asked to read/write. Is this
>correct?

The drive controller itself does this, for all drives with embedded SCSI
controllers (at least, all the ones I've used or heard about).  Most
drives seem to keep a list of known defect positions in nonvolatile
memory (in a reserved cylinder, or in NVRAM) and use this list to
reassign the blocks during formatting.

It's quite common for a defective block to be "mapped out" by a
technique known as sector slipping.  The entire track or cylinder
containing the defect is reformatted "on the fly" (the data is copied
safely out of the way first).  The defective sector isn't reformatted in
the usual way... it's just overwritten with a code which means "Don't
look here".  The subsequent sectors on the track (and, sometimes, the
sectors on the rest of the cylinder) are reinitialized with new
logical-block numbers (one less than they had before)... in effect, the
sectors on that track or cylinder simply "slip" backwards in physical
position.  The last sector on that track (or cylinder) "slips" into
position in a spare-sector location which was reserved when the drive
was originally formatted (the number of these spare sectors can usually
be adjusted).

>And does anyone know of a formatting utility that WILL deal effectively
>with bad blocks that develop on Syquests. I mean one that will not only
>find them all, but will also tell you which files have been affected and
>should be checked.

I'm quite happy with FWB's Hard Disk Toolkit for handling low-level
defect management... it does surface tests (either with or without
automatic block reassignment), lets you reassign blocks manually, and
adjust the spare-sector reservation algorithms before formatting.  I
don't think it IDs the affected files, though.


-- 
Dave Platt                                                VOICE: (415) 813-8917
              Domain: dplatt@ntg.com      UUCP: ...netcomsv!ntg!dplatt
 USNAIL: New Technologies Group Inc. 2470 Embarcardero Way, Palo Alto CA 94303
Newsgroups: comp.sys.mac.system