Sunday, 11 July 2010

Bad sectors, part I - soft bad sectors

There are two kinds of bad sectors - those that can be recovered by overwriting and those that can't.

It is almost impossible (and would be very expensive for practical usage anyway) to create a perfect magnetic surface without a single defect. Instead of trying to create a perfect surface, additional redundant data is written along with the user data. It is data then possible to recover short data sections which were read incorrectly based on the redundant data. This is called Error Correction Code (ECC). Nevertheless, the capability of ECC to correct the errors is limited. It is not possible to recover either too many bad bits or too long a continuous bad section.

If a power failure occurs when you are writing data to the drive, the write procedure may be interrupted approximately halfway. Thus, the first half of the sector contains the new data while the other half still has the old data. Error correction code is not capable of fixing such a error, and when attempting to read the sector, it will be declared bad.

In fact, such a sector is not mechanically bad, it just contains the data with a wrong checksum. To fix this, it is enough to write a new data to the sector, and the sector will then function properly.

The truly mechanical damage - the destruction or wear of magnetic surface - cannot be corrected in such a way.

No comments:

Post a Comment