Главная | Файловый архив | Музей | Статьи и FAQ | Журнал "Downgrade" | Total Hardware'99 | Ссылки | Авторам | База данных | Конкурсы

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

ПОЛИГОН ПРИЗРАКОВ

Железные призраки прошлого - всё о старых компьютерах

Информация

Конкурс статей 2017 года завершен! Кто победил, можно узнать здесь.

ВНИМАНИЕ! При получении на e-mail оповещения о новом личном сообщении не отвечайте, пожалуйста, почтой. Воспользуйтесь личными сообщениями, иначе адресат не получит ваше послание.

ПОЛИГОН ПРИЗРАКОВ »   ДОКУМЕНТАЦИЯ »   Програмный ремонт жёстких дисков HDD
RSS

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

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

Текущий рейтинг темы: 7.0000
Выводить сообщения

<<Назад  Вперед>>Страницы: 1 2 3 4 5
Модераторы: Atlas3000, Tarus
Печать
 
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Как я уже сказал, для большинства манипуляций с Сигейтами достаточно простого терминала. Но некоторые операции было бы удобнее автоматизировать, поэтому по ним был создан ряд программ. К слову, все эти проекты являются давно заброшенными.
http://seagatedoctor.narod.ru/SOFT.html - несколько мелких вспомогательных утилит:
[q]
SigaHLTH V1.1
Программа для расшифровки битов здоровья “hlth “

Buff dump converter
Конвертор дампа буферов в HEX и BIN файлы, пакетная обработка файлов.

RadMapper V1.1
Построение карты поверхности диска.
[/q]


R_Util: http://www.hardw.net/forum/topic7563-60.htm, http://www.artras.narod.ru/r_util3.2D.rar - терминальная программа с возможностями мониторинга, автоматизированного сохранения треков и загрузкой по SDLD (правда, в демо-версии всё это вроде бы не работает). Описание и сведения об авторе - внутри архива.

ftp://ftp.seagate.com/pub/techsuppt/ - старый FTP Seagate. Содержит множество полезной информации по древним HDD Seagate, утилиты низкоуровневого форматирования, переключатели режимов ATA и т.п. Неполный список файлов с пояснениями.

http://files.hddguru.com/index...te&SID - ещё одна терминалка, глубокая бета

http://worksoft.narod.ru/Seagate_Terminal_4.zip - терминалка от ArtNET Mobile Computers. Описание внутри. Обсуждение программы, последняя бета.

