Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Документация »   Програмный ремонт жёстких дисков HDD
RSS

Програмный ремонт жёстких дисков HDD

Програмный (и не только) ремонт классических жёстких дисков HDD /Seagate /Samsung /IBM /Hitachi /HGST /Western Digital

<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 8 * 9 10 11 12 .. 75 76 77 78 79 80
Печать
 
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Selfscan
Ну и наконец у Maxtor есть селфскан.
Для понимания этой главы ознакомьтесь с параграфами "Модули", "Лоадер", "Альтернативная служебная зона" предыдущих частей.

Подготовка
Перед запуском селфскана из основной служебной зоны - очистить модули таблиц дефектов - 78, 37, 1B, A7, 33, иначе неправильно отработают процедуры скрытия дефектов. Обязательно очистить логи - без очистки скан не стартанёт.
[q]
ессно почистить логи, потом забить _нулями_целиком_
AT_PDL, AT_POL, ZBRT, DMCS, HUTIL\HUSR передернуть питание
дать вендор-команду очистки листов(при этом сабж сам соберет нужные структуры дефект-мененжмента)
ну и ессно пнуть скан
(С) Sable
[/q]
HDD Repair при старте автоматически чистит ряд логов, причём не совсем корректно. Разбор дальше.

Если винт тестируется не подключенным к интерфейсу, к 39 и 40 ноге советую подключить светодиод индикации работы диска.
Рекомендуется подключить винт к отдельному блоку питания.

Тесты
Описание модуля 0E скрипта селфскана - см. выше
Номер тестаНазваниеПримечание

01Начало самотестированияПроизводит инициализацию логов и подготовку программы

00Конец тестированияВывод в обычный режим. Может использоваться для отладки прохождения

06ОЖИДАНИЕ ВНЕШНЕГО СОБЫТИЯНакопитель ожидает команды от стенда. Т.к. мы не знаем зачем - закомментировать

38КалибровкаВыполняет большую часть адаптивных настроек

90Настройка служебной зоныЕсли он зависает, то может быть закоментирован (см. документ ниже)

89Рестарт накопителяПараметр 7 - переключение между программой A (значение 0) и программой B (значение 100h), осуществляемое изменением модуля 95.

0С,31,32...Пустой тестНичего не делает

F5КомментарийАналогичен пустому тесту, но в параметрах записаны строковые комментарии

Назначение прочих тестов можно глянуть в файле HDDMaxtor.ini
Дополнительные сведения от Sable:
[q]
Flaw Scan... Тест ID 75. Какой-то из 7-ми параметров - очевидно "придирчивость" теста, а какой-то - допустимое количество ошибок.
замечено, что в линейке тестов 70-75-70 он обычно проходит без проблем, а вот следующий 75-й тест в крипте - бывает, что и затыкается (по переполнению логов?) Различаются они 2-мя параметрами, 1-м и 5-м.
Но.. на SABRE отсутствует как класс линейка 70-75-70, там линейка 70-70 (с разными значениями (на единичку) в 1-м параметре. Дальше ожидание внешнего события (с каким-то бредом в параметрах, причем два раза... - очень непонятный момент... может он тут чего по терминалу ждет ?), загрузка сервопараметров, 75-й тест, снова загрузка сервопараметров и тот-же 75-й тест. Различаются только 1-м параметром.

А вот про "тест сжатия треков", ID 7D который... ничего умного сказать не могу... :( Но на нем, в том числе, режется объем. По всей видимости какой-то из параметров (возможно 1-й) - тоже пиковое значения для анализа результатов 38-го теста (оптимизации).

"ждать до упора" есть в параметрах теста ИД06 (wait for external event).
он-же Infinty bit в 6-м параметре, если ничего не путаю.
[/q]
Ещё добавлю:
Тест 2C стучит башками.
Тест 38 - один из самых длительных

Модификация скрипта перед запуском
У старых накопителей для запуска селфскана скрипт брался как есть. Однако у накопителей ARES 64K, ATHENA POKER, требуется правка параметров теста 89 - седьмой параметр ставится в 0. Или же можно его не ставить, но тогда нужно выполнить "Сброс конфигурации SA" в PC3000 (какие действия выполняет эта команда - не знаю).
Для CALYPSO обязательно закомментировать в скрипте все тесты ожидания внешнего события 06h (обычно их два), тесты начала и конца цикла, обрамляющие тест ожидания внешнего события, а также первый по порядку тест 90h. Подробности - в доке Maxtor4Windows_ver2.pdf

Запуск

PC3000 умеет пускать селфскан только на DSP, HDD Repair - также и на Poker. Запуск производится технологической командой - стартанёт немедленно, или в модуле 1F DISK изменить байт 1FC с 00 на FF - селфскан запустится после следующего включения. Также HDD Repair на N40P меняет байт 1FA с 08 на 0C - это активные системные головки, и меняет он его зря (этот винт всегда одноголовый). После передёрга питания винт берёт паузу в 30 сек. (большинство моделей) или паузу в 10 мин. (некоторые прошивки ARES 64K, N40P), во время которой светодиод моргает с частотой в 2 Гц. Если в течение этого времени подать сброс или команду чтения паспорта, винт перейдёт в обычный режим до следующего включения. О назначении пауз можно узнать в комментариях скрипта.

Запуск из альтернативной служебки
Если у винта есть альтернативная служебка (некоторые N40P, все CALYPSO) - скан пускается из неё. Делается это так:

1. Винт переводится в альтернативную служебку. Можно лоадером из safe mode, можно порчей модулей основной (но тогда перейти обратно в основную сложнее). Лоадер должен соответствовать служебке - сравнить контрольные суммы. Если не соответствует - создать свой из своих модулей.
2. Проверяем доступность и целостность альтернативной служебки.
3. Чистим логи, если надо - правим скрипт.
4. Либо:
а) ставим перемычку в нормальный режим и нажимаем "запуск селфскан немедленно" (стартует без паузы), либо
б) настраиваем селфскан на запуск при следующем включении питания (правка модуля DISK), передёргиваем питание, если на шаге 1 использовался лоадер - снова грузим его из safe mode и ставим перемычку в нормальный режим. Выжидаем паузу, мониторим прохождение. Первая стадия проходит около 2 минут.
5. В конце первой части тестом 89h винт перезагружится и переключится на основную служебку.
6. Ждём 30 секунд/10 минут, мониторим прохождение второй половины селфскана. Никакого лоадера грузить уже не нужно.

Запуск из основной служебки
Так он делается на всех DSP и на тех Poker, у которых нет альтернативной (ATHENA, ROMULUS, ARES C64)
1. Проверяем целостность основной служебки
2. Чистим логи и дефект-листы
3. Пускаем тест:
а) командой
б) правкой DISK и передёргивания питания (после чего выжидаем 30 сек.)
4. Мониторим прохождение

Урезанная Alt-SA
У CALYPSO есть ряд прошивок, у которых есть Alt-SA, но запуск селфскана из неё ни к чему не приводит. Отличить их можно, просмотрев скрипт Selfscan в ней. Если он короткий (порядка 7 тестов) - то селфскан следует пускать из основной служебки. Кроме того, в их служебке нету копий модулей основной служебки, и собрать A-loader из неё невозможно.
Цитата от Sable:
[q]
Да, есть такие звери без модулей группы "А" в "С".
Наглядный пример лежит на столе.
D6FYP1, YAR41VW0, 6Y060L0620411, KGCD, в сейфе - YAR428WZ
Пока пасиент сам себе адаптивы пересчитывает попробую описать свою точку зрения на это дело.
Итак, исходные данные:
1. "Заветным ключиком" в "завестом листе" винт в "С" не вываливается. БИЗИ.
2. Да и фик с ним, пытаемся вычитать альтернативку из основной - ну.... почти удачно. За одним исключением: Читается она, мягко говоря, странно... Теряет серву, зависает... Бубен, танцы.. прочитали ПОЧТИ все. Но: после чтения последнего сектора в 1-й копии модулей - зависает наглухо, не снимая зависон даже резетом. Делаем вывод... там не то, чтобы неотформатировано... Там похоже банально просто НЕТ сервы... Или фирмварь "её готовить не умеет". Или я что-то делаю не так. Хрен с ним, делаем лодыря, попадаем нормально в "С". Выясняем, что то, что после "первой копии" - суть приколы транслятора УБА. Реально там нету нифига.
3. Начинаем анализ считанного альт-трека. ДИСКРОМ и все оверлеи группы "С" присутствуют. Дефолтные модули дефект-менеджмента присутствуют. Скановые модули присутствуют. Версия скана - cal_tz13.
В "С" определился как YCR41VW0, 6Y080L2.
4. Начинаем анализ скрипта скана. В нем 8 шагов:
0. 0001 - Старт тестирования
1. 20F6 - "пустой тест"
2. 20F6 - "пустой тест"
3. ххF5 - Комментарий, "Wait to move Rack"
4. 0006 - Ожидание внешнего события N минут, очевидно 15
5. ххF5 - Комментарий, "Read to Trim 2"
6. 0090 - Подготовка служебки
7. 0000 - Конец тестирования
Итак, Больше всего нам интересен тесты 4,6 и комментарий к тесту нумбер 5.
Уж очень много "смыслов" у слова "trim". Остановимся на "готовность".
Дальше идет чистое "ИМХО".
Ху из "ожидание внешнего события"? Осознавая, что у макторов тоже есть COM-терминал, могу предположить, что это самое "внешнее событие" - ничто иное, как ожидание сигнала от терминала и, возможно, потоковая SLDL загрузка базиса "А" служебки. 6-й тест в скрипте - ничто иное как эта самая "потоковая заливка" служебки "А", возможно напрямую "терминал - буффер-блин". Дальше винт просто резетится (возможно тоже по терминалу). И пинается скан из "А", без упоминаний о "С".
Все такие калипсы - ПЕРВЫЕ у Макстора, на них отрабатывалась идеология...
[/q]


Назначение Alt-SA - пересоздание чистой немодифицированной основной служебной зоны. Если запустить селфскан из основной, она в ходе тестов затрёт саму себя. Тем не менее, скан можно пускать и из основной.
[q]
Альтернативная нужна только для формирования основной. Так что, если в служебке А все в порядке, ну и запускайте из нее. Из С имеет смысл запускать только при наличии разрушений модулей, которые не удается восстановить. Селфскан все равно после теста Рестарт накопителя переключится в А и основные тесты пойдут уже оттуда. ;)
[/q]
[q]
1. Пускаем винт _стандартно_ в основную варь.
2. Проводим тест записи(мне правда непонятно зачем. но как я уже говорил, АСЕ -рекомендует )
3. Записываем "вытащеные" из альт модули: 1f/37/1b/1d/18/78/33/93 ("чистые" паспорт/транслятор служебки/G-List/DMCS/итд.)
(пишем все сразу не передергивая питания и т.д.), на системную голову(в нашем случае - 3_я.
4. Дергаем питание и переопределяем винт(изменилась модель, зонник и т.д.), на всякий случай. заглянем в дефектлисты. Они должны быть девственно чистыми и вся конфигурация винта, должна быть старшей моделью для этого типа.
5. В конфиге винта, так же убираем способность реллокейта и защитного стирания, разумеется сохраняем эти изменения. перегружаем винт.
6. По ВСЕМ головам(в нашем случае, по 2 и 3_ей) "чистим" модули:
11,43,4С(в принципе можно его не чистить) и правим по ВСЕМ головам модуль скрипта(0Е). Ремапим все тесты по 89(включительно) кроме 01. ПРОВЕРЯЕМ ПРОДЕЛАНОЕ!!! И только после этого, переходим к пункту 7.
7. тут есть два варианта:
а) пихаем скан командой(АСЕ_вая утила может)
в) правим модуль 1f(АСЕ_вая утила может)
8. Мониторим прохождение скана.(желательно пользоваться альтернативной "смотрелкой". У АСЕ_вой нет возможности подглядеть, по какой голове проблемы, а это не хорошо
9. если скан где-то встал\завис. смотрим состояния регистров в этот момент...и...долго думаем, думаем, ну а что непонятно, спрашиваем!
[/q]
Я, пожалуй, не рекомендую использовать эту методику как основную.

Мониторинг
Мониторить процесс прохождения селфскана можно по морганию светодиода активности, либо по данным, выводимым в регистры ATA интерфейса. Функцию мониторинга имеют почти все сервисные программы.
На ARES 64K, N40P, появляется последовательный порт для мониторинга. Почитать о нём можно здесь: http://www.hardw.net/forum/arc...index.html
Я провёл исследования на N40P. Это ни разу не асинхронный интерфейс (читай - не терминал по компорту). Раз так, значит должен быть синхронным. Скорость порядка 1000 бит/с, поддаётся анализу через аудиовход. Длины импульсов скачут. На роль синхросигнала может претендовать сигнал INDEX, выведенный на соседний пин. Дальнейшие исследования вести не буду - времени тратит много, а толку мало.

Дополнительные файлы
N4onN40P.pdf - дока как пустить укороченный селфскан (только юзер-зона) на максторах. Когда-то лежала тут. Я попробовал её на CALYPSO - не получилось (возможно, я что-то напутал).
Разыскивается файл 6E0X.pdf с того же сайта.
Разыскивается китайская прога под названием selfscan.exe (осторожно, содержит троян!) Сведения о ней: https://forum.hddguru.com/viewtopic.php?f=1&t=5749

В процессе дополнения...
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
KALDUH, я заранее извиняюсь, если вопрос глупый, я вот что хотел узнать.

Можно ли на Seagate (конкретно серии 7200.9 и 7200.10) просто перенести сектора из G в P list
и пересчитать транслятор, не выполняя полный комплекс self-scan (даже с N4)?

Иногда попадаются диски с небольшим количеством remap (нерастущим длителеное время,
и в целом в хорошем состоянии). Собственно из-за плохой эксплуатации предыдущим
владельцем (плохой БП, контакты итп) эти remap-ы могут быть и ложными.

Просто хотелось бы избавиться от задеожек, связанных с позиционированием в резервную
зону, не делая полный комплекс тестирования.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
i8088, перечитав весь справочник по командам, я не нашёл там пересчёта транслятора. Отсюда могу сделать вывод, что возможности переноса G->P нет. Теоретически, её можно было бы найти, изучив часть скрипта селфскана, отвечающую за дефектоскопию, но это выше моих навыков.

i8088 написал:
[q]
Иногда попадаются диски с небольшим количеством remap (нерастущим длителеное время,
и в целом в хорошем состоянии). Собственно из-за плохой эксплуатации предыдущим
владельцем (плохой БП, контакты итп) эти remap-ы могут быть и ложными.
[/q]
Однако G-List можно очистить: сначала T>V4 - просмотр, затем T>i4,1,22 - очистка. Сам не пробовал, попробуйте.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
KALDYH, большое спасибо!

Да, есть смысл попробовать очистить G list, тк есть вероятность, что remap-ы
ложные (диски скорее всего работали ранее с ужаснами блоками питания).
Подготовлю тестовый стенд с терминалом и проверю!

Позавчера приобрел Quantum AS 20.5 (я давно искал рабочий AS) с дикой
наработкой, было 2 записи в Glist и заметные задержки на них, при чтении
(точнее верификации) в MHDD. Но сканирование по физическим
параметрам не нашло проблем в них. Ну я просто средствами PC3K добавил
один из них в дефект лист, в результате все бывшие в Glist записи оказались
в Plist. Сделал erase, сейчас диск тестируется.

PS. Попутно выяснилось, что ASUS TR-DLS умеет UDMA на встроенном
IDE под DOS (те через int13), что редкость для плат Pentium3. Она еще и
LBA48 тоже поддерживает.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Заканчиваем теоретический курс по максторам, а то мне пора переходить к практике.

Вопрос: По какому алгоритму считается контрольная сумма у модулей Maxtor?
Ответ: У DSP и Poker/Ardent по-разному. Вроде бы так:
[q]
для н40п, а может и для всех покеров
Можно в ФАК

WORD Max_CS(char *b,WORD len)
{
WORD csm=0;
WORD l=len/2-1;
_asm {
push esi
push ebx
push edx
xor edx,edx
xor eax,eax
mov esi,b
mov dx,1
mov ecx,l
mov ebx,csm
ll:
rol bx,1
xor bx,dx
lodsw
add bx,ax
loop ll

rol bx,1
xor bx,dx
neg bx

mov csm,ebx

pop edx
pop ebx
pop esi

}
return csm;
}
[/q]
[q]
а на ДСП подскажите
Если не ошибаюсь, то там просто суммирование, минимальная модификация кода
[/q]
[q]
K.C = FFFF-(X без последнего слова)
X - сумма по словно, с учетом что-
"Следует так же принять во внимание,что байты в слове
хранятся в виде младший байт_старший байт" © Хрюша
[/q]
В: А какой программой это можно сделать?
О: Была такая прога - PokerCRC.exe, кто найдёт - молодец.
UPD: По моей просьбе друг написал по двум вышеописанным алгоритмам две программки, для Poker и для DSP. Я проверил - обе считают правильно. Вот, пожалуйста: https://drive.google.com/file/...sp=sharing
Для пересчёта КС модуля просто перетащите бинарник на значок программы.

В: После манипуляций со служебкой (перенос G->P) винт ушёл в вечный BUSY, и ни сейфмод с лоадером, ни хот-свап ему не помогают!
О: Попробуйте замкнуть канал чтения - точки RDN и RDP на плате. Замыкать конденсатором примерно на 1000 пф, иначе есть риск спалить коммутатор! Порядок действий такой: замкнуть канал чтения - подать питание - слать лоадер.
Serg_T написал:
[q]
"Второй" транслятор SA зоны слетел.
Первопричина скорее всего аппаратная, глюки системной головы.
[/q]
В: Как отключить головки?
О: Пока не знаю, инструкция в разработке.

В:
[q]
На платке калипсы в КЗ погорел 8-ми ногий дип-транзюк обозначеный как Q500. Cудя по всему это формирователь -5 в банку. На нем маркировка 20PFS20V. Есть еще платка с калипсы, там на ентой деталюхе маркировка W503 4G. Есть платка от антенны плоской, там стоят полевики по выходам VCM и SD. Маркировка PHN210T. Вопрос в том - кого и как туда поставить взамен дохлятины?
[/q]
О:
_AND_ написал:
[q]
Это сборка полевиков. На ней собран преобразователь -5в.
Недавно тоже была калипса с дохлой 20PFS20V. Но у меня она выгорела вместе
с L7250E и дорожкой где-то внутри платы... Взял с другой калипсы - маркировка
тоже совершенно другая была, поменял - работает :) Так что можно менять.

Прозвони дорожку на землю на дроссель преобразователя -5в. У меня она тоже отгорела.
[/q]
Сталкивался с такой поломкой лично.

B: Maxtor CALYPSO издаёт на удивление громкие мелодичные звуки, похожие на телефонную трель!
О: Да, калипсы могут :) Залипли головки, клин шпиндельного двигателя или КЗ в его обмотках. Неремонтопригодно, в общем-то. Подноготная: http://nazyura.hardw.net/000004.htm (четвёртый слайд)

В: Что такое "служебка C" и "служебка A"?
О: Основная и альтернативная соответственно. А названы они так по отображаемой второй букве серийника. Поэтому "B" нету :) Хотя "служебкой B" иногда назвают группу альтернативных оверлеев в основной.

В: Что такое "группы критичности модулей" (A, B, и т.д.). В обсуждениях встретилось.
О: Читайте доки к PC3000. Я эту терминологию использовать не стал.

В:
[q]
Я на днях ARES боролся, заголовки поправил, бобик вроде ожил, начал по логике сканить, а там... Короче чем больше заносишь дефектов тем становиться хуже. С пустыми листами и то вроде картина получше.:(
[/q]
О: Отвечает Sable:
[q]
Дам один намек... (Больше - религия не позволяет):
При ОТСУТСТВИИ одного из оверлеев, точно не помню (какогото из 1х, но не 1С и 1В) при прогоне записью по всей поляне дефекты в дефект-листы НЕ заносятся, но транслятор пересчитывается накопителем вполне исправно.
После чего работает как часики. Помогает при описанной проблеме
[/q]
В:Calypso при попытке чтения дефектов в P-list выдает "Ошибка идентификации". При этом проверка служебки говорит что все "Ок".
О:
[q]
Это калипса.
Это асина утиля, которая калипсин п-лист не идентифицирует.
Кароче, ничего страшного.
[/q]
В: Можно ли на ATHENA/ROMULUS заменить плату DSP на Poker и наоборот?
О: Можно, народ делал. Только кодовые модули переписать соответствующей микропрограммой и у остальных КС пересчитать. Какие ещё модули кроме кодовых надо заменить - с ходу не скажу, надо думать.

В: У меня CALYPSO SATA!
О: Если есть какие-то трудности с этим - можно прикрутить плату PATA с такой же маркировкой процессора.

В: У меня бэды в служебке!
О: Скорее всего, это не бэды, а мусор в U_LIST00. Настоящие, с завода, бэды в служебной зоне у Maxtor - громадная редкость. Однако - если это действительно бэды, то дело плохо. Я столкнулся с невозможностью восстановить служебку на CALYPSO (которую сам же и попортил), где служебная зона содержала бэды. Запись проходит нормально, все модули читаются нормально, но винт при рестарте выпадает в альтернативку. Проверка поверхности при этом (еще на рабочей служебке) никаких бэдов не показывала. Предполагаю, что чтение выполняется с обходом дефектов, а запись - без. Ну, или есть еще какой-то неописанный подводный камень.

В: А у меня настоящие бэды в служебке нашлись при проверке поверхности служебной зоны! Как их в U_LIST добавить?
О: Никак :( Способов не найдено, диск на полку. Если есть Alt-SA и она цела - можно попробовать пустить селфскан из неё.

В: "SMPORT pissed off!"
О: http://forum.hddguru.com/viewtopic.php?t=6788&start=

В: Как вы и советовали, не стал скрывать дефекты в P-List, а скрыл в P-List и потом сделал перенос дефектов. Теперь винт висит! Что делать?
О: Обсуждение на тему:
[q]
Цитата: Делаем перенос из G в P. Висим Висим 5 часов. Висим 10 часов. Мне это надоеает и передёргиваю питание. После этого кроль дохнет полностью Стук, никакие лоадеры, игрушки с памятью и даже своп не могут их вывести из стука
DOS-лабой делал перенос видимо? Я ещё пару-тройку месяцев тому назад подобную ситуацию обрисовал. Тогда мне помог метод с замыканием входов проца(с комутатора) некоторой ёмкостью и подгрузкой нужного лодыря(сейчас знаю более цивилизованый метод). Отстучался он немного, потом ввалился в утиль . Убитым оказался в том числе и модуль DISK(ID1F). Поэтому конфигурацию головок крол неправильно понимал - вот и стук! Поправил я ему всё что померло, вобщем поднял крола.Больше не использую эту функцию на Калипсах(особо в DOS-лабе) и другим не советую - методы есть и получше.
p.s. Реанимация производилась уже WIN-лабой.
[/q]
[q]
А переносим как....утилей от АСЕ? Там был глюк на старых версиях, даже на зарегенных. Больше определенного колличества, винт именно впадал в транс. Я про перенос из Г листа в П лист. приходилось по немногу...по 50..проходило всегда.

Перенос из Г в П лист одной командой проходит. Так что если дефектов много скорее глюк прошивки/дефект поверхности СЗ в том месте куда пытается писать фирмваря. Мое мнение. Места под П лист достаточно - 139h(313) секторов.
На ДСП ромулусе 500 дефетов секунд за 30 переносило за один раз.
[/q]
[q]
У подопытного накопителя поверхность примерно 3 процент в начале диска и процентов 10 в конце убиты в хлам. Дефектов примерно 5 тысяч. Так вот примерно когда этой цифры достигаю, то накопитель глюковать начинает. Уходит в бизи при любых операциях с дефектами. Скрывать в п-лист не получается никаким способом. Вот я и подумал что может быть п-лист уже под завязку забит, отсюда и глюки. (ещё интересно, г - лист заполняется только до 636 дефектов и ни одним больше, хотя утилита пишет что г-лист на 3000 с чем то дефектов)
[/q]
В: Селфскан завис на 38 тесте! (в смысле, это ID теста, а не порядковый номер)
О: Я не знаю... Где-то читал об этом, но не сохранил.


Резюмируя: максторы (особенно последние, на новых процессорах) - очень мало раскопанные и недоизученные винты. После покупки Сигейтом все разработки был брошены как неперспективные. Плюс очень капризная и "сырая" микропрограмма. Самих винтов было относительно мало, по большей части они давно попередохли, так что нынче найти что-то по теме можно только в старых, 10-15-летней давности, обсуждениях.

Отлитчительные черты Maxtor:
1)Четыре разных ПЗУ из четырёх возможных источников: маска, флеш и два в служебке
2) Большое разнообразие (проще говоря, бардак) в микропрограмме, глючный код
3) Транслятор в нескольких модулях
4) На каждый чих нужен лоадер
5) Лоадер содержит адаптивы
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
KALDYH написал:
[q]
Теоретически, её можно было бы найти, изучив часть скрипта селфскана, отвечающую за дефектоскопию, но это выше моих навыков.
[/q]
i8088, зато я нашёл подсказку, как найти неописанные команды: http://nazyura.hardw.net/Part02.htm (во 2 половине заметок)
Попробуйте, может, у вас получится.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
KALDYH, спасибо!

Надо будет какой-нибудь полудохлый накопитель найти, чтобы почти исправный не запортить, по моему на работе должен быть. Немножко
освобожу рабочее мето от текущих дел и займусь!
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Не могу не похвастаться: выпросил в дар Maxtor D740X-6L квантумообразный. Изрядная редкость в наше время - они давно попередохли... Будет теперь на основе чего статью по квантумам дополнить.
i8088
Advanced Member


Откуда: г. Баку, Азербайджан
Всего сообщений: 2132
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 янв. 2015
Поздравляю! Эти диски намного лучше "нативного" Maxtor, у меня есть два
20GB, с большой наработкой и без remap. Только этот дурацкий ATA133 там
ни к чему, только проблемы создает.
KALDYH
Advanced Member
Технонекромант

Откуда: Кемерово
Всего сообщений: 2355
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июня 2009
Переходим к практической части.

Дано: 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) Создаём лоадер

Изучаю слитую служебку:
Служебная зона является первой в таблице зон, расположена в начале диска и имеет пониженное число секторов.

  # Start Cyl  End Cyl  SPT
---------------------------
  1       352      411  540
...


Модули разбиваются на группы, расположенные одна за другой. PC-3000 сохраняет их как *.SMB. В порядке возрастания UBA:
ИмяНачалоДлина в секторах
ULIST (копия 1)00000008
DATA (копия 1)000804B0
OVL (копия 1)04B81140
Selfscan15F81770
SWAP12D680CE4
SWAP23A4C0B54
Defect log45A00190
DATA (копия 2)48C604B0
OVL (копия 2)4D761140
(не знаю, заводские ли это наименования или их так условно назвала Acelab)
Дальше пустое пространство и в самом конце служебной зоны, с адреса 7E6F - вторая копия ULIST (8h секторов). Кроме того, по адресу 5EB6 обнаруживается модуль PN=AD с заголовком TRACER, длиной 529h секторов, ася про него не знает.


После длительного изучения слитых модулей и групп было установлено, что PCMX_PKR показывает таблицу модулей с ошибками. Часть модулей пропущена, у некоторых не соответствуют длины. HDD Repair, однако, обрабатывает её верно (нумеруя, правда, с единицы и размер показывает десятичный), но в нём не работает групповое сохранение модулей и сохранение списка, поэтому бэкапить служебку им неудобно. Здесь и далее - нумерация по верной таблице, начиная с нуля. А теперь поищем эту самую таблицу, опираясь на следующую цитату:
[q]
циферки эти макстор придумал и на них сам лично ссылается, более того карта посторена на основе цифирок, а названия типа DISK и MFIT это всего лишь дополнение к циферкам и проверка валидности модуля и не более, тем более что макстор сам читает модули по циферкам
тем более что если взять особо старый накопитель и открыть там модуль 1F то мы увидим там GMAP а не DISK, названия 33-го также менялось, про 18-й я вообще молчу, у него версий немеряно

А вообще - ПЗУ знает координаты СА, и знает координаты кое-каких модулей, и проверка заголовка и кс на валидность... причем взимосвязь загрузки модулей при старте очевидна, и к позиционным номерам действительно не имеет отношения ПЗУ знает координаты очень маленького числа модулей
А далее вступаент в дело дискром и оверлеи.
Когда разработаете собственную концепцию - возьмите сектор служебки на калипсе, начинающийся дампом 4D 4F 0E 00
Прибавьте к нему 1Bh секторов. Считайте пару секторов. Зная (из глупой концепции глупых пацанов) что pn1F - это ДИСК, зная что лежит он на УБА 0008 и длиной он 0001 - поищите в считанных секторах цифирки 08 00 01 00... Понимая, что на запись об одном модуле у глупого вендора, нифига не понимающего в концепциях, отводится 4 байта... умножте 1F на 4...
От смещения, где вы нашли 08 00 01 00 отнимите получиненное - и по этому смещнию, продолжительностью пару секторов увидите кучку интресных цифирок

Sable
внушаеть
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F

0004F640                                  3E 3C 02 00 40 3C             >>..@>
0004F650   02 00 F2 3C 00 00 42 3C  01 00 44 3C 78 00 D2 3C   ..o>..B>..D>x.O>
0004F660   01 00 D3 3C 00 00 D3 3C  00 00 D3 3C 01 00 D5 3C   ..O>..O>..O>..O>
0004F670   01 00 D6 3C 01 00 D7 3C  01 00 D8 3C 01 00 56 1F   ..O>..?>..O>..V.
0004F680   03 00 59 1F 08 00 61 1F  01 00 62 1F 02 00 65 1F   ..Y...a...b...e.
0004F690   01 00 7C 20 E8 08 67 1F  08 00 2C 20 0B 00 2C 20   ..| e.g..., ..,
0004F6A0   00 00 58 20 10 00 68 20  00 00 29 00 39 01 90 01   ..X ..h ..).9.?.
0004F6B0   01 00 91 01 01 00 AA 02  32 00 A5 01 02 00 A8 02   ..‘...?.2.?...?.
0004F6C0   02 00 8E 01 01 00 08 00  01 00 DC 02 02 00 62 01   ..Z.......U...b.
0004F6D0   0B 00 A3 01 01 00 00 00  00 00 16 32 74 41 00 00   ..?........2tA..


чето это напомнило...

Ааа!!!

   1 00 3C3E 0002  ы    ы                  
   2 01 3C40 0002  ы    -    * Tbl_55AA    
   3 03 3C42 0001  ы    ы    * Tbl_55AA    
   4 04 3C44 0078  ы    -    * Tbl_55AA    
   5 05 3CD2 0001  ы    ы                  
   6 08 3CD3 0001  ы    ы    * Tbl_55AA    
   7 09 3CD5 0001  ы    ы                  
   8 0A 3CD6 0001  ы    ы                  
   9 0B 3CD7 0001  ы    ы                  
  10 0C 3CD8 0001  ы    ы                  
  11 0D 1F56 0003  ы    ы    * Tbl_55AA   MX_ST_CFG3
  12 0E 1F59 0008  ы    ы    * Tbl_55AA   MX_ST_SCRIPT
  13 0F 1F61 0001  ы    ы    * Tbl_55AA    
  14 10 1F62 0002  ы    ы                  
  15 11 1F65 0001  ы    ы    * Tbl_55AA   MX_ST_CFG1
  16 12 207C 08E8  ы    -    * Tbl_55AA    
  17 13 1F67 0008  ы    ы    * Tbl_55AA    
  18 14 202C 000B  ы    -    * Tbl_55AA   STRS
  19 16 2058 0010  ы    ы    * Tbl_55AA    
  20 18 0029 0017  ы    ы    ы AT_PDL 1   AT_PDL - P-List
  21 19 0190 0001  ы    ы                  
  22 1A 0191 0001  ы    ы    ы SECU       SECU - ¬®¤г«м б Ї а®«п¬Ё
  23 1B 02AA 0032  ы    ы    - AT_POL 1   AT_POL - G-List
  24 1C 01A5 0002  ы    ы                  
  25 1D 02A8 0002  ы    ы    ы DMCS   1   DMCS - в Ў«Ёж  ЄниЁа®ў Ёп
  26 1E 018E 0001  ы    ы    ы SRV6       SRV -  ¤ ЇвЁўл Є «ЁЎа®ўЄЁ
  27 1F 0008 0001  ы    ы


Нет что просто сказать, что PN - позиционый номер в карте модулей, во базару развели
[/q]
Проверяем сказанное и расшифровываем этот ребус. "сектор служебки, начинающийся дампом 4D 4F 0E 00" - это оверлейный модуль MO номер 03 (первый по порядку). "Прибавьте к нему 1Bh секторов" - попадаем в тело оверлея 0E. "Зная что pn1F - это ДИСК, зная что лежит он на УБА 0008 и длиной он 0001 - поищите в считанных секторах цифирки 08 00 01 00..." - обнаруживается в теле оверлея 0F. "Понимая, что на запись об одном модуле у вендора отводится 4 байта, умножте 1F на 4,
от смещения, где вы нашли 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 - контрольная сумма ПЗУ - по этой контрольной сумме определяется соответствие версий.
[q]
Мало того, что КС (как и положено) записывается в конце (последние 2 байта) модуля-образа ПЗУ, она еще есть и в каждом оверлее. Стандартно любой оверлей начинается с MO (2 байта), далее 2 байта - номер оверлея и следующие 2 байта - искомое.
[/q]
Итого ПЗУ с модулями занимает 4A0h секторов. Далее - заполненный нулями промежуток в 400h секторов, с сектора 8A0h от начала группы (D58 от начала зоны) пошли вторые копии ПЗУ и модулей и в конце - ещё 400h пустых секторов.

PC3000 показывает это в меню "структура служебной информации" (без учёта копий)

Оверлеи
  #  UBA Rd Id ChkSum
---------------------
03 05B8  √  √   √
04 05D8  √  √   √
05 05F8  √  √   √
06 0618  √  √   √
07 0638  √  √   √
08 0658  √  √   √
09 0678  √  √   √
0A 0698  √  √   √
0B 06B8  √  √   √
0C 06D8  √  √   √
0D 06F8  √  √   √
0E 0718  √  √   √
0F 0738  √  √   √
10 0758  √  √   √
11 0778  √  √   √
12 0798  √  √   √
13 07B8  √  √   √
14 07D8  √  √   √
15 07F8  √  √   √
16 0818  √  √   √
17 0838  √  √   √
18 0858  √  √   √
19 0878  √  √   √
1A 0898  √  √   √
1B 08B8  √  √   √
1C 08D8  √  √   √
1D 08F8  √  √   √
1E 0918  √  √   √
1F 0938  √  √   √
20 0958  √  √   √

а сохраняет, группируя в модули следующим образом:
  • Модуль 39 - оверлеи 03-07
  • Модуль 3A - загружаемое ПЗУ
  • Модуль 50 - оверлеи 08-1F
  • Модуль 97 - оверлеи 03-07 второй копии
  • Модуль 98 - второе загружаемое ПЗУ
  • Модуль 99 - оверлеи 08-1F второй копии

Оверлей 20 в модуль не сохраняется, его можно извлечь только из группы модулей.

А что же лоадер, который создала PC-3000? Изучение показало, что внутри всё то же самое - пустой сектор вначале, за ним ПЗУ, еще один пустой сектор, и далее все (включая 20h!) оверлеи.

Вот что ещё имеет сказать Sable по поводу кодовых оверлеев:
[q]
В данном повествовании я не буду говорить о назначении каждого модуля и оверлея. Но на 2-х моментах акцентирую внимание.
1-й: Внимательно смотрим в smb-файл, тот в котором собраны DATA. Строчка «HOST DISK ROM» иногда встречается ДВАЖДЫ в каждой копии, ладно запускаем WinHex и выдергиваем оба блока, по 128 килобайта каждый. Получаем 2 образа загружаемого ПЗУ.
Один NAR6159Z, второй NAR61EAZ. Вот тут внимание! Вышеописанное встречается НЕ НА ВСЕХ дисках. Т.е. альтернативная загружаемая ПЗУ присутствует не на всех дисках, а NAR61590 может превращаться NAR61EA0 и наоборот.
2-й момент: в КАЖДОМ диске N40P и ARES присутствует модуль 422F0064 (UBA 422F, длина 64h секторов). В заголовке A0 4F 00 00 … Ну так вот, данные в этом модуле (примерно 40 килобайт) – с нулевой избыточностью, т.е. практически не сжимаемые архиваторами. Беглый взгдяд показывает, что это банальное LZW-Tree. Буду пробовать распаковать. Результаты доложу. И в догонку – этот модуль пытается считать оверлей 0E.
[/q]
Т.е. в первом пункте он говорит о второй микропрограмме (которая НЕ альтернативка). Надо проверить, есть ли она у меня. UPD: Проверил - нету. Обе копии идентичны.
Ещё о назначении отдельных оверлеев от Sable и Zong:
[q]
Цитата: Есть такое предположение, что загрузкой УБА-секторов, критичных для работы винта и подсчетом их КС занимается модуль #0F (в случае с N40P).
Первым кто указал на этот факт был Sir_Manyak
ACE использует описатель(каталог) модулей (или сектор конфигурации)при входе в стандартный режим,но следов использования $06 на нормально стартанувшем винте нет.Именно про это я и говорил.
[/q]
[q]
#06 в моем понимании это своего
рода "command extender" именно после его загрузки и появляется
возможность работать с помощью обычных вендор-специфических
[/q]
[q]
Тока что проверил, без загрузки #06 нормальной загрузки не получается.
[/q]
[q]
Команды работы с памятью появятся после загрузки MO3...6.
[/q]


Имена модулей данных, как выяснилось, местами хранятся в формате big-endian, соответсвенно, для просмотра текстовых фрагментов байты должны попарно меняться местами. "MO" читается как "OM" (Overlay Module), "ZRBT L1 " читается как "RZTBL 1" и т.д. Возможно то, что часть имеет заголовок big-endian, а часть - заголовок little-endian, связано с архитектурой DualWave. Кстати, лог проверки служебной информации неправильно отображает версию загружаемого ПЗУ - забывает перевернуть байты.

Группа модулей данных навскидку разбивается следующим образом (все координаты - в секторах, в hex):
UBAДлинаЗаголовокОписание
81DISKОписание диска (см. выше). Заголовок не перевернут.
920RZTBL 1Таблица записями по 14 байт, разбор ниже
2912?AT_PDL 1Таблица из записей длиной 4 байт, без КС.
16211RCT0 PC3000 ошибочно указывает длину 12
1A61SRV6Заголовок не перевернут
1A91SECU
1AA Модули SMART. Не имеют заголовка и контрольной суммы, в связи с чем их границы навскидку неразличимы.
1BB1ATAFЗаголовок не перевёрнут
1BF1ARREH_01О его назначении - ниже. Первый сектор - заголовок, всего 5-6 байт данных, далее записи по 26 байт примерно до сектора 1E5
2BF1Текстовая информация о компонентах. Порядок байтов прямой.
2C02DMCS 1Записи длиной 14 байт
2C219AT_POL 0Записи длиной 8 байт, разбор ниже
2DE1MAXATGЗаголовок не перевернут. Возможно, длина - 14h секторов.
2F681EVTLG_00Записи длиной 16 байт
3761(2?)Записи длиной 12 байт
3A01FWЗаголовок не перевёрнут (?)
3F32
Sable написал:
[q]
Тапок - часть транслятора...
аррех - глист.
приближенная аналогия - сводная_33/ат_падла
я аналогию к тому и привел, что из Раера восстанавливается "Глист" (ат_пол)... а не наоборот, сам-же раер как таковой в трансляции не участвует

Наблюдая за тапком мы видим реальные LBA с флагами,т.е не сжатый
формат как в др. элементах транслятора...
[/q]
Это всё, что найдено в этой группе. Как видно, структура соответствует описанной в доках на PC3000. Также, если посчитать, видно, что между многими модулями и от последнего модуля до конца есть пустые промежутки. Они заполнены нулями. PC-3000 сохраняет их как модули различной длины (не соответствующей фактическому расстоянию), возможно, у других семейств на их месте что-то было, позже разберусь. Также пц3к не находит и не сохраняет ARREH, FW и EVTLG.



Далее, разберём структуру AT_POL.
  • Байты 00-07 - имя модуля
  • 08-0B - адрес начала служебной зоны (порядок слов также обратный)
  • 0C-0D - кол-во дефектов
  • Назначение байтов 0E-0F установить не удалось.
  • Начиная с 10h идут записи о дефектах по два 4-байтных слова: первое двойное слово - LBA дефекта, второе двойное слово - LBA замещения. У всех адресов дефектов бит 30 установлен в 1. У кандидатов в дефекты адрес замещающего сектора равен адресу дефекта и бит 31 установлен в 1.

Разбираем структуру RZTBL
00-07 - имя модуля
0C - кол-во головок (выяснено не мной)
08-0B, 0D-0F - не установлено
Начиная с байта 10h идут записи длиной 14 байт:
  • 0-1 - число дефектов в диапазоне дорожек
  • 3 - номер зоны. 6 бит - признак трекового дефекта.
  • 6-9 - начальный цилиндр
  • A-D - конечный цилиндр
  • 2,4,5 - не установлено, возможно, битовые карты

Каждая запись описывает до 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. По большей части там пусто (нули). Заполнены модули:
  • 01 - cодержит строки apost21, a5_stz76670_xmit, rdtaz_sh
  • 03 - содержит строки apmt27, apomt02 apo_mt27670_xmit
  • 04 - бинарная таблица
  • 08 - содержит строки aposw06, a5_sw8wc670_xmit, sm_vx05a
  • 2C - бинарная таблица
  • 82
  • 83 - информация о компонентах
  • 9F, A2 - Factory Process map
  • 8A-8B - там 4 модуля по сектору, содержат байты DE AD

Также наблюдаются заголовки и КС нескольких пустых модулей (например, после 08-го, длиной 1)


Пока я экспериментировал, винт ушёл в стук. Что я там говорил про надёжность "тонких"? Ничего страшного - буду на нём отлаживать загрузку лоадера, потом устрою ему вивисекцию...
<<Назад  Вперед>> Страницы: 1 2 3 4 5 6 7 8 * 9 10 11 12 .. 75 76 77 78 79 80
Печать
Полигон-2 »   Документация »   Програмный ремонт жёстких дисков HDD
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS