Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/h10u20/public_html/remont-kompa.ru/index.php:1) in /home/h10u20/public_html/remont-kompa.ru/index.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/h10u20/public_html/remont-kompa.ru/index.php:1) in /home/h10u20/public_html/remont-kompa.ru/index.php on line 2
Адаптивы Fujitsu MPG / remont-kompa.ru







Отремонтируй компьютер сегодня

Авторизация
Статьи

Ремонт и настройка компьютеров

Подписаться письмом

???????@Mail.ru Rambler's Top100



Основное содержание
HDD:Адаптивы Fujitsu MPG
Адаптивы содержаться в 20h модуле в начале и в ПЗУ в конце.
в модуле - первые 512 байт. Если винт безадаптивный, то в начале модуля пусто. если по адресу 0x2b в прошивке стянутой с харда (PB15-16) заменить 0xxxxxxx на 1xxxxxxx тогда какби прошивка становиться адаптивной, но сами адаптиви, что лежат в конце чистие, тоисть FF FF FF FF и так дальше

в пзу адаптивы находятся:
0001FDE0h-0001FFD0h - 512 byte.


Подвернулись мне под руку 5шт. mpg3102at fw:A9-80B5. Куплены одновременно. Отличаются буквально одной циферкой в серийнике (но тем не менее 4шт адаптивные, один - нет). В общем отличные кандидаты для ковыряния.
Начал со сравнения 20-ого модуля. Результат не очень порадовал - данные вдрызг различаются. Закономерности в данных конечно присутствуют, но разгадывать их сума сойдёшь.
Немного поломав голову над закономерностями решил банально залить прошивки от одного к другому. Для начала залил безадаптивную прошивку в адаптивный винт. Результат - стук. Попробовал прочитать 20-й модуль способом описанным в пс3к (и ещё где-то на форуме maysoft'a) - совершенно бесполезное занятие. Имхо, таким способом считать нереально. Причём стук со временем изменяется. Почему - разобрался быстро. В HS записано что-то типа 02 02 00 01. Винт просто периодически переключается с одной головы на другую. Стоит в HS записать 01 01 00 и стук становится монотонным. На форуме maysoft'a упоминалось, что в таком режиме винт пытается подобрать адаптивы - я ничего подобного не наблюдал (хоть с включенным, хоть с выключенным флагом адаптивов).
Далее - начинаю поочерёдно заливать в кролика адаптивные прошивки. Результат разный. Может стучать (тихо), а может сразу давать готовность (без рекалибровки). При попытке чтения чего-либо из служебки - Err+Abrt. Записываю HS. Читаю. Читает!
Лью родную прошивку. Делаю скан. Несколько UNC в начале диска. Винт записал логи по неродным местам?
Анализирую всё выше написанное - прихожу к такому выводу - имеется какая-то привязка серворазметки к местоположению данных на винте. И именно это и прописывается в адаптивах. Т.е. грубо говоря сервоврайтер "неровно" размечает диск. Разметка может съезжать от шпинделя или к шпинделю и чтоб это компенсировать необходимо "сдвигать" данные относительно сервы, чтоб физически они находились в одном и том же месте на любом диске. В этом, как я понял, и заключается основная проблема с адаптивами.
Ладно. Далее начинаю выяснять место в адаптивах критичное для винта. Для этого начинаю подменять куски адаптивов с родных на неродные и лить прошивку в винт. Всё поменял - ни черта не пронимает . Банально зануляю - не пронимает . Оказалось - критичен только самый заголовок адаптивов. Два байта из заголовка. Всё остальное можно спокойно занулить . По адресу 1fde7 старший байт, по адресу 1fde6 младший байт. Как я понимаю это просто адрес нулевого трека относительно сервы.
Попробовал выяснить в каких пределах можно варьировать это значение - выяснил, на единичку вверх и вниз. В моём случае там было записано сс02. Подошли значения сb02 и cd02. (Как я понимаю "прокатывает" вверх и вниз на один трек.) Если число уменьшать, то винт начинает стучать. Увеличивать - тикает и Err+Abrt.