http://www.hardw.net/forum/topic10426.htm
http://forum.hddguru.com/viewtopic.php?t=11980&start=
SeDiv - создавалась как любительский "комбайн" наподобие PC-3000. Платная, но иногда попадаются демо- и альфа-версии, вот у меня, например, 2.0.1.0 alpha завалялась и русский хелп к ней. Старый сайт программы (http://sediv2008.narod.ru/) давно помер, однако гугль находит некий http://www.sediv.net

STR-3000 - творение китайских товарищей из China HDD Union. Пощупать можно тут: http://malthus.mooo.com/viewforum.php?f=31 Также попадатется на китайских файлообменниках, я находил по ней видеогайды, но с этими источниками нужно быть осторожнее - я вместе с ними вирусни понатащил.

ST_MEM_WIN (ст_мем) - широко известная в узких кругах ремонтников программа за авторством Victor_UJ. Довольно кривой и незаконченный проект, но равных ему по возможностям нету, потому как:
- умеет автоматизированно сохранять и записывать треки, читать-писать буферы, автоматизированно вычитывать служебку (корректно работает только во FREE версии)
- поддерживает какие-никакие скрипты
- умеет отправлять файлы по SDLD (только в коммерческой версии). Почему это так важно? Это единственный способ передать бинарный объект для записи в накопитель за вменяемое время, и это же наиболее корректный способ это сделать.
В общем, это самая необходимая для подъёма сигейтов программа. Далее все работы будут производиться с её помощью.

Программа изначально планировалась как коммерческий проект, поэтому у неё существуют две версии: полнофункциональная и бесплатная (ST_MEM_FREE). В бесплатной отключены самые "вкусные" функции.
http://files.hddguru.com/downl..._12_06.ZIP - последняя FREE версия от 28.12.06г. Размер программы 596 480 байт. В архиве есть документация по скриптовым командам и примеры скриптов.
Версию с поддержкой SDLD можно взять тут: http://malthus.mooo.com/viewtopic.php?t=211 или тут: http://algrit.narod.ru/hdd_prog.html . Это утёкшая в сеть предрелизная версия, в ней не работают или работают некорректно некоторые команды, в частности R_TRACKS_MASK, W_SECTORS_SDLD, вместо S_BUF использовать S_BUF_BLK. Зато работает SEND_FILE, и это самое главное.
[q]
В той версии ST_MEM (SDLD), которая ходит по рукам, есть ошибки в обработчике терминала, что периодически вызывает зависание ST_MEM. (Есть предположения, что в ней отлаживалась заливка по SDLD, поэтому этот блок кода в ней наиболее стабилен, а в остальных не все баги выловлены). Поэтому, чтобы устранить баги программы, предлагается все кроме SDLD делать во Free, т.к. это уже практически вылизанный релиз.
[/q]
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Ну вот, спустя многабукаф, добрались наконец до самого главного вопроса - а как же всё-таки программно чинить Seagate? Ответ:

Программный ремонт винчестеров Seagate заключается в проведении на них селфскана.

Вот его-то мы по всем правилам и будем учиться делать.
Что нам для этого потребуется:
1. Вся вышенаписанная справочная информация и максимально возможное её понимание.
2. Датакабель (терминальный адаптер).
3. Терминальная программа.
4. Утилита ST_MEM (в принципе, для накопителей старше 7200.7 можно и без неё обойтись).
5. Скрипты для ST_MEM (будут ниже).

Никаких дополнительных файлов для запуска селфскана в Seagate заливать не нужно (в отличие от накопителей других фирм), вся необходимая информация содержится на самом диске (исключение - U6 - будет рассмотрено отдельно).
Селфскан состоит из набора отдельных тестов (программ, Pgm). Начальный тест - номер 2. Описание отдельных тестов можете посмотреть здесь. Тесты проходятся по порядку, записанному в Cert table, отобразить порядок прохождения тестов можно командой C>D По окончанию каждого теста номер NN выдаётся сообщение "OkEnd Test NN" в случае успеха или "AbEnd Test NN" в случае провала. Последний по порядку тест (у барракуд это фиксированный номер 50) - работа винта в обычном режиме по интерфейсу, таким образом, винт по факту ВСЕГДА выполняет какой-нибудь "тест". Псевдотест 4F - это аварийный выход в диагностический монитор в случае провала селфскана. В процессе селфскана винт ведёт подробнейшие логи, которые выводятся на терминал и параллельно записываются на диск и могут быть подробно изучены позднее командами T>D и T>E. Во время проведения селфскана МОЖНО отключать питание - промежуточные результаты сохраняются на диске, и при следующем включении винт продолжит с номера незаконченного теста. Исключение составляет тест 02 (подготовка служебной зоны) - на время этого теста вся информация находится только в ОЗУ, а в конце записывается обратно, и если пропадёт питание во время его прохождения либо этот тест будет провален - винт потеряет служебку! Поэтому желательно предварительно её сохранить. Кроме того, начиная с 7200.7 оверлей в 02-м тесте в оперативку уже не помещается, и соответственно при полном селфскане затирается и сохранять его надо обязательно! А начиная с серии 7200.9 это касается ещё и AppCode!

Подготовка - получаем информацию о диске, сохраняем служебку
Для начала получим возможно полную информацию о винчестере. Создадим (выделить текст, сохранить с расширением *.CMD), откроем в ST_MEM_FREE и запустим следующий скрипт:
[q]
// Script file for ST_MEM_WIN - ©Shark //
// Full info about HDD Seagate Barracuda //
//Begin
TIME/Time:
//Restart
HEX/14////0
SLEEP/7000/0
//ctrl+Z
HEX/1A/1////1/1
SLEEP/3000/0
//STUFF
HEX/15/0
HEX/0D
//ctrl+L
HEX/0C////0
HEX/0D
//ctrl+R
HEX/12
//Eng Rev
HEX/01////0
HEX/0D
STR/.
STR/;
STR/%
STR/?
STR/k
STR/y
HEX/0D
SLEEP/3000/0
//Zone map
LEVEL/2
STR/x
HEX/0D
LEVEL/0
//Cert time @ health
STR/D4E
HEX/0D///1/1
//G-List
STR/V4
HEX/0D///1/1
TIME/Time:
//End
[/q]

*позже составлю и выложу на этом месте свою оптимизированную версию*
Сохраним выведенный лог куда-нибудь в папку. Эта информация позже может помочь для решения проблем.
Для сохранения служебной информации удобнее всего использовать всё тот же ST_MEM_FREE. Для этого там есть специальная команда READ_TRACKS_MASK - чтение объектов по маске с автоопределением (в доступной версии ST_MEM_SDLD эта команда не работает). Полный её синтаксис можно посмотреть в справке ST_MEM, здесь он приводиться не будет. Скрипт для вычитывания выглядит вот так:
[q]
SPEED/115200
R_TRACKS_MASK/dir//////8
SPEED/9600
[/q]

(можете попробовать поставить скорость побольше, если порт поддерживает).

Команда берёт сведения из файла \Mask\trc.txt, формат файла:
Название_семейства/Головка*Смещение_трека_в_СА*<Смещение_от_начала_в_секторах*Длина*Имя_объекта/(Следующий объект...)
Название семейства – для автодетекта, то, что отдаётся по ^L (чувствительно к регистру!). Головку, смещения и длины можно посмотреть в файле Offsets.xls либо узнать самостоятельно (см. в главе "Описание служебки"). Если длина неизвестна и лень её узнавать, можно считать трек целиком – долго, но надёжно. Имя объекта – имя создаваемого файла, к нему добавятся номера головки и трека, по которым производилось считывание.
Пример готовой строки для ALPINE:
[q]
ALPINE/0*29*<0*244*CERT/0*2a*<0*61*OVL/0*2c*<0*12*VENDOR/0*15*<0*180*APP/0*29*<244*12*TBL
[/q]

Мой файл trc.txt с моими дополнениями на основе тех винтов, что прошли через мои руки.

Скрипт создаёт дампы треков APP, CERT, TBL, VENDOR, OVL в папке \Dir\, расширение .trk. После считывания полезно убедиться, правильно ли всё считалось. Проще всего это сделать, открыв файлы в Hex-редакторе и сравнив с известными, взятыми из баз ресурсов. Рекомендуется вычитывать треки целиком, даже если они содержат лишь небольшой блок данных, потому что длины объектов различаются от версии к версии прошивки и есть вероятность, что они считаются не полностью.
Считанные файлы вместе с текстовым файлом информации о винчестере перенесите в другую папку и сохраните в надёжном месте.

Ещё раз - для 7200.7 и новее служебку перед селфсканом сохранять обязательно, для всех остальных - желательно.
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Запуск Selfscan - простейший случай

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

  • 1. Кладём винчестер на горизонтальную ровную твёрдую поверхность либо крепим в корпусе. Подключаем винчестер к терминальному адаптеру, открываем любимый терминал, выходим в TMOS. Питание желательно подавать от отдельного БП. Интерфейс IDE/SATA НЕ подключаем - он нам не нужен. Принудительно охлаждать винт во время селфскана НЕЛЬЗЯ - некоторые тесты используют его разогрев внутренними операциями.
  • 2. Устанавливаем номер теста для начала тестирования командой T>N2,,22 (для старых Медалистов просто N2)
  • 3. Нажимаем ^T - начать тестирование.

Всё! Селфскан пошёл! Можно наблюдать в терминале его прохождение или просто закрыть терминал и оставить винт в покое - проходится он полностью автономно. Ну, почти - у некоторых семейств начиная с 7200.8 после 99 теста винт вываливается в терминал. Паниковать не надо - это не баг, это фича. Просто нажмите ^T и селфскан продолжится дальше, начиная с 10-го теста.
[q]
Я когда-то поднимал эту тему. И достоверно известно что пикеры задаются дважды - и перед N2, и перед N10. Поэтому есть останов на 99-м.
Вопрос - нафика ?

Останова нет и не будет, если апп, церт с таблицами уже в буфере, а не подгружаются с блинов. Вспомните что и серийник приходится вбивать руками при СС из памяти. Производитель знает, что плотность нужно задать до тестов калибровки сервы и адаптивов до 10-го. Но при необходимости можно и задать и до тестов по юзер-зоне, поэтому и предусмотрели паузу.

Вот именно пикеры задаются дважды, был у меня кролик, не проходивший SS, но после шаманства с пикером, точнее подгрузки PCF в паузе - винт прошел SS со здоровьем 0008

Я обычно на проблемных, заваливающих СС по 4F, 4Е ставил дважды 0,7500-0,8000 перед СС и перед N10 , одно и то же значение. Тогда ёмкость винта на выходе равна бывшей ёмкости умноженной на коэффициент пикера. Ну можно потом зонник посмотреть.
Если СС из памяти, то один раз перед N2.
[/q]

Среднее время тестирования - от полутора суток и более (можно посмотреть в логе заводского селфскана). Для контролирования процесса прохождения на длинных тестах (когда в лог подолгу ничего не выводится) можно нажимать "." и ";". В случае успеха винт выйдет на уровень 50 (у коннергейтов - 40) и снова вывалится в терминал.

Послескановые действия
И вот селфскан успешно пройден. Что же дальше? Зависит от того, какого поколения у вас винт.
1. Если у вас старый винт - по успешному завершению селфскана он сразу же будет готов к работе, достаточно передёрнуть питание.
2. *необходимость выделения этого пункта мной не проверена* У Барракуд, начиная с ATA 1 и до ATA VI, переходим сразу к параграфу 3 "Правка Stuff", минуя 1 и 2.
3. У 7200.7 и 7200.8 после рестарта в терминале вы увидите: OVERLAY FAILED( и самопроизвольный выход в терминал. Это значит - оверлей (вы же его предварительно сохранили, не так ли?) надо залить обратно. Начинаем с параграфа 2 "Заливка оверлея" и только котом переходим к третьему.
4. У 7200.9 и 7200.10 в результате селфскана затирается ещё и апп и у них нужно выполнить все послескановые действия 1, 2, 3 по порядку. А оверлеев у них не один, а два, о чём они недвусмысленно намекают указанием номера:Unable To Load Overlay 01|000A

Примечание: здесь и далее в примерах копии треков, из которых посылаются элементы служебки, лежат в подкаталоге \track и имеют имена:
app.bin - апп
ovl.bin - оверлей
vendor.bin - вендор

Если, прочтя описание всех этих лействий, вы решили, что это вам не по силам, можете попробовать сделать тест только User Area - запускать селфскан с теста N4 (до 7200.8) / N10 (7200.8-7200.10). Служебка при этом не трогается. Но очень многие калибровки при этом пропускаются, фактически производится только форматирование и тест поверхности, поэтому при сильно ушедших параметрах винта результат "облегчённого" селфскана будет неудовлетворительным (провалы скорости чтения, чересчур много скрытых секторов) либо он вовсе завершится с ошибкой.

1. Заливка App.
Самую большую сложность для новичка представляют последние семейства, 7200.9 и 7200.10. Даже после успешного селфскана (а неуспешного - тем более) и последующей перезагрузки они ошарашивают новичка сообщением:
Error Reading Application Code
или, у новых,ERR Read App Codeи выходом на "старшный" уровень F>. Симпомы точно такие же, как у заваленной служебки. Без паники! Это не баг, а фича! Селфскан пройден нормально, всё в порядке - просто Application Code в процессе не сохранился.
Прежде всего, если вы попали на уровень F> не автоматически, а нажав ^Z во время загрузки, нужно попытаться считать его с диска командой F>R, либо в три этапа:
F>R1 - считать дефект-лист резервных треков (служебной зоны)
F>R2 - бут-адаптивы
F>R4 - Application code
В нашем случае первые две отработают без ошибок, а последняя выдаст ошибку вида
Code - A6  Track 15FC4.0.234  Sns FFF - что означает, что оверлея на месте нет.
А куда его залить? Нажимте "апостроф" и в ответе получите длину апп и номер буфера! (номер будет либо 80, либо 60) Получается такой скрипт (для SDLD), для примера шлём файл длиной 238h секторов в буфер 60:
[q]
SPEED/115200/b0115
STR/d60,2/0
SLEEP/4000
SEND_FILE/2048/track\app.bin/<0/<238
STR/j,,1
SPEED/9600
[/q]

На уровне F> команда смены битрейта - с маленькой буквы, поэтому у команды SPEED появляется параметр с явной её записью.
Команда F>d - отправка файла в буфер. 2 - отправка блоками по 2048 байт/4 сектора. Выбирается исходя из того, что общее число блоков не должно превышать 100h.
Команда j,,1 - запуск загруженного оверлея. Выводится сообщение о его версии:3.AAD  11-15-05 14:56 AAD,1D_S_013_N1,4Tи - ура! Мы на уровне T> ! Ну а если сообщение об ошибке - значит, не то залили, или не до конца.
Сейчас апп находится только в памяти, и если в этот момент перезагрузиться - придётся повторять всё сначала. На диск он запишется вместе с оверлеями. Переходим к следующему пункту:

2. Заливка оверлея
Для заливки единственного оверлея длиной 5Dh секторов используем ST_MEM SDLD и скрипт следующего вида:
[q]
SPEED/115200
STR/e0,0/0
SLEEP/4000
SEND_FILE/512/TRACK\ovl.bin/<0/<5D
SPEED/9600
[/q]

У винтов начиная с 7200.9 оверлеев два, и скрипт удлиняется:
[q]
SPEED/115200
STR/e0,0/0
SLEEP/4000
SEND_FILE/512/track\overlay.bin/<0/<6F/1
STR/e1,0/0
SLEEP/4000
SEND_FILE/512/track\overlay.bin/<89/<13/1
SPEED/9600
[/q]

Оба оверлея находятся на одной дорожке, поэтому если вы считали её полностью - второй вы не потеряли. В примере нулевой лежит с начала трека и имеет длину 6Fh секторов, первый - длину 13 секторов и лежит по смещению 89h секторов от начала. Длины оверлея/оверлеев и смещение для второго оверлея (если он есть) индивидуальны для каждого подсемейства и иногда - прошивки, их нужно индивидуально править под свой винт. Координаты смотреть в таблице Offsets.xls, или можно поизучать слитый целиком трек в Hex-редакторе - незанятые сектора заполнены байтом FF. После того, как скрипт успешно отработает, подаём команду T>c - записать оверлей(оверлеи) на диск. Микропрограмма сама запишет их на нужные дорожки, вместе с ними запишется и апп (если ранее нужно было залить и его). Готово! Передёргиваем питание или перезапускаем микропрограмму, подав ^T.

3. Правка Stuff, запись трека Vendor
Но и это ещё не всё. Теперь вылазит другая ошибка:
Stuff Was Unreadable((вроде бы это сообщение выскакивает и у более старых барракуд, но я на них селфскан не пускал и сказать точно не могу).
Остаётся сделать последнее действие - записать паспорт накопителя.

Паспорт хранится на треке Vendor. Структура трека:
  • 6 сектор (7200.7 и более поздние)– пароли накопителя, Master и User. Заводской мастер-пароль – Seagate (с соблюдением регистра) плюс15 пробелов. У других серий – другой адрес:
    Barracuda II, U series 7: 7 сектор
    Barracuda III-V, U5: 5 сектор
    Прочитав этот сектор, можно узнать пароль запароленного накопителя.
  • 15 сектор (может отличаться, следует уточнять по данной конкретной модели, например 20 у TONKA2, 14 у GALAXY) – DRV config – сектор лога аппаратной конфигурации (critical component vendor sector). Может быть незаполнен. Выводится на экран командой T>G0 (ноль – номер сектора, может быть больше одного). Содержит полезную информацию об основных компонентах накопителя в виде шифров.
  • 9 сектор – Part number, выводится в конце листинга AT Stuff:
    Configured-1
    Part #: 100399679      
    Хранится в виде текста, порядок байтов прямой.
  • 4 сектор – паспорт накопителя, по терминологии Seagate – STUFF. При его отсутствии винт выдаёт вышеназванную ошибку и не видится на интерфейсе. Дамп Stuff можно вывести в терминал, подав ^U (команда активна только при незагруженном Cert). Дамп начинается со строки
    AT Stuffи заканчивается строкой
    Not configured – 0если стафф сформирован неправильно,
    Configured -1, если стафф инициализирован значениями по умолчанию, и
    DRIVE HAS BEEN SET-STUFFED –если стафф корректен.
  • 9 сектор содержит его копию. Зачем - неизвестно.

Стафф состоит из записей, именуемых ключами. Длина одного ключа – два байта, таким образом, в одном секторе FFh ключей. Несколько ключей могут писаться последовательно, объединяясь в один. Структуру паспорта можно глянуть в документации по ATA интерфейсу или в доках от PC-3000.

Для правки ключей служит команда T>F. Ни в коем случае не путайте её с командой T>f – это перезапись флеш-ПЗУ накопителя! В ответ на команду винт пишет приглашение:
SetStuff->
На неё вводятся ключи Stuff в виде 16-ричных строк, начинающихся с ASCI<номер ключа>. Ответом будет выставленное значение ключа. Несколько ключей могут быть записаны последовательно. Пример:
T>F
SetStuff->ASCI8338C4CA7A
Stuff key 83 -> 38 c4 ca 7a
T>F
SetStuff->ASCI013FFF
Stuff key 01 -> 3f ff
T>F
SetStuff->ASCI030010
Stuff key 03 -> 00 10
T>F
SetStuff->ASCI06003F
Stuff key 06 -> 00 3f

Также есть функция инициализации стаффа значениями по умолчанию:
T>F
SetStuff->ASCIFE
Setting stuff to defaults
, но во-первых она не прописывает некоторые флаги доступных функций накопителя, во-вторых, у семейств начиная с 7200.8/9 (точно не помню) она изъята. Также у старших семейств недоступен последовательный ввод нескольких ключей, у них ключи надо вводить по одному.
Для удобства ввода в ST_MEM есть команда SET_STUFF, за которой вводится номер ключа и строка значений.

После инициализации паспорта значениями по умолчанию нужно вручную задать имя диска и его ёмкость. У старых моделей до Alpine её можно узнать из таблиц в конце инструкции к PC-3000, у альпин и новее - можно глянуть Total KBAs по команде 2>x и отнять от этого числа некоторое количество секторов на резерв для ремапа (сколько не жалко, обычно не менее 1000 сеторов).

Примечание: Это число может быть как меньше, так и больше типичного для этой модели! Например, топовые четырёхдисковые накопители зачастую не всегда могут достичь нужной плотности и на выходе получается модель меньшего объёма. А при скане APLUS получаются не 40/80/120 Гб винты, как были изначально, а согласно плотности пластин (50 Гб/пластина, см. описание семейств) - 50/100/150 Гб, которые официально не выпускались (официально была только 200 Гб модель). Вот такой вот бонус на халяву!

Имя диска - ключ 1B и последующие, всего 20 штук. Вводится ASCII-кодами, добивается пробелами (код 20h) до длины в 40 символов. Можно ввести не то, что было написано на крышке изначально, а какую-нибудь отсебятину - винт валидность не проверяет. Родные имена в шестнадцатеричных кодах можно посмотреть в аселабовской доке. Для удобства ввода в ST_MEM есть команда STUFF_NAME, за которой сразу вводится текстовая строка - но эта команда использует ввод нескольких ключей подряд и начиная с 7200.8/9 работает некорректно.

Емкость диска - ключ 83. Его ввод одновременно копируется в ключ 3C. Порядок байт в ключах емкости – первым идёт младшее слово, за ним - старшее. При копировании значений вручную из сохранённого трека через hex-редактор следует знать, что на диске старшие и младшие байты хранятся в перевёрнутом виде, и в итоге если править напрямую сохраненный трек, то число секторов в 3С и 83 пишется целиком задом наперёд. Другие ключи, где записана емкость – 64, например на Corsair его правка обязательна.
Для удобства ввода в ST_MEM есть команда STUFF_NAME, за которой сразу вводится ёмкость (десятичная), но эта команда использует ввод нескольких ключей подряд и начиная с 7200.8/9 работает некорректно.
Пример ручного задания ёмкости:
TONKA2 120 Гб – 234441648 секторов - 0DF94BB0 hex.
[q]
STUFF/834BB0
STUFF/840DF9
[/q]

Обратите внимание на порядок слов.
Добавляем другие места, где фигурирует емкость:
[q]
STUFF/3C4BB0
STUFF/3D0DF9
STUFF/644BB0
STUFF/650DF9
STUFF/814BB0
STUFF/820DF9
[/q]

На треке при этом по адресу 906h будет последовательность B0 4B F9 0D.

Или же можно не трахаться со всеми этими ключами, а вернуть нужные сектора прямой их перезаписью (рекомендуется для 7200.7 и новее). Пример скрипта с использованием команды W_SECTORS (работает и во FREE и в SDLD):
[q]
SPEED/115200
W_SECTORS/15ACA/0/AUTO/0/12/track\vendor.bin/0/1
SPEED/9600
[/q]

Здесь 15CA - номер дорожки, AUTO - номер буфера записи (можно вписать конкретный номер, а вариант AUTO заставляет программу определить его самостоятельно, по команде "?"), 12 - число секторов (т.е. пишем 12h секторов с запасом, хотя в принципе достаточно одного, четвёртого).

Пример скрипта с использованием записи через буферы и заполнением командой S_BUF:
[q]
SPEED/115200
S_BUF/210/VENDOR.bin/0/10/1
STR/sF6BA,0
STR/w,0,10
S_BUF/210/VENDOR.bin/10/2/1
STR/sF6BA,0
STR/w,10,2
SPEED/9600
[/q]

Здесь номер буфера записи (в примере - 210) надо указывать явно. Длина буфера всего 10h секторов, поэтому 12h секторов пишутся в два приёма. Команды s и w вообще-то выполняются на уровне 2, но команда S_BUF переходит на него автоматически, и поэтому переключение уровней в явном виде не присутствует.

Пример скрипта с заполнением буферов по SDLD - самый быстрый вариант:
[q]
//Для ST_MEM_SDLD
SPEED/115200
STR/d535,0/0
SEND_FILE/512/track\vendor.bin/<0/<10
HEX/1A
LEVEL/2
STR/s16515,0,22
STR/w,0,10
LEVEL/T
STR/d535,0/0
SLEEP/4000
SEND_FILE/512/track\vendor.bin/<10/<10
HEX/1A
LEVEL/2
STR/s16515,0,22
STR/w,10,10
LEVEL/T
SPEED/9600
[/q]

Здесь буфер записи имеет номер 535. В этом примере переключаться между уровнями 2> и T> уже нужно явно.

Ещё раз напоминаю: перед использованием любого из скриптов непосредственной записи дорожек не забудбье вручную исправить адреса буферов и номера дорожек под свой конкретный экземпляр! Не копируйте бездумно!

После записи делаем вручную сброс SMART командой 1>N1 - где-то на треке вендора (точный номер сектора не знаю) хранятся SMART Values, и мы записали их старые. Всё - винт готов к работе!
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Запуск Selfscan - сложный случай

Допустим, нам не повезло, и в результате аварийного завершения 02 теста служебку мы потеряли, причём даже не сохранив, или она вовсе изначально не читалась и винт, постучав головками, останавливается на уровне F>. Тогда нам надо запускать селфскан из памяти, заливая все нужные объекты по кабелю и не считывая ничего с блинов. Порядок действий таков.

1. Берём комплект ресурсов для своего винта

Если есть свои слитые - заливаем их. Если нету - скачиваем с сайтов, где выложены ресурсы. Подбор ведётся по кодовому имени семейства и версии ПЗУ. Версию прошивки можно взять любую, очевидно - лучше всего самую последнюю. Ресурсы можно брать от винта другой ёмкости (т.е. с другим количеством головок), исключение - 7200.10.

2. Заливаем App

См. предыдущую главу.

3. Заливаем Cert

Чтобы попробовать считать Cert с блинов, служит команда ^R. Ответ на неё, если Cert отсутствует:
DiskAccess ReadSector EC=47 at ffffffff.00.0000
DiskAccess ReadSector EC=47 at ffffffff.00.0000
INVALID Cert Disk Code - ROM Resident Revision Required: 3.AAD
(пример для TONKA2)
Как видно, TMOS вернёт нам требуемую версию Cert, что может пригодиться при подборе комплектов. Очевидно, что версия Cert должна соответствовать версии App. В данном примере это очевидно, но у линейки 7200.7 наблюдается большое разнообразие версий и подбор комплектов ведётся сложнее.
Допустим, бэкап треков у нас есть (мы ведь его заблаговременно сделали, не так ли?) Для начала файл для заливки надо подготовить. У семейств Alpine/APLUS и более старых оверлей размещался на одном треке, и никаких дополнительных операций с ним не требовалось, но у более новых оверлей размещён на двух треках (см. таблицу), и перед заливкой вычитанные нами треки необходимо слить. Проще всего сделать это самим ST_MEM. Пример скрипта для TONKA2:
[q]
CREATE_FILE/track\cert1.bin/track\cert.bin/1/0/280/1
CREATE_FILE/track\cert2.bin/track\cert.bin/0/0/188/1
[/q]

Скрипт сливает два файла в один (cert.bin), беря 280h секторов из cert1.bin и 188h из cert2.bin.

Для его посылки и запуска используется скрипт следующего вида (пример для TONKA2 - длина серта 520h секторов):
[q]
SPEED/115200
STR/d,3,1/0
SLEEP/4000
SEND_FILE/4096/track\Cert.bin/<0/<520
STR/r/0
BAUDRATE/9600
[/q]

Команда T>d использует третьим ключом цифру 1 - не раскручивать шпиндель (незачем тратить на это время, все равно останавливать придётся). Команда T>r запускает код. После запуска винт сам переключится на скорость по умолчанию, нам останется только сменить скорость терминала (поэтому команда BAUDRATE, а не SPEED).
В случае успеха TMOS вернёт ревизию Cert (посмотреть её ещё раз можно, ещё раз подав команду T>r):Disk Code Revision # .08F CRC ==> D844
4. Отправка Cert tables

Чтобы считать таблички с диска, нужно подать команду 1>t. Ответ, если таблички отсутствуют:
DiskAccess ReadSector EC=47 at ffffffff.00.0188
DiskAccess ReadSector EC=47 at ffffffff.00.01a9
Unable to load cert table info
Перед загрузкой файл с таблицами опять-таки надо подготовить. Во-первых, на треке они находятся не с нулевого сектора, и если дорожка Cert слита целиком - выдернуть их оттуда. Во-вторых, первый сектор необходимо переместить в конец файла, как видно из анализа загрузки - винт считывает его отдельно от остальных: cmd  58,  params  0035 0000 0131 0001 3F88 0001 0000 0000 0001 2E01 0035
cmd  58,  params  0035 0000 0132 0016 0900 0016 0000 0000 0001 0000 0035
Почему так сделано – одним лишь инженерам Сигейта известно.
Необходимое смещение таблиц в треке и их длина узнаётся из таблицы (если там нет или что-то не сходится, то анализом полного трека в HEX-редакторе). Пример скрипта подготовки таблиц для TONKA2 (смещение относительно начала трека 188h секторов, длина 18h секторов):
[q]
CREATE_FILE/track\tabl.trc/track\table.bin/1/189/17/1
CREATE_FILE/track\tabl.trc/track\table.bin/0/188/1/1
[/q]

Посылаем полученный файл по команде T>h:
[q]
SPEED/115200
STR/h18/0
SLEEP/4000
SEND_FILE/512/track\table.bin/<0/<18
SLEEP/4000
SPEED/9600
[/q]

Никаких сообщений по окончанию загрузки не выводится. Проверить правильность загрузки таблиц можно посмотрев порядок выполнения тестов C>D

5. Вводим серийный номер

Командой T>#,,22. В ответ на приглашение вводим по очереди S/N и P/N, написанные на наклейке винта. В конце винт выдаст ошибку записи на диск Code - 33, не обращаем на нее внимания.

Зачем это нужно? Серийник содержит информацию об общем кол-ве головок (т.е. по сути определяет старшинство модели в семействе), они закодированы во 2 и 3 букве номера. Если проводится селфскан с отключением головок, серийник требует правки (об отключении головок ниже).

6. Стартуем селфскан

Запуск, дальнейшее прохождение и завершение проводится так же, как в предыдущей главе.

Ну а теперь, напоследок, когда вы уже можете понять, что в скриптах к чему и что за что отвечает, и прикидываете, как будете копипастить и править примеры под свой винт, вот вам подарок:
Готовая подборка скриптов ST_MEM для почти всех семейств Seagate Barracuda и Momentus (где скачал и кто автор - не помню)
Копия моей рабочей папки со скриптами. В ней рабочий беспорядок, зато - в их работоспособности я уверен. Во всяком случае, той части, что отсортирована.
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Ну а что делать, если селфскан завершился с ошибкой?
Log 4E - Health 0000 - Time = 00:00:01 Log Type = 01
Total Cert Time = 16:03:00
ASCII logging off

Power Cycling
AbEnd Test 4E

T>

Для начала посмотрим Health командой "точка" и проанализируем сводный лог командой T>E4E.
Смотрим, на каком тесте накопились биты ошибок, например
Log 31 - Health 4000 - Time = 00:00:33 Log Type = 04
Log 42 - Health 7361 - Time = 05:07:44 Log Type = 69

Выводим на экран логи именно этих тестов командой T>E (либо T>D без параметров) и внимательно вкуриваем... Для лучшего понимания происходящего обращаемся к краткому описанию тестов. По результатам анализа принимается одно из следующих решений:

  • Если винт не может выйти на требуемую ёмкость (ошибка FAIL_CAPACITY) или при слишком большом числе ошибок в тестах дефектоскопии - понижаем плотность командой E>v или downsize-прошивкой и пускаем скан заново.
  • Если винт сыплет ошибками по какой-то одной голове - отключаем её и перезапускаем селфскан. О рубке голов - см. ниже.
  • Тесты дефектоскопии с малокритичными, на ваш взгляд, ошибками, в принципе можно пропустить. Смотрим, какой тест был завалем, сбрасываем Health командой T>H,,22 и командой T>N запускаем тестирование со следующего (по порядку в C>D) теста, и так далее. На выходе получаем винт с кривым и зубчатым графиком чтения, однако - относительно рабочий. Я такой опыт проводил лишь однажды, возможно, ему бы помогла ручная подстройка пикера, но этот полутруп того не стоил.
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Отключение головок (кроме нулевой)
Для отключения головок на Seagate есть два варианта.
1. На старых моделях до Alpine с прошивкой x.5x единственным способом отключения неисправных головок была команда T>Y - по сути, переделка на младшую модель. Отключать таким способом можно было только верхние головки начиная с последней, таким образом, чтобы на четырёхголовом винте отключить головку номер 2 (отсчёт от нулевой), приходилось отключать ещё и третью, либо головки и вовсе отключались парами. Параметром команды Y выступает новый тип накопителя. Значения возможных типов смотрите в таблицах из документации по ремонту.

2. Начиная с прошивок версии с цифрой "5" посередине для Альпин появилась команда T>k - отключение голов в середине пакета. Напомню формат команды: kx,y,z, где x - номер старшей отключаемой головы, y - новый тип накопителя, z - если введено, номер младшей отключаемой головы. Комнада k без параметров показывает текущую карту голов, kFF - включает обратно все отключенные головки.

Примечание: Экспериментируя с этой командой, у 7200.7 и 7200.8 (на более поздних не встречал) вы можете обнаружить отключенные на заводе головки. Ничто не мешает попробовать включить их, проверить их, перебрав все по очереди командой 2>Hx, и пройти селфскан с ними. Зачастую они оказываются вполне рабочими или просто чуток не дотягивающими по параметрам, и после селфскана мы получим винт БОЛЬШЕЙ ёмкости, чем он был раньше. Я, например, таким образом из 300-ки совершенно рабочий винт на 380 Гб получил - чуть-чуть до полагающихся четырёхсот не дотянул.

Примечание 2: У TONKA2 таким путём вы можете обнаружить 6 головок, которые все нормально определяются. Это обман, у этого винта конструктивно всего один диск в гермоблоке и 1-2 физические головки, все остальные в списке - это их фантомные дубликаты. Если их включить, селфскан нормально запустится, но далее тест сервосистемы notch calibration уйдёт в бесконечный цикл.

После отключения головок командой "k" необходимо ввести серийный номер командой T>#,,22, изменив в нём 2 и 3 символы. В них закодировано общее число головок. Если его не менять, селфскан может включить ранее отключенные головки. Таблицу соответствия 2 и 3 символа серийника числу головок смотрите в файле Offsets.xls или в мануале к PC-3000, а узнать их самостоятельно можно, изучив App code.

После отключения головок нужно запускать селфскан заново - отключение без перепрохождения самотестирования невозможно, да и не нужно.

Отключение нулевой головки

Все эти методы не позволяют отключить нулевую голову - потому как она системная. Отключить её можно, обменяв её логический номер с какой-нибудь другой (рекомендуется выбрать самую целую) и потом уже отключить как ненулевую. Для этого есть команда:
[q]
C0D,x,y Head switches from 1st to 2nd head
x = optional 1st head (default = head 0)
y = optional 2nd head (default = max head)
[/q]

, но источник цитаты неизвестен, уровень исполнения тоже, и вообще, с ней никто не разбирался. Поэтому для отключения 0-й головы нужно править ПЗУ и апп. Первым делом для этого ПЗУ нужно считать.

Чтение ПЗУ
Изучив команды, вы можете заметить, что команд, явно отображающих содержимое ПЗУ, там нету. Поэтому товарищ Fagear для последовательного ПЗУ написал специальный скрипт и программку log2sf. Скрипт 65536 раз читает память, по одному байту за раз, а программа конвертирует полученный лог в бинарный файл.
[q]
Программа преобразования протокола чтения последовательной флешки при помощи скрипта для ST_MEM в образ ROM.

Запускается с единственным параметром - именем исходного файла протокола.
Запуск drag'n'drop-ом файла протокола на исполняемый файл программы.
Образ кладётся в папку с программой под именем "sf_dump.bin".

Содержимое файла протокола:

....
F>e2,x,x
=FF
F>e2,y,y
=00
....

[/q]

Медленно, но надёжно.
Внимание! Скрипт запускать на уровне F> ! (напоминаю, переход на него - зажать ^Z в самом начале старта накопителя)

Параллельное ПЗУ на старых моделях читается иначе, в этом вам поможет скрипт snowmass_rd_flash от Stalker317 или log2pf от Fagear

Правка ПЗУ для отключения нулевой головки

Открываем полученный дамп в редакторе и ищем в нём последовательность байт 00 01 02 03 (у двухдисковых семейств) или 00 01 02 03 04 05 (у трёхдисковых семейств). Последовательность увеличивающихся по порядку байт встречается в ПЗУ дважды - нам нужна только та, которая из четырёх (шести) байт и за которой НЕ идут далее 06, 07 и т.д. Меняем местами номер нулевой головы с любой другой, например, 01 00 02 03 или 03 02 01 00, и сохраняем файл.

Затем по тому же принципу ищем и переставляем байты в App.
[q]
Порядок голов во флеше нужен для Boot Code, который ищет где стартовать служебку, т.е. определяет, по какой голове хард будет искать Апп. А вот после загрузки Аппа уже включается в работу последовательность из него самого - и церт (скан) и оверлей уже будут работать с порядком голов в Аппе.
[/q]

Там они прописаны в двух местах.

Запись ПЗУ

Для записи последовательного ПЗУ на уровне T> есть команда f, но примеров пользования ей я найти не смог. Поэтому я нашёл у кого-то, подправил и опробовал вот такой скрипт для уровня F>
[q]
//Level F required!
SPEED/57600/b576
//download code to buffer 400
//STR/d400,0,0/0
//Для 7200.10 надо d800
STR/d800,0,0/0
SLEEP/4000
SEND_FILE/512/TRACK\rom.bin/<0/<80/1
//Init flash pins
SLEEP/2000
STR/e5
//Erase flash
SLEEP/2000
STR/e9
//Program flash, 200 pages
SLEEP/2000
STR/e3,200,1,0
SPEED/9600/b96
[/q]

Для 7200.10 образ ПЗУ заливается в буфер 800, для всех остальных - в буфер 400.
Если с записью через буфер возникли какие-то проблемы, можете воспользоваться скриптом побайтной записи sf2script от Fagear.
[q]
У меня, например, NHPLUS в своё время никак не хотел шиться, ни через f, ни через e3,200. Зато попробовал случайные байты ручками прописывать по e1 - принимало. Раздумья были недолгими, так родилась софтина sf2script (Serial Flash to Script).
Конвертировал образ в скрипт побайтовой заливки флеши и пошёл делами заниматься. Да, льёт долго. Зато наверняка, нет нужды искать буфера и ковыряться с контрольными суммами.
[/q]


Эту же операцию нужно делать, если вы нечаянно затёрли флеш командой T>f и теперь винт стартует с сообщением:
Interface task reset
1024k x 16 buffer detected  
MASKROM - 1_Disk    M-20  12-07-03 15:39

F>


Ну а если у вас на плате нет последовательного ПЗУ - только масочное в проце, то придётся флешку на пустое место допаивать и прошивать, и ещё пару резисторов рядом с ней, чтоб к ней обращение шло.

Параллельное ПЗУ шьётся иначе, точного скрипта у меня нет. И я не знаю, есть ли у старых Сигейтов масочное ПЗУ для его аварийного восстановления. В своё время народ шил эти флешки, запаивая их на плату от Fujitsu MPG и используя её как на программатор (примечание: у этих винтов по-разному перепутаны линии адреса и данных, поэтому дамп нужно перемешать вот этой утилиткой от Андрея Киреева.

Ещё можно вот так:
[q]
Я разбираля с U-серией.
Получилось считать ПЗУ ST43313 в терминале pcstuxxx
T>u00, символ псевдографики, F7, принять файл.
файл идентичен образу, считанному по ата-интерфейсу.

Запись f0000,eeee, ждать пока винт перестанет реагировать на "."
F7, отправить файл. Не пробовал, но по d09 записал испорченный мной userdef.dmp
Винт вышел из бизи.
[/q]
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Теперь про особенности запуска селфскана на U-серии, конкретно на U6.

1. Служебка имеет модульную структуру. Модули программного кода (для U6 – с 00 по 0C) хранят внутри себя свой номер (ключ) и контрольную сумму, у модулей данных их нет. Команды:
T>uxx – чтение модуля с ключом xx, в т.ч. ПЗУ
T>dxx,0 – запись модуля xx (кроме ПЗУ), если не указан – определяется по его внутреннему ключу.
Чтение-запись – по протоколу SDLD. Читать и писать также могут фирменные проги U6DLE и ZSDLE. Совет: в хелпе программы указаны не все ее функции (например, она умеет работать как терминал!) и ключи – используйте просмотр тела программы в текстовом редакторе.

Таблицу модулей можно посмотреть в документе PC_UXX.pdf.

2. Для прохождения селфскана на U6 (насчёт других семейств не знаю, но вроде тоже) нужно отдельное скановое ПЗУ (CERT ROM) Его есть две версии:
  • 3.33 – для прошивок 3.39 3.99 5.33 5.46 4.65 3.19 3.64
  • 3.39 – для прошивок 3.34 3.60 3.31 3.33

Прошивка производится командой T>f0000,eeee , после ее подачи нужно дождаться, пока винт перестанет реагировать на онлайн-команды (например, «точку») и отправлять файл по SDLD. Винт сам ее запишет.

3. Нужен отсутствующий на диске оверлейный модуль селфскана key01h. Без него вываливается сообщение:
KEY 01h invalid Resv
Для каждой ПЗУшки он, аналогично, свой.

4. Служебная зона в цикл селфскана не входит и тестируется отдельной командой T>I,,22 (на барракудах, где она тоже есть, ей соответствует тест 02)
5. Набор команд и форматы вывода имеют заметные отличия.

Программы U6DLE/ZSDLE, CERT ROM (и на всякий случай AT ROM) и CERT OVL брать тут: http://www.hddoracle.com/viewforum.php?f=134

Исходя из этого, последовательность проведения селфскана будет такова:
1. Забэкапить всю служебку накопителя утилитой U6DLE (пример для порта COM1, скорость 57600)
[q]
u6dle /c1 /s576 /u=0 ROM.BIN
u6dle /c1 /s576 /u=1 1

u6dle /c1 /s576 /u=22 22
[/q]
Вместо цифр 1-22 можно вписать имена файлов, для использования ATA терминала и ключей настройки COM – см. хелп программы (U6DLE /h или вовсе запуск без ключей)

2. Записать скановое ПЗУ:
[q]
u6dle /c1 /s576 CERTROM.FLS
[/q]
Прога сама разберется, что это за файл и куда его класть. После записи передернуть питание. По Ctrl+L теперь должно писаться, что внутри именно CERT ROM
3. Залить оверлей 01:
[q]
u6dle /c1 /s576 OVERLAY.BIN
[/q]
4. Провести тест служебной зоны: T>I,AA,22
Его можно не проводить, тогда п. 5 и 10 исключаются и добавляется п. 11
5. После этого модулей в зоне больше не будет. Залить требуемые модули:
[q]
u6dle /c1 /s576 OVERLAY.BIN
u6dle /c1 /s576 modules\7.bin
u6dle /c1 /s576 modules\8.bin
u6dle /c1 /s576 modules\b.bin
u6dle /c1 /s576 modules\c.bin
[/q]
6. Запустить селфскан:
T>N4,AA,22
Ctrl+T
Если жалуется на отсутствие какого-нибудь модуля (KEY XXh invalid Resv) – повторить п.5
7. Дождаться завершения теста 3F. Накопитель встает в ожидании. Залить корректный AT ROM:
[q]
u6dle /c1 /s576 ATROM.FLS
[/q]
Передёрнуть питание накопителя.
8. Залить AT оверлей (key02)
[q]
u6dle /c1 /s576 2.BIN
[/q]
9. Запустить вторую часть селфскана:
T>N40,AA,22
Ctrl+T
10. По успешному окончанию (Age=50) создать паспорт накопителя, путём правки ключей, или отправив сохраненный модуль 0F.
[q]
u6dle /c1 /s576 /p=f f.bin
[/q]
Ключ /p= программы принудительно указывает номер модуля для заливки.
11. Накопитель готов к работе. Если не проводилась очистка служебной зоны – сделайте сброс SMART вручную (1>N1).
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Часто встречающиеся вопросы, проблемы и методы их решения

В: Винт стучит головами и пишет в цикле
Buzz - Head Mask 000F - Head Mask 000F - Head Mask 000F - Head Mask 000F –
(Head Mask может быть другим)
О: Не может обнаружить коммутатор. Причин может быть несколько:
1. Выход из строя микросхемы коммутатора-предусилителя
2. Нет напряжения -5В для его питания, неисправен формирователь напряжения.
3. Кто-то подменил плату, поставив аппаратно несовместимую.

В: Почему вообще у разных винтов (исправных и с некусаными головами) разный Head Mask при старте? У кого 0000, у кого FFFF, у кого 000F
О: А фиг его знает. Какие-то аппаратные различия.

В: Какие есть критерии по замене плат?
О: Версии ПЗУ старой и новой плат должны совпадать, в противном случае необходима перепрошивка ПЗУ, допайка последовательного ПЗУ при необходимости, либо перезапись всей микропрограммы на совместимую с новым ПЗУ версию. В серии 7200.7 могут быть четыре типа несовместимых плат: с микроконтроллером от ST Labs и от Agere, и с крутилками Smooth и SH6950. Микроконтроллеры принципиально различаются каналом чтения-записи и платы с разными контроллерами невзаимозаменяемы (накопитель уходит в стук). Интересный вопрос – замена плат между подсемействами внутри семейства. Говорят, у кого-то получалось. В общем, если после замены платы накопитель не срывается в стук – дерзайте…

В: Можно ли переделать винт PATA в SATA и наоборот?
О: Можно, проверено. Ставим плату от того же семейства/подсемейства (определить по кодовому имени в приветствии - если что, плата пишет его, даже будучи не прикрученной к банке), заливаем в память нужную прошивку и пускаем селфскан из памяти. Как сменить прошивку без селфскана, я не разбирался.

В: Накопитель 7200.7 SATA. Подключаю питание, подключаю дата-кабель – винт не раскручивается, и в терминале молчание…
О: Особенность такая. Накопитель не стартует до подачи Hard Reset по интерфейсу. Я встречал такое на APLUS (с чипом-мостом PATA-SATA), говорят, на Puma (нативный SATA) тоже бывает. Необходимо подключить винт по интерфейсу и любой сервисной программой (MHDD, Victoria, etc.) подать Hard Reset. Или в терминале Ctrl+C

В:Command Inactive - No VALID Cert Code Detected
О: ^R

В: Corsair (а также винты семейства 7200.10) после успешного скана и передергивания питания вываливается в F, записать по w4 не помогает
О: Эта линейка в процессе скана апп на диск на записывает. Заливайте апп в память, потом обязательно подгружайте адаптивы (T>R1, T>R2), записывайте по T>w4, заливайте оверлей, запиcывайте на диск командой T>c и все взлетит. Или вроде бы помогает подать команду c сразу по окончанию скана.

В: Wrong Yuma Chip! Drive will hang
О: SATA-шная плата с PATA блинварью.

В: Сделав kFF, обнаружил, что у меня на TONKA2 вроде как 6 головок! Я что, 300-ку из него сделаю?
О: Нет. TONKA2 – это исключительно одноблинная модель. Многодисковые – это TONKA15. Остальные четыре головки – это фантомные копии первых двух. Если их включить, селфскан с ними не пройдёт, завалит notch calibration.

В: NIGHTHAWKPLUS на 31 тесте беспрестанно сыплет строками видаAdding 0042 00018.0000.0077.1555  00A2  0400:000D
О: Смените фирмварь на 3.AAF, иначе тест не пойдёт.

В: На NIGHAWKPLUS не могу прошить флешку! Скрипт отрабатывает нормально, но во флешке чисто!
О: Заливай не в буфер 400 (команда d), а в 800

В: Можно ли проходить селфскан, выставив скорость обмена 115200?
О: Можно, скорость не собьётся. Скан пройдёт несколько быстрее.

В: Как найти объекты в слитых треках?
О: Открываем треки в HEX-редакторе. Апп начинается с текстовой строки - имени семейства. Серт занимает обычно целый трек плюс трек по первой голове (для одноголовых – через трек по нулевой голове). Таблички находятся в середине трека, с того сектора, на котором закончился серт (хотя он на другом треке), их первый сектор содержит только текстовую строку – версию серта. Оверлей начинается с текстовой строки – указания версии (.021g например). Вендор содержит по адресу 800h паспорт (опознается по названию модели с перевернутым порядком байтов). ПЗУ имеет размер 64к. Для полной уверенности можно поискать тестовые строки и изучить их. Для отмерения длин объектов надо учитывать, что блоки, содержащие FF считаются за часть объекта – неиспользуемые сектора записаны нулями.

В: (P)Bad AppCodeKey
О: Отсутствует оверлей (не App!).

В: На 02 тесте стопорится с ошибкой GC Seek Error 1 !!! либо зависает в начале 02 теста с буквой «p» в конце:Read Bias - Head      0   1   2   3
                       9   9   9   9
  
HiTemp Bias Head      0   1   2   3
                       9   9   9   9
p

О: Попереключайте 4>c3 и 4>c24>c3
Track Write Type set to HDW.
4>c2
Track Write Type set to MDW.

И перезапустите селфскан.
Либо же кто-то (как было у меня) прикрутил к банке несовместимую плату.

В: SetStuff->ASCIFE
Setting stuff to defaults
Unsupported drive type

О: Не работает, значит, у этого семейства сброс в дефолт, пишите копию трека вендора на диск посекторно.

В: В Виктории на NIGHTHAWKPLUS график верификации весь кривой и зубчатый даже после селфскана!
О:
[q]
У ястребов фича есть.
Они хорошо работают на чтении, но сыпят массу задержек на верификации. То есть, задержки на верификации для них норма и бороться с ними не следует.
На чтении нормальный график за счет кеширования.
Из-за этого народ часто за-зря гоняет на них SS.
[/q]

В: FAIL_CAPABILITY     100.0000  
О: Уменьшайте плотность по E>v

В: После успешного прохождения селфскана на 7200.10/5400.4 получаю
ERR Read App Code
О: Особенность семейства. Делаешь F>R3, грузишь App, дальше T>w4,60 , серт уже на блинах – осталось загрузить и записать оверлей и вендор.


На этом по Сигейтам пока всё. Нерассмотренными мной остались следующие вопросы:
- Не отработана заливка оверлея до скана, чтобы он лёг на блины в процессе
- Не изучен PCF
- Не отработана перезапись прошивки без прохождения селфскана
- Есть некоторые неточности в описании отключения голов
- Не написано про включение AAM
По архитектуре F3 как-нибудь потом пару слов скажу отдельно, они к "старым" не относятся, но тема их ремонта очень уж востребована.
KALDYH
Advanced Member

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


Ссылка


Дата регистрации на форуме:
5 июня 2009
Жёсткие диски фирмы Conner рассмотрю "прицепом" к руководству по ремонту Seagate. Подключение к терминалу, работа в TMOS и общие принципы восстановления те же самые, сосредоточусь только на отличиях.

Компания Conner Peripherals основана в 1985 году сооснователем фирмы Seagate Финисом Коннером. В 1986 году произошло слияние со стартапом CoData, созданным основателями компании MiniScribe Терри Джонсоном и Джоном Сквайресом. CoData разработали жёсткий диск в новом форм-факторе 3.5", и эти диски и стали первым продуктом Conner Peripherals. В 1996 году компания была куплена Seagate.

Внутреннее устройство накопителей Conner во многом наследует концепции более ранних Miniscribe, где на микроконтроллер (архитектура MC68HC11) возложена большая часть функций обслуживания сервосистемы, стабилизации скорости вращения шпинделя и работы с интерфейсом, что позволяло удешевить плату по сравнению с другими винтами конца 80-х, где использовались отдельные аналоговые схемы для позиционирования головки и стабизизации шпинделя, а контроллер обслуживал лишь интерфейс и выдавал управляющие импульсы. Другим нововведением была процедура самотестирования накопителя на стадии изготовления, что избавляло от потребности в тестирующей хост-системе со множеством портов. Недостатками винчестеров Conner была невысокая по сравнению с конкурентами скорость работы.

Скорость порта 9600 или 7200. Комбинация для входа в TMOS у одних это ^Z, как у Seagate, у других нажмите последовательно ^W ^S ^Q ^E. Селфскан дапускается командой T>N2 и затем ^T или ^Q ^E ^T, после скана ничего не портится и обратно заливать не нужно. Большая часть кода умещается в ПЗУ. Работа по интерфейсу - тест 40. В общем, всё как у старых Seagate (Lapaz, Belize и были переименованными коннеровскими разработками), так что читаем главу про TMOS Seagate и применяем в упрощённом варианте.

Документация по TMOS Conner
Руководство к утилите PCCONNER от Acelab
http://ikserg.chat.ru/CONNER.RAR ,
http://shostatsky.narod.ru/rem_comp/tmos.zip, и
http://dr-shost.com/freqs/dosutil/tmos.arj - хватит с избытком (кстати, http://dr-shost.com/ вообще полон всяческих ретрокомпьютерных ништяков, лишний раз прорекламирую здесь).



Также недолгое время (1996-1998) существовала компания Conner Technologies, основанная выходцами из бывшей Conner и производившая бюджетные жёсткие диски на индийских заводах. Всего было выпущено четыре или шесть моделей, в настоящее время эти диски - коллекционная редкость, а в рабочем состоянии - и вовсе уникальны... Чинятся они по другим методикам, про которые тоже могу рассказать, только вряд ли они кому-то пригодятся.

i8088
Advanced Member


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


Ссылка


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

KALDYH написал:
[q]
Всего было выпущено четыре или шесть моделей, в настоящее время эти диски - коллекционная редкость, а в рабочем состоянии - и вовсе уникальны...
[/q]

У меня есть такой рабочий, 15GB. Только помню звук рекалибровки какой-то не
такой как у других дисков.
<<Назад  Вперед>>Страницы: 1 2 3 4 5
Модераторы: Atlas3000, Tarus
Печать
ПОЛИГОН ПРИЗРАКОВ »   ДОКУМЕНТАЦИЯ »   Програмный ремонт жёстких дисков HDD
RSS

Последние RSS
[Зеленоград] Электроника МК-85 продам
Помогите с платой asus P/I-AP55TV
Куплю Voodoo 3 PCI
Не работает USB
Таймлайн GF6600 - какие игры были тогда актуальны?


Время выполнения скрипта: 0.0904. Количество выполненных запросов: 15, время выполнения запросов 0.0235


Партнёры: Компьютерный музей в Таллине | ЖЖ-сообщество | Таллин: Переулки Городских Легенд | Журнал "Downgrade"





Авторские права и условия копирования материалов



Hosted by Compic