В нашем случае АН =10, что означает ошибка контрольной суммы (ЕСС) поля данных. В «окне» с номером 2 отладчика видим, что произошла запись в буфер начинающийся с адреса 1000 (замена байтов с кодом 55 произошла). Это означает, что сектор был прочитан, хотя и с ошибками контрольной суммы.
Заменив в нашей программе одну команду MOV АН,02 на команду MOV АН,03 мы превращаем ее в программу записи в сектор. С помощью программы записи в сектор можно попробовать сделать запись в сбойный сектор. Значение байтов в буфере можно предварительно заменить, например, на FF командой:
F 1000, 200, FF.
Выполнив после этого программу записи 512 байтов кода FF из буфера в сбойный сектор, наблюдаем значение флага CF. Значение флага CF равно нулю, что говорит об отсутствии сбоя при выполнении записи в сектор. Прочитаем теперь этот сектор, «старой» программой чтения сектора, заполнив предварительно буфер памяти кодом 00 (для удобства наблюдения). Повторное чтение этого сектора показало, что чтение записанных в сектор кодов FF прошло без ошибок. Проведя такую же проверку и по другим сбойным секторам, убедились в том, что ошибки исчезли. На основе этого можно сделать вывод о наличии случайных сбоев, которые удалось устранить записью информации в сбойные секторы описанным выше способом. Конечно, программу можно усовершенствовать, сделать ее пригодной для более полной проверки поверхности на различных данных и устранения записью подобных случайных сбоев.
Проводить проверку поверхности и исправлять информацию в блоках данных секторов (и их контрольных суммах) дорожки безопаснее специальными фирменными программами, так как результат может быть неоднозначным вплоть до потери дисковода (возможна потеря служебной информации, записанной на заводе- изготовителе). Чтобы подобных сбоев было как можно меньше, нужно аккуратно относиться к такому сложному электромеханическому устройству. как жесткий диск. Осторожно устанавливать его в системный блок, правильно подключать кабели питания, интерфейса, устанавливать корректные параметры диска в CMOS- памяти. Не размещать жесткие диски близко к скоростным дисководам CD-ROM, которые вызывают вибрацию корпуса и вследствие этого возможен резонанс механических колебаний в узлах жесткого диска.
В заключение можно отметить, что из полученной первичной информации по логическому разбиению жесткого диска было видно, на физическом диске был создан один раздел, полностью занимающий диск. Программа, выполняющая высокоуровневое форматирование, обнаружила, что секторы, в которые она должна была записать системную информацию раздела, имеют дефекты. То есть системная область логического диска должна быть размещена в сбойных секторах. Поэтому программа разместила системные области раздела (BOOT, FAT и каталог) с 18 цилиндра, на котором отсутствовали дефектные секторы, и с которого начиналась достаточно большая бездефектная зона, достаточная для размещения всей системной области.
Учитывая это мы решили уменьшить размер логического диска (уменьшится, как следствие, размер FAT), чтобы разместить логический диск небольшого объема в зоне, которая была отвергнута программой как дефектная при создании большого раздела. Попытка завершилась удачно, так как сбойные секторы попали в область данных, а программа логического форматирования промаркировала кластеры, содержащие дефектные секторы как ВAD-кластеры. В результате проведенного логического форматирования на физическом диске был организован еще один логический диск, который начинался с первого сектора первой поверхности нулевого цилиндра.