The drive controller board is one of the most vital components of the hard disk, as it controls the communication interface between the drive and the computer’s host controller. The controller board ensures the hard disk drive components all function correctly, such as the spindle motor speed, the positioning of the read/write heads and the defect lists.
The earliest available hard disk required a separate controller card slotted into the motherboard, which was dedicated to one particular drive. Each drive had to be low level formatted using the dedicated controller board, so that the defect list could be initialised, ensuring the correct sectors are access at all times.
Managing Defect Lists
The defects lists are extremely important, as they ensure the correct sectors are accessed at all times, otherwise the file system may appear correct. There are two defect lists, the primary list (P-List) and the growth defect list (G-list) which are required. The primary list is created when the drive is factory formatted. This primary list is used to shift the physical sectors read by one each time a bad sector is found, making it appear that all the good sectors appear as a single contiguous run of data. The P-list is never changed, except when a low-level format is initiated.
The G-list is only used once the drive encounters any unreadable bad sectors, at which point they are swapped out using spare sectors. The drive attempts to recover the data from this sector, before moving it to the spare sector zone. The location of the bad sector and spare sector area position are stored in the grown defect list, so that the drive accesses the correct data and never attempts to read the original sector.
Should the defect lists become inaccessible or corrupt, it is highly likely that the wrong sectors will be access. Should the P-List be damaged or lost, it will cause a sector shift to occur for each bad sector which can severely affect the data recovery process. Fortunately, such an event is rare, but when it occurs, the file system will appear to be corrupt.
The Drive Firmware
Each hard drive controller board contains a chip holding the firmware, which acts like a brain, which must function correctly at all times. Any issues with the firmware could result in the disk becoming inaccessible, or it may behave erratically. The most likely cause of firmware damage is high temperatures. There are however, several other possible failures which may result in firmware damage such as power surges and damage due to static electricity due to incorrect handling. Firmware failure does not display the same symptoms between drive manufacturers and even different models of drive. In some cases, the drive will not appear to the bios, in others it may return a reduced capacity or display a default device identifier string.
During the lifetime of a drive range the manufacturer will make updates to the firmware, which means that two apparently identical drives may not have the same firmware. It is essential that if the drive firmware needs to be replaced, the firmware revision on the donor chip must be identical. If a different firmware revision is on the donor it is likely to be incompatible, which may result in the drive functioning incorrectly.
Controller Board Failure and Data Recovery
When the hard disk controller board occurs, it often due to overheating, lack of airflow a common contributing factor. Damage due to a power surge can sometimes occur, which usually damages the voltage regulator, but may also damage the firmware chip. The drive controller board electronic components may also be damaged through inadequate anti-static precautions.
When a controller board of your hard disk fails in your desktop or RAID array, it is important not to panic. You should power the system down, to ensure no further damage can result and make no attempt to recover the data yourself. Contacting a professional data recovery service, such as DiskEng is the best option. Any attempt at replacing the controller board is unwise, as it may not work correctly and may even cause a total loss of data.