Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Документация » Програмный ремонт жёстких дисков HDD |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 .. 75 76 77 78 79 80 | Печать |
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 февраля 2018 19:47 Сообщение отредактировано: 1 марта 2018 21:08
Переходим к практической части. Дано: Maxtor Diamondmax Plus 8 6E040L0, на гидродинамических подшипниках процессор Ardent, фирмварь NAR61590, s/n E1DW42QE, материалы K,M,C,A 168 реаллокейтов в смарте и куча ещё не скрытых бэдов. Задача: 1) изучить структуру микропрограммы и дополнить статью, 2) прогнать на нём селфскан Действия: 1) Загружаем PC-3000, выбираем "N40P", "Стандартный режим" 2) Смотрим и сохраняем G-List и P-List 3) Проверяем структуру служебной информации - проблем не обнаружено. Сохраняем по F2. 4) Читаем все модули 5) Читаем все группы модулей 6) Читаем ПЗУ 7) Создаём лоадер Изучаю слитую служебку: Служебная зона является первой в таблице зон, расположена в начале диска и имеет пониженное число секторов.
Модули разбиваются на группы, расположенные одна за другой. PC-3000 сохраняет их как *.SMB. В порядке возрастания UBA:
Дальше пустое пространство и в самом конце служебной зоны, с адреса 7E6F - вторая копия ULIST (8h секторов). Кроме того, по адресу 5EB6 обнаруживается модуль PN=AD с заголовком TRACER, длиной 529h секторов, ася про него не знает. После длительного изучения слитых модулей и групп было установлено, что PCMX_PKR показывает таблицу модулей с ошибками. Часть модулей пропущена, у некоторых не соответствуют длины. HDD Repair, однако, обрабатывает её верно (нумеруя, правда, с единицы и размер показывает десятичный), но в нём не работает групповое сохранение модулей и сохранение списка, поэтому бэкапить служебку им неудобно. Здесь и далее - нумерация по верной таблице, начиная с нуля. А теперь поищем эту самую таблицу, опираясь на следующую цитату: Проверяем сказанное и расшифровываем этот ребус. "сектор служебки, начинающийся дампом 4D 4F 0E 00" - это оверлейный модуль MO номер 03 (первый по порядку). "Прибавьте к нему 1Bh секторов" - попадаем в тело оверлея 0E. "Зная что pn1F - это ДИСК, зная что лежит он на УБА 0008 и длиной он 0001 - поищите в считанных секторах цифирки 08 00 01 00..." - обнаруживается в теле оверлея 0F. "Понимая, что на запись об одном модуле у вендора отводится 4 байта, умножте 1F на 4, циферки эти макстор придумал и на них сам лично ссылается, более того карта посторена на основе цифирок, а названия типа DISK и MFIT это всего лишь дополнение к циферкам и проверка валидности модуля и не более, тем более что макстор сам читает модули по циферкам от смещения, где вы нашли 08 00 01 00 отнимите получиненное" - действительно, находим начало таблицы модулей. Итак, Таблица модулей Таблица модулей (у N40P) находится в оверлейном модуле 0F по смещению 26D8h и состоит из 4-байтовых записей: первое слово - UBA начала модуля, второе - длина в секторах. Соответственно, PN модуля - его номер в этой таблице. Не забываем, что порядок байт в слове - от младшего к старшему. Группа модулей ULIST состоит из 4 копий RCT0 длиной 1 и за ними - 4 копии U_LIST00 длиной 1. Все копии идентичны. RCT0 не имеет отношения к своему "тёзке" из группы данных - скорее всего, это адаптивы служебной зоны. Структуру U_LIST разобрать не получится, т.к. он у меня не содержит дефектов и сравнивать его не с чем. В начале группы оверлеев идёт ПЗУ, длиной 100h секторов. Заголовка оно не имеет. За ним идут программные оверлеи, которые делятся на модули длиной 20h секторов, всего 30 штук. В заголовке каждого - буквы MO, далее байт 3 - номер (от 03h до 20h) , байт 4 - 00, байты 5-6 - контрольная сумма ПЗУ - по этой контрольной сумме определяется соответствие версий. Итого ПЗУ с модулями занимает 4A0h секторов. Далее - заполненный нулями промежуток в 400h секторов, с сектора 8A0h от начала группы (D58 от начала зоны) пошли вторые копии ПЗУ и модулей и в конце - ещё 400h пустых секторов. Мало того, что КС (как и положено) записывается в конце (последние 2 байта) модуля-образа ПЗУ, она еще есть и в каждом оверлее. Стандартно любой оверлей начинается с MO (2 байта), далее 2 байта - номер оверлея и следующие 2 байта - искомое. PC3000 показывает это в меню "структура служебной информации" (без учёта копий)
а сохраняет, группируя в модули следующим образом:
Оверлей 20 в модуль не сохраняется, его можно извлечь только из группы модулей. А что же лоадер, который создала PC-3000? Изучение показало, что внутри всё то же самое - пустой сектор вначале, за ним ПЗУ, еще один пустой сектор, и далее все (включая 20h!) оверлеи. Вот что ещё имеет сказать Sable по поводу кодовых оверлеев: Т.е. в первом пункте он говорит о второй микропрограмме (которая НЕ альтернативка). Надо проверить, есть ли она у меня. UPD: Проверил - нету. Обе копии идентичны. В данном повествовании я не буду говорить о назначении каждого модуля и оверлея. Но на 2-х моментах акцентирую внимание. Ещё о назначении отдельных оверлеев от Sable и Zong: Цитата: Есть такое предположение, что загрузкой УБА-секторов, критичных для работы винта и подсчетом их КС занимается модуль #0F (в случае с N40P). #06 в моем понимании это своего Тока что проверил, без загрузки #06 нормальной загрузки не получается. Команды работы с памятью появятся после загрузки MO3...6. Имена модулей данных, как выяснилось, местами хранятся в формате big-endian, соответсвенно, для просмотра текстовых фрагментов байты должны попарно меняться местами. "MO" читается как "OM" (Overlay Module), "ZRBT L1 " читается как "RZTBL 1" и т.д. Возможно то, что часть имеет заголовок big-endian, а часть - заголовок little-endian, связано с архитектурой DualWave. Кстати, лог проверки служебной информации неправильно отображает версию загружаемого ПЗУ - забывает перевернуть байты. Группа модулей данных навскидку разбивается следующим образом (все координаты - в секторах, в hex):
Это всё, что найдено в этой группе. Как видно, структура соответствует описанной в доках на PC3000. Также, если посчитать, видно, что между многими модулями и от последнего модуля до конца есть пустые промежутки. Они заполнены нулями. PC-3000 сохраняет их как модули различной длины (не соответствующей фактическому расстоянию), возможно, у других семейств на их месте что-то было, позже разберусь. Также пц3к не находит и не сохраняет ARREH, FW и EVTLG. Тапок - часть транслятора... Далее, разберём структуру AT_POL.
Разбираем структуру RZTBL 00-07 - имя модуля 0C - кол-во головок (выяснено не мной) 08-0B, 0D-0F - не установлено Начиная с байта 10h идут записи длиной 14 байт:
Каждая запись описывает до 918 дорожек Структура AT_PDL: В начале и в конце - некие дескрипторы 2*4 байт. С адреса 4Ch - записи по 4 байт, организованные в группы. 00-01 - возрастающая последовательность байт. Старшие 4 бита в слове - некая битовая карта. 02-03: возрастающая последовательность 16-битных слов. Деление на группы - по их переполнению. Группы записей разделяются последовательностями FE FF FF FF 00 00 00 00 Группа модулей Selfscan состоит только из HLUTL и цепочки HUSR. Заглянул в группу модулей SWAP1. Выяснено, что там заголовок (0x55 0xAA) и контрольную сумму имеет каждый сектор, таким образом представляя собой "модуль". Ещё установлено, что многие модули несут в себе текстовые строки, предположительно комментарии к тестам. В группе модулей SWAP2 модулей не содержится, там найден только кусок данных в середине, без чёткой границы и контрольной суммы. Группа модулей Defect log включает в себя модули 00-0С, 2A-2D, 4D-4E, 5A-5F, 74-76, 79, 82-8F, 9D, 9F, A2. По большей части там пусто (нули). Заполнены модули:
Также наблюдаются заголовки и КС нескольких пустых модулей (например, после 08-го, длиной 1) Пока я экспериментировал, винт ушёл в стук. Что я там говорил про надёжность "тонких"? Ничего страшного - буду на нём отлаживать загрузку лоадера, потом устрою ему вивисекцию... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
Винт из коматоза с лёгкостью вывел, продолжаю эксперименты. Попробуем инициировать на нём селфскан и посмотреть, что получится. В HDD Repair 2.0 жмякаем Start Selfscan сливаем модули, и тут же останавливаем Modul: 4633 Во-первых, что за модули он трогал? Предположительно это чистка логов. У моего тестового N40P им соответствуют в том же порядке PN *, 5, 7, 8, 9, A, 44, 19, *, 5F, 74, 75, 76, 84, 85, *, 87, *, 95, *, 9D (всё это логи), конец и начало зоны. Звёздочкой помечены те UBA, для которых нет соответствия в таблице модулей. Ошибка ли это в подсчёте или программа ориентируется на неподходящую этому винту статическую таблицу, но факт остаётся фактом - HDD Repair 2.0 чистит логи неправильно. Хорошо ещё, что отсутствующие в таблице модулей затираемые UBA всё равно попадают на пустые участки, так что этим можно пренебречь. Как, впрочем, и вообще все затрагиваемые модули - так что смысл действий программы остаётся загадкой. Modul: 0 Во-вторых, сравниваем слитые до и после старта модули. В DISK обнаруживается различие:
Так как я попытался пустить скан из основной служебки, переводим в safe mode и в PC-3000 возвращаем всё на место. Только для начала делаем проверку служебной зоны. Обнаруживаются следующие отличия: 1. У всех затронутых модулей повреждена контрольная сумма. Хм, странно, вроде переключатель DSP/Poker в HDD Repair правильно стоит... 2. Системные головки стали 2 3. Вот я и узнал назначение байта 1FC в модуле DISK - это карта системных головок! И китайская утилита правит его совершенно зря - винт-то одноголовый! Теперь попробуем запустить честно, из альтернативной служебки. |
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
Просто любопытная ссылка - статистика надёжности жёстких дисков 1999-2003: http://www.hardw.net/forum/arc...index.html |
marinovsoft
Junior Member
Откуда: Кемерово Всего сообщений: 153 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 сен. 2017 |
KALDYH написал: А забери у меня максторы и квантумы. Все равно некогда ими заниматься. Не могу не похвастаться: выпросил в дар Maxtor D740X-6L квантумообразный. Изрядная редкость в наше время - они давно попередохли... Будет теперь на основе чего статью по квантумам дополнить. |
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
А давай. Могу взамен пару исправных выдать. Или скорее даже с этими поиграюсь и верну. |
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 23 февраля 2018 15:55 Сообщение отредактировано: 28 февраля 2018 11:17
i8088, помнится, подымал тему про WD с мостом SATA-PATA. Вот, я сейчас как раз параллельно с максторами чиню такой, довольно редкий WD3200AAJB-00J3A0, Pinnacle Lite PATA. Фото платы: Как оказалось, у них мост тупит на некоторых технологических командах. Самый простой пример - из 192 кб ПЗУ считываются только 128, а при сохранении больших модулей винт уходит в BUSY. Если запаять SATA разъём, всё нормально. Без разрешения автора процитирую с форума WDMarvel: Мост здесь Вывел SATA разъем, работает отлично, одно удовольствие кролика мучить. SunplusIT SPIF223A-HL022, народ на него жалуется: раз, два, и т.д. Как говорят, нога-в-ногу заменяем на JMicron JM20330, с которым проблем нет. |
aleksvolgin
Advanced Member
Всего сообщений: 2123 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 21 нояб. 2010 |
KALDYH написал: у меня пара таких редких на 160 и 250 гиг работают пока нормуль довольно редкий по мосту попозже черкану как до компа доберусь и это наверно не стоит на itimages фотки лить оно вроде вот вот сдохнет |
i8088
Advanced Member
Откуда: г. Баку, Азербайджан Всего сообщений: 2132 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 янв. 2015 |
KALDYH написал: Поздравляю с приобретением! Есть ли у Вас возможность проверить, i8088, помнится, подымал тему про WD с мостом SATA-PATA. Вот, я сейчас как раз параллельно с максторами чиню такой, довольно редкий WD3200AAJB-00J3A0, Pinnacle Lite PATA. Фото платы: работает ли WDMA режим? |
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
Ну что, продолжим с Макстором. Добиться выхода в альтернативную служебку путём манипуляций с основной я не смог, поэтому просто отправил лоадер для C-вари. Сохраняем модули и группы, изучаем, сравниваем с основной. Да, действительно, в группе модулей DATA две копии ПЗУ различаются! Вторая по порядку имеет версию NAR6159Z (контрольная сумма 0570) - это исходная копия основной, а первая имеет версию NCR31V8Z (контрольная сумма 95DB) - это, очевидно, ПЗУ селфскана. Также различаются модули DISK: в основной прописана модель 6E040L, в альтернативной - 6E041L. Дефект-листы в Alt-SA пустые. Таблица зон начинается не с 352 цилиндра, а с 202 Вся остальная структура действительно аналогична. Теперь заглянем в MX_ST_SCRIPT Ого, тестов много, целых D9h штук. Скрипт в основной и альтернативной одинаков - значит, селфскан надо пускать из Alt-SA. Тесты ожидания внешнего события отсутствуют, тест 90h один - скрипт модификации не требует. Окей, подготовительные работы проведены. Логи и дефект-листы чистить не буду ради эксперимента - по идее, селфскан из альтернативной служебки основную целиком затрёт, а свои логи у него пустые. Теперь задача - чем подправить модуль DISK для старта? *в процессе дополнения* |
KALDYH
Advanced Member
Технонекромант Откуда: Кемерово Всего сообщений: 2355 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 июня 2009 |
i8088 написал: Да он у меня давно валяется забэдованный, только сейчас руки дошли, вместе с остальной стопкой WD-шек. Поздравляю с приобретением! i8088 написал: Как только селфскан на нём успешно проведу - появится. Есть ли у Вас возможность проверить, |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 .. 75 76 77 78 79 80 | Печать |
Полигон-2 » Документация » Програмный ремонт жёстких дисков HDD |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |