|
A step-by-step example of how to use this
function can be found here.
Introduction
DiskPatch allows you to scan a selected partition, an entire disk or a user
defined area of the disk for what is
commonly referred to as 'bad sectors'. Bad sectors can be the cause for many
types of data loss: files may become corrupt because some of the sectors that the
file was saved to have become unreadable, or whole partitions may become in-accessible because the structures that define the partitions contain
unreadable sectors.
Sometimes disk problems can be fixed by
the tools that are included with several operating systems: scandisk, checkdisk
or similar tools will sometimes restore access to files if disk structures such
as the FAT were damaged. These tools however do not correctly address the
problems that might arise from bad sectors. Let's look at this a bit more
closely:
The first priority for a tool such as scandisk or checkdisk is a consistent file
system. In other words, their main job is to keep the file system okay, not
the actual data that resides on the disk. If a problem occurs with the
file system, scandisk or checkdisk may repair the damage, but always in favor of
the file system. The result may be that access to actual data can be compromised
because the repair could only be completed by removing references to certain
files from the file system. These removed files (or fragments of them) then
appear as filexxxx.chk files (in case of scandisk or checkdisk).
Another point of interest is how tools like scandisk and checkdisk handle read
problems. To put it simple: they don't do that very well. If they encounter a
read problem (a bad sector) the entire cluster that the bad sector was a part
of, is discarded. If a disk has large clusters (32K clusters for FAT32 is
normal, that's 64 sectors per cluster) you lose capacity, not to
mention the impact this may have on files or file system structures. Also, since
scandisk and checkdisk by default only check the used areas of the disk, bad
sectors may not announce themselves until data is written to one. That may be
too late.
How modern day hard disks handle
read errors:
These days disks have a so called 'spare pool' of sectors. When a sector
on a disk becomes unreadable and should be taken out of commission, the
disk maps one of the sectors from the spare pool to the location that
contains the unreadable sector. The problem sector is not 'replaced' as
such, but simply ignored from now on: the sector from the spare pool is
used when the disk accesses the original bad sector. This process is
called 'remapping', or 'sector reallocation'.
It is possible to enforce this remapping process: when a sector becomes
inaccessible, it is usually only remapped when the 'bad sector' is
accessed for a write operation after it has been detected as being a
'bad sector'. By writing to a sector on the disk the remapping is
triggered IF the sector was marked for remapping. This effectively 'fixes' an unreadable sector, as long as the
spare pool is not yet depleted.
It's important to understand that when we speak of 'repairing bad
sectors', the remapping as described above is what we're talking about. |
DiskPatch surface scanning
DiskPatch will scan each sector on the disk, whether it's a part of a
FAT, filled with data or empty. By allowing DiskPatch to detect 'bad
sectors' before the Operating System or the on-board disk repair tools do, you allow your
hard disk's
internal error management to take care of the bad sector: it will be
re-allocated.
The surface scan is a smart scan: the scan starts by reading sectors along the
disk. Once a read error comes up the bad sector will be re-read and written to
as needed, to try to read the data and 'repair' the bad sector. The sector will
be verified and then the scan will continue.
By default DiskPatch will stop the scan after the first read error was found.
This way you are made aware of the state of the disk before actual repair
attempts are made. This behavior can be changed by changing this
setting in the settings screen before starting the surface scan.
DiskPatch interacts with sectors on a low level and does not interact with the
file system. When DiskPatch detects a read problem, it is handled (by
the disk) using
one of the following strategies:
-
Error on read that can be corrected:
Hard disks apply multiple strategies for correcting 'bad' data allowing the
disk to provide you with your data even if a sector could not be read
entirely. If the data in a sector can be recovered using this strategy, the
data is copied to a spare sector and the bad sector is taken out of service.
- Error on read that could not be corrected:
If a sector can not be read and the hard disk's automatic error correction can not recover
the data in the sector, the sector will become a candidate for reallocation.
A read error will be reported. The candidate for reallocation will be
reallocated when the sector is accessed for a write operation.
- Error on write:
The bad sector is taken out of service and the data is immediately written
to a spare sector. In other words, the bad sector is 'reallocated'.
If sectors were corrected they will not appear
again during the next disk surface scan; this means that if errors that appeared
in the first surface scan do not appear in the next surface scan, these 'bad
sectors' were reallocated and should now be available again for use.
Using DiskPatch to find and correct disk errors
There are a number of configuration settings
that affect DiskPatch's behavior during surface scanning. Make sure these
settings are correct before starting the scan.
The settings that affect surface scanning are:
- read retries
- write retries
- read error threshold
- write error threshold
- interrupt scan on first read error
- disk reset after error
- write sector after read error
- verify fixed bad sectors
If a read error is
encountered and the data can be read from the sector, the data will be
placed in a spare sector and the problem is solved.
If the data can not be read, a read error is reported and the sector becomes a candidate for
reallocation; the
data in the sector is lost and the candidate sector will be
reallocated during the next write operation. What happens next depends on
the configuration settings. By default DiskPatch will attempt to write to the
sector to enforce the reallocation (the 'write sector after read error'
setting). That will be followed by another read attempt to verify that the
sector has indeed been reallocated (the 'verify fixed bad sector' setting). If
that last action fails the sector is reported as bad by DiskPatch, and will
still be considered bad by the disk.
If a sector can not be read on the first attempt, DiskPatch will retry the
read action as many times as is configured in the 'Read
Retries' setting. If the read eventually succeeds, the correct sector
handling strategy is applied.
You can use our
S.M.A.R.T. utility or the disk's manufacturer diagnostic tool
(refer to the disk manufacturer website) to determine the exact condition
of the hard disk. Once the pool of spare sectors has been exhausted bad sectors
can no longer be reallocated, and bad sectors will continue to appear during
surface scans.
Settings that affect a surface scan:
- interrupt scan on first read error:
on by default. When a read error is encountered DiskPatch will halt the
surface scan and display the settings screen. Adjust the settings as needed
and continue the scan by exiting the settings screen (press <esc>). By
doing this the user is made aware of the state of the disk. If you wish to
let the scan run uninterrupted, adjust this setting in the settings screen
before starting the surface scan.
- disk reset after error:
when enabled DiskPatch will send a
disk reset command to the hard disk after encountering a read- or write
error. This may have a positive effect on further read or write actions, but
might also slow down the read- or write operation considerably.
To run a surface scan:
Select [Disk related tasks], [Surface Scan], then select a partition to scan or select a region of the disk manually:

To scan the
entire disk, select 'entire disk' and leave the suggested default values
(just press <enter>).
When you press <esc> during the
scan, DiskPatch will display the settings screen:

You can adjust settings that affect the
surface scan, or abort the operation by selecting the 'Abort' option. Press
<esc> again to exit the settings screen and continue with the new
settings.
What happens when a bad sector
is encountered:
If DiskPatch encounters a bad sector during a read operation and the
sector's contents can not be read at all, DiskPatch replaces the sector
data with a text string: DPBADSECTOR. If the contents of the (bad)
sector are written to disk after the read error, the sector data
will contain this string. This can help to locate files that were
affected by the read errors: search through the files and use
DPBADSECTOR as a search string. |
|