Analysis of Seagate Sector Access Interruption
Sector access interruption of Seagate drives is a hard nut to crack in data recovery industry with a high probability of occurrence, but if we want to repair it, it will be time-consuming and the success rate is low. Compared to other malfunctions of Seagate drives, it is very easy to determine and identify "sector access interruption" problem. The symptoms are that when scanning, we can normally read out the data from sector 0 to a specific sector, but from that specific sector to the end, all the sectors are unable to get the data with errors of ERR and UNC (Ie, the ERR light of device status and UNC light of error status will light up). We can confirm the problem is "sector access interruption" if one Seagate drive is with above two symptoms. Basically, Seagate repair tools in the market are able to solve some "sector access interruption" cases, but those tools can not solve all of them. Why? This is because "sector access interruption" can be divided into four different types, and different type needs different solution. So this document will have a depth analysis of Seagate sector access interruption, aiming to help users to locate the real problem the very first time and use the best solution to work it out. In fact, the root cause of "Seagate sector access interruption" is translator disorder. And now let's discuss the possible reasons of translator disorder. We know that the translator is actually an address convertor. When computer reads data from hard disk, it will tell the disk the needed content with a specific LBA address, so that the disk will return the data of that corresponding address. However, address description form of underlying firmware needs to be positioned to C (Cylinder), H (Head) and S (Sector), and in the process of translation, some bad sectors can be shielded, so that the logical address will looks like a continuous linear address while corresponding physical address is with projective mapping jumps. As shown in the picture:
In short, that is, if there is no any shielded sector, PBA=LBA; if there are shielded sectors, PBA=LBA+ the length of all shielded sectors. The situation of "PBA=LBA" is an ideal state, because bad sectors will come into being from the beginning of hard drive's production. Generally, hard drive's sectors can be divided into firmware area, work area and reserved area. Firmware area and reserved area are not accessible to users, so we can not directly operate them. In fact, the number of actual sectors is larger than the number we can see from disk label. Among those sectors, a part of them are used to store firmwares, a part of them belong to work area and are used to store user data (the capacity of them equals with the one in disk label), and the rest are reserved area. However, hard disk wont reserve some sectors for reserved area veritably, it is only because the available sectors are more than the defined sectors, so the exceeded sectors will be regarded as reserved sectors. We've discussed the structure of all sectors just now, and here we will pay attention to the structure of a single sector. There are two main parts of one complete single sector: location identifier of stored data and segment of stored data. As shown in the picture:
The first major part of one sector is the identifier. Identifier refers to sector header, which consists of three digits that make up the sector's three-dimensional address: the using head of this sector(or platter), the track (or cylinder number) and the track position of this sector(ie, sector number). There is one field in the header, in which there is a flag that shows whether the sector can reliably store data or whether a fault has been found and therefore the sector should not be used. Some hard drive controllers will record pointers in the header, and if an error occurs in the original sector, pointers will lead the disk to reserved sectors or tracks. Last, sector header is ended up with a value of Cyclic Redundancy Check(CRC) for the controller to check the readout situation so as to ensure everything is okay. The second major part of one sector is the segment of stored data, which can be divided into data part and ECC part. During initial preparation, computer will fill this segment with 512 virtual information bytes (the place where actual data is stored) and ECC number corresponding to them. ECC refers to Error Checking and Correcting, it is a technology which can achieve error checking and correction. ECC value has its own set of calculation formula and algorithm. For Seagate drives, ECC is the common function of Data and LBA, the specific formula is ECC=f (Data, LBA). Both Data and LBA are input parameters, and this means any change of LBA will result in the change of ECC value. And the reason why UNC error light will be on when sector access interruption happens is just because LBA has changed, and when read & write subsystem using this new LBA to calculate ECC, this calculated ECC value can not match with the stored ECC value. So the read & write subsystem thinks the data of this sector is not credible, and it reports UNC error. But we need to know that not all hard drive manufactures use this ECC formula, such as the ECC formula of Western Digital is ECC=f (Data). We can see LBA is no more an input parameter, and this is the reason why there is no sector access interruption problem among Western Digital drives. In summary, for hard drives which use LBA address as ECC input parameter might have the problem of sector access interruption, like Seagate drives and Hitachi ARM series; for hard drives which do not use LBA address as ECC input parameter wont have sector access interruption problem at all, like Western Digital drives and Toshiba drives. |