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

FAQ, мануалы, полезные ссылки
KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 11.05.2017,21:43

От общего обзора понятий переходим к конкретным методикам по отдельным фирмам-производителям. Начнём мы, пожалуй, с Seagate - во-первых, тема зародилась с обсуждения диска этой фирмы, во-вторых, благодаря приличной надёжности, их до наших дней дожило заметно больше других, в-третьих, по ним у меня самый большой опыт, в-четвёртых, для их ремонта практически не требуется никакого спецсофта, в-пятых, они весьма благодатны по части успешного ремонта.
Изображение Изображение
Компания Seagate - один из трёх оставшихся ныне производителей жёстких дисков, первыми разработали жёсткий диск формата 5.25" для персональных компьютеров. Основана в 1979 году Аланом Шугартом, создателем гибких дисков и интерфейса SCSI. Значимые приобретения:
1996 - Conner Peripherals
2006 - Maxtor
2011 - подразделение Samsung по производству HDD

По методикам ремонта жёсткие диски Seagate можно разделить следующим образом:
ИзображениеИзображение
- первые IDE диски компании: ST157A (самый первый IDE накопитель фирмы, конверсия MFM винчестера), ST351A/X (второй IDE накопитель фирмы, последний с шаговым двигателем и первый с серворазметкой) и др. Процессорная архитектура - Intel MCS-51. Из доступных средств ремонта для них есть только PC-3000.

Изображение
- семейства накопителей до приобретения Conner Peripherals, например вышеупомянутый ST3491A. Характерная чёрная гермобанка с плоской крышкой и блестящие держатели по бокам на резиновых подушках. Поначалу именовались только номером, позже получили "спортивные" имена Decathlon, Medalist, Marathon и т.д. Именем семейств выступает пятизначное число вида 802xx. Процессорная архитектура - Intel MCS-96. Из доступных средств ремонта для них есть только PC-3000. Еще некоторая инфа по ним.

После покупки компании Conner старые разработки Seagate получают развитие в SCSI линейке и в ATA серии Medalist Pro. Эти диски терминала не имеют.

Изображение
- "коннергейты": поколение накопителей после покупки Conner Peripherals; Lapaz, Belize, Maui, еще неизвестная серия Практически повторяют последние модели Conner как по внешнему виду - белый алюминиевый гермоблок со скруглёнными углами, тонкостенной штампованной крышкой и пластмассовой накладкой на ней - так и с программной точки зрения, никакой преемственности со старыми моделями самого Сигейта не прослеживается. Процессорная архитектура - 68HC11. На маркировке смена внутренней архитектуры никак не отразилось. Ремонтируются через последовательный порт командами TMOS, команды и формат отклика идентичен Conner..
Разбор и изучение микропрограммы MAUI2
Патченый микрокод для ноутбучного ST32520
Использование платы Lapaz как программатора (перезалитый файл http://sluzhebka.com/utils/Seagate/WINTPROG.ZIP )

- промежуточные модели, например, ST32520A Spark4. Конструкция гермоблока не имеет аналогов.

- "медалисты-пред-барракуды" - следующая группа. По всей видимости, происходит смена процессорной архитектуры на какую-то из серии ST. Система команд получает дальнейшее развитие, усложняется, добавляются новые команды. Конструктивное оформление - плоское шасси и штампованная профилированная алюминиевая крышка (очень похоже на Fujitsu MPG), 1-4 диска, 5400 об.мин. Семейства:
Bali - ST38641A, ST36531A, ST34321A, ST33221A, ST32110A. 2.1 Гб/пластина.
Taos - ST32510A, ST35120A, ST37630A, ST310240A. 2.5 Гб/пластина.
Hilo - ST33210A, ST36422A, ST310230A, ST313640A. 3.2 Гб/пластина, 256к кэш, UDMA-33. Пример его ретроспективного изучения
Keystone_33 - ST317240A, ST313030A, ST38420A, ST34310A. 4.3 Гб/пластина.
Keystone_66 - ST317242A, ST313032A, ST310232A, ST38422A, ST34312A - то же, что и предыдущие, но вводится UDMA-66.

Встречаются они относительно редко, поэтому документации и разбора по ним нет, чинить опираясь на описание по барракудам (ближе всего подходит Durango).

ИзображениеИзображение
- "барракуды" классические: серия накопителей, начинающееся с первой Barracida ATA и до Barracuda 7200.10 включительно. Имя ведёт родословную от SCSI-моделей фирмы ("звериная" серия: Barracuda, Hawk, Cheetah...), но по факту от предыдущих Medalist-ов не особо отличаются и ремонтируются так же. Позиционировались как высокопроизводительное и скоростное решение для домашних ПК; на них была введена скорость шпинделя 7200 об/мин. Первые диски имели внешний вид, подобный последним Медалистам, начиная с Barracuda ATA IV диски обрели привычный и поныне вид: чёрное литое корытообразное шасси и плоская блестящая стальная крышка с ромбическим выступом почти во всю площадь. На протяжении всей эволюции серии TMOS постоянно совершенствовалась и усложнялась, а для успешного ремонта требовалось всё большее количество операций.

Изображение
- "U-шки": U-серия накопителей. Позиционировались как дешёвое решение с невысокой производительностью (5400 об/мин.) Характерная резинка вокруг корпуса aka "гондон". Имеют отличия от Барракуд в системе команд TMOS и структуре служебки, но в целом методика остаётся той же. Помимо последовательного терминала, на них есть и ATA-терминал, но никаких преимуществ его использование не дает.

- т.н. семейство "F3" - названо так по приветствию командной строки, которое выглядит как "F3 T>", в отличие от "T>" у предыдущих. Модели Barracuda 7200.11, 5400.6, LP и старше. По непроверенной информации, базируется на наработках SCSI семейств фирмы. Несмотря на практически идентичный предыдущим дискам вид, имеет огромные отличия как в системе команд, так и в структуре микропрограммы, и в используемых технологиях. Фактически, микрокод был переписан с нуля, и все старые методики к ним больше не подходят. Мной это семейство, как не попадающее под категорию "старых", будет рассмотрено только вскользь.
Изображение
Жесткие диски Maxtor, выпущенные после 2006 года (Diamondmax 20-23) с маркировкой вида STM3xxx, являются теми же самыми Seagate Barracuda, чинятся по тем же методикам и именовались как Maxtor только для выполнения обязательств перед поставщиками. Никакого влияния технологий этой фирмы на продукцию Seagate не замечено.

Изображение
Жесткие диски Samsung Spinpoint, напротив, после покупки подразделения продолжили выпускаться под тем же именем, лишь сменив марку на Seagate, и по части ремонта должны рассматриваться вместе с прочими дисками Samsung.

Расшифровка обозначения
Взято с FAQ SU.COMP.OLD
У современных используется другая маркировка, но мы их здесь не рассматриваем.

ST 5 1080 A PR -0
ST 9 500 3 2 5 AS G

1 элемент - ST - Seagate Technology

2 - коpпус:
  • 1 - 3.5" высотой 41 мм
  • 2 - 5.25" высотой 41 мм
  • 3 - 3.5" высотой 25 мм или 5.7" глубиной 146 мм
  • 4 - 5.25" высотой 82 мм
  • 5 - 3.5" высотой 25 мм или 5" глубиной 127 мм
  • 6 - 9"
  • 7 - 1.8"
  • 8 - 8"
  • 9 - 2.5" высотой 19 мм или 12.5 мм
3 - емкость в десятичных Мб (до 96 года примерно) или в Гб (позже). Для pанних моделей указывалась нефоpматиpованная
емкость, pеальная была пpимеpно на 10-15% меньше; сейчас указывается pеальная емкость в десятичных единицах.
Следующие три элемента появляются только с переходом на указание ёмкости в гигабайтах:

4 - вариант исполнения, например ёмкость кэша
5 - число дисков
6 - идентификатор, просто число для отличия моделей с похожим обозначением (по умолчанию 0)

7 - интеpфейс и маркетинговая категория:
пусто - ST412/MFM
A - ATA (IDE)
AD - ATA с 50-контактным 1.3-дюймовым pазъемом
AS - SATA
CS - SATA для DVR
DC - Диффеpенциальный SCSI с единственным pазъемом
E - ESDI
FC - Fibre Channel
J - SMD/SME-E
K - IPI-2
L - PS/2 ESDI
LC - SCSI LVD wide с единственным разъемом
N - SCSI narrow
NC - SCSI narrow с единственным pазъемом
ND - Диффеpенциальный SCSI
NM - SCSI, совместимый с Mac
NV - SCSI, совместимый с Netware
NS - SATA Enterprise
P - PCMCIA (в pанних моделях - MFM с пpедкомпенсацией)
R - ST412/RLL
S - SCSI или с поддеpжкой синхpонизации скоpости вpащения
SS - SAS
W - Wide SCSI
WC - Wide SCSI с единственным pазъемом
WD - Диффеpенциальный Wide SCSI
X - IDE для шины XT-Bus

8 - опции оборудования:
PR - Paired Solution (комплект из винчестеpа и контpоллеpа)
G - G-Sensor (датчик ускорения) и технология SafeRite (tm) - система защиты от ошибок записи пpи толчках
Q - выход термодатчика на отдельный разъём для Macintosh
CE - оптимизация для потокового видео
V - оптимизация для видеорегистраторов
У двух последних опций буква "A" в маркировке SATA опускается (т.е. SATA версии обозначаются как SCE и SV).

9 (опционально) - вpемя доступа: 0 - обычное, 1 - уменьшенное

Site Code, S/N

На наклейке есть строка Site Code. Это кодированное название завода-изготовителя. Эта же информация закодирована в первом символе серийного номера (S/N)
Первый символ S/NSite CodeЗавод-изготовитель
Z, 4, 9TK, KRATSGSeagate Technology Thailand Co.Ltd, (Korat Plant)
W, 5WU, WUXISGWuxi, China
S, 6SU, SUZHSGSuzhou plant, China (закрыт в январе 2017)
3AMKAng Mo Kio, Singapore (закрыт в августе 2009)
7ML2Malaysia (два завода, на Penang Island и в Negeri Sembilan, проданы в январе 2017)

Второй символ S/N - возможно, тип преампа и/или пластин
Третий символ - число головок
Примеры с некоторых экземпляров: http://www.users.on.net/~fzabkar/HDD/seagate_sernum.txt

Date code
Закодированная дата выпуска, расшифровка тут: http://files.hddguru.com/download/Datas ... alculator/

Ссылки
Справочник по HDD. Seagate`2003

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 11.05.2017,22:14


i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Сообщение i8088 » 12.05.2017,15:58

KALDYH, вопрос про последние PATA диски.
Правильно ли я понимаю, что PATA диски, которые по сути SATA с мостом в PATA - это из серии WD Blue? И есть ли такое в других сериях, или от других производителей?

Захотелось найти такой, чтобы знать, на какие диски обращать внимание. WD blue PATA я видел года 2 назад, но тогда не взял.

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 12.05.2017,19:20

i8088, ничего про них сказать не могу, так как сам такой видел лишь единожды и мельком. А смысл именно такой искать? У WD в те годы выпускались такой же емкости и с такими же характеристиками с нативным PATA, никаких преимуществ у использования моста нету.

i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Сообщение i8088 » 12.05.2017,21:08

Да, конечно, применение моста не дает никаких преимуществ, только потери. Но мне
интересно посмотреть, насколько он будет отличаться от native ATA, в частности будет ли
работать WDMAx mode. Я вообще немного больной на WD, периодически покупаю (в
основной масе 40-80GB). Самый крутой PATA на данный момент у меня WD800BB-56JKC0
2007 года выпуска, буфер 2MB (с 8MB пока не попадались), скорость в начале диска
порядка 70MB/s. Еще интересный SATA диск WD3000JD с PATA электроникой и мостом,
буфер 8MB (как раз пишу с него).

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 12.05.2017,21:15

Все остальные винчестеры Seagate, кроме перечисленных выше, диагностируются и ремонтируются через последовательный терминал. О подключении терминала - см. выше или тут:
http://www.stankorb.com/articles.php?article_id=5
https://people.overclockers.ru/showman/ ... e_Muhi_CC/
Технологические команды ATA у них тоже есть, но их возможности весьма скудны (в основном это штатное обновление прошивки, и у старых моделей - дублирование последовательного терминала), и ими практически никто не пользуется. А для работы по терминальному соединению в диске есть целая интерактивная командная оболочка, называемая TMOS (тест-мониторная операционная система).

Примечание: используемый набор управляющих последовательностей соответствует терминалам Wyse либо ADM. Рекомендуемая программа-эмулятор для Windows - ZOC (внимание, программа коммерческая!). Рекомендуется она также потому, что поддерживает REXX скрипты.

Итак, подключаем наш выбранный винчестер, например Barracuda 7200.7, к последовательному порту, открываем терминал, подаём питание на диск и видим, как на экране постепенно появляются стартовые сообщения:

Код: Выделить всё

1024k x 16 buffer detected
ALPINE - 1_Disk    M-21  11-25-03 18:53
Head Mask FFFF - Switch to full int.
              Spin Ready
8.01  09-28-04 15:05
(P)PATA Reset
Master 
Расшифровка:
  • 1024k x 16 buffer detected - определение размера ОЗУ на плате
  • ALPINE - имя семейства (имена семейств и рассказ об их особенностях для всех Barracuda будут ниже)
  • 1_Disk - кол-во дисков, для которого предназначена эта версия ПЗУ (может не совпадать с фактическим)
  • M-21 11-25-03 18:53 - версия ПЗУ и дата его компиляции. M - масочное, S - последовательное. Масочная версия ПЗУ может быть прошита и в последовательную флешку.
  • Head Mask FFFF - обнаружение коммутатора-предусилителя головок и карты подключенных голов
  • Switch to full int. - раскрутка диска
  • Spin Ready - раскрутка завершена
  • 8.01 09-28-04 15:05 - версия прошивки и дата ее компиляции
    (P)PATA Reset - получена команда сброса с ATA интерфейса (если винт был к нему подключен)
  • Master - диск определил, что перемычка стоит как Master.
Кроме этого, винт в процессе работы будет выдавать туда различные диагностические сообщения. Пример (не помню для какой модели):

Код: Выделить всё

CE Log ErrCode=43  LBA=7db69ea  Type=5  Add To Pending 7db69ea
AT Er 00 Nwt Er 43 RdWr 0b9cd.01.0007
ATA St 80 Er 01 Op 00 0,0000/0/00,00 01 00
Niwot:  9ff79ff7  b6  9ff79ff7.1.6b4 0000  005f 0000 0002
DiskAccess ReadSector EC=43 at 00b9cd.01.0007
- в ходе оффлайн-самотестирования обнаружен дефектный сектор и занесён в кандидаты на ремап.

Попробуем набрать что-нибудь в терминале. Ничего не происходит. Почему? Дело в том, что винчестеры Seagate одновременно могут работать только в одном из режимов: либо интерактивная командная строка, либо работа по интерфейсу. Для перехода в режим командной строки нажмите Ctrl+Z или отправьте байт 0x1A (далее в тексте нажатия клавиш с Ctrl обозначаются значком крышечки, например ^Z). Винчестер перестанет отзываться на интерфейс, а в терминале появится приглашение: Команды имеют длину один байт (т.е. односимвольные). Команды чувствительны к регистру! Формат команды: один байт команды, за ней без пробела вводится один или несколько параметров, параметры между собой отделяются запятыми. То есть команда N, например, имеет вид Nxx,yy,zz. Команды, которые критичным образом меняют состояние накопителя, последним параметром имеют подтверждение - число 22 (появилось в серии Barracuda). Ввод команды подтверждается нажатием Enter. Есть возможность стереть забоем неправильные данные и ввести заново (т.е. управляющий символ 0x08 (Backspace) обрабатывается), стрелки для перемещения по тексту не работают. Так как 256 команд явно недостаточно, блоки команд разделены на диагностические уровни (levels). Для переключения между уровнями служит команда / (прямой слэш), после которой вводится номер уровня, например:

Код: Выделить всё

T>/1
1>
Текущий уровень отображается в приветствии командной строки. Для перехода на основной уровент T> введите команду / без параметров. Количество диагностических уровней у разных моделей различно, смотрите документацию или пробуйте методом перебора. Кроме цифровых, есть и буквенные: A, B, C... Многие команды для удобства дублируются на нескольких уровнях. Часть команд обрабатываются аппом (Application code) и работают всегда, часть - сертом (Certification code) и требуют его загрузки командой ^R, а без него выводят сообщение

Код: Выделить всё

Command Inactive - No VALID Cert Code Detected
Еще некоторые команды (например ^U) обрабатываются кодом ATA оверлея и они наоборот, при загруженном серте становятся неактивны.
Есть ещё уровень F> - это уровень, обслуживаемый флеш-ПЗУ, у старых винчестеров его не было (вместо него был урезанный T>). На нём действуют очень немногие команды, зато загрузка Application Code и чтение-запись флеш-ПЗУ доступны только с него. Перейти на него с уровня T> нельзя, винт сам выходит на него при невозможности считать App. Чтобы попасть на него при исправном винчестере, необходимо быстро-быстро нажать ^Z сразу после подачи питания на винт, пока он ещё не успел раскрутиться и ничего считать.

Кроме вводимых команд есть ещё и онлайн-команды. Они:
1) действуют на любом уровне
2) состоят из одного байта и не имеют параметров
3) не требуют подтверждения нажатием Enter и исполняются немедленно. Собственно, коды Enter, Backspace, ^Z и т.п. сами к ним относятся.
4) работают в любом режиме работы накопителя: как при работе по интерфейсу, так и в командном режиме и при выполнении тестов. Если винчестер на них не отзывается, значит он ОЧЕНЬ занят или попросту завис.

Информацию о командах терминала и работе с ним можно взять тут:
PCSEAGATE.pdf - руководство по ремонту старых семейств Seagate (Lapaz, Belize, Maui2r, Bali) для PC3000 DOS
PCSeagBara.pdf - инструкция по ремонту от PC-3000 for Windows, для накопителей от Barracuda 1 (Durango) до Barracuda 7200.9 (Tonka2)
Seagate_part1.pdf - руководство от PC-3000 UDMA, включает в себя информацию по всем "классическим" Barracuda и Momentus вплоть до самых последних.
yaxsi_rus-ing_seag_bar.pdf - дока от HDD Repair Tool по ремонту накопителей от Barracuda 2 (Vali) до 7200.7 (APLUS)
Seagate-Diagnostic-Command.pdf - полный справочник по командам, по косвенным свидетельствам (вкрапления русского текста) - утечка от bvg-group. Довольно старый, по моим наблюдениям подходит скорее к U-образным накопителям вроде U6.
Seagate_Diagnostic_Commands.pdf - еще один полный справочник по командам от китайской группы pc3khrt.com
ST Factory Command Function.pdf - DIAGNOSTIC COMMANDS Compatible with Drives with >64k Cylinders, January 13, 2003, Seagate company confidential, for inernal use only - полный справочник по командам самой последней версии, утечка из самой Seagate. Сама пдф-ка из интернета, по-видимому, удалена, есть онлайн-версия на Scribd. По поколениям соответствует Avalanche/Alpine, у более старых и более новых есть отличия.

Все эти документы являются не вполне полными. Исчерпывающий список можно получить, самостоятельно проанализировав микропрограмму винта. Вот пример: http://nazyura.hardw.net/Part02.htm

Далее будет русскоязычное описание наиболее общеупортебительных команд с примерами.

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

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

Сообщение KALDYH » 12.05.2017,23:31

Начнём с онлайн-команд. Большинство из них - это диагностические или информационные команды, поэтому полезны в первую очередь. Большинство из них безопасны, поэтому знакомство с терминалом можно начать с них.
Все примеры приведены для семейства NIGHHAWKPLUS (7200.10 "тонкий").

^H - забой символа. Так в настройках терминала и укажите.

. (точка) - статус активности. Одна из наиболее употребляемых команд.

Код: Выделить всё

Pgm=00 Trk=16BF2(14FE0:17[164D3]).0(0).000(000) Zn=8 Err=00 ErCt=0000 Hlth=0018 CHlth=0000 Ready LBA=13C5C5DF
  • Pgm - выполняемая программа (00 - диагностический монитор, 50 - работа по интерфейсу, остальные - уровни самотестирования)
  • Trk - цилиндр логический(физический).головка лог(физ).сектор (физ). Где-то там ещё номер цилиндра в коде Грея прописан. Обычно там адрес следующего сектора за последним считанным/записанным. Информация полезна для ручного позиционирования.
  • Zn - номер текущей зоны
  • Err - код ошибки текущей операции
  • ErCt - счётчик ошибок с последнего сброса
  • Hlth - битовая карта накопленного здоровья (cumulative health) накопителя. Расшифровка битов будет ниже.
  • CHlth - Current Health - текущее здоровье (то бишь на данном уровне тестирования)
  • Ready - статус готовности. Может быть Ntrdy
  • LBA - адрес текущего LBA. Обычно там адрес следующего сектора за последним считанным/записанным.
; (точка с запятой) - вторая наиболее употребительная команда. Статус накопителя.

Код: Выделить всё

Age=50 Type=03 MxCyl=25BC9 MxHd=1 MxSct=7E8 BSz=008M TCode=0201FFFE ThermFlts=0000
  • Age - этап тестирования (номер теста селфскана/Certification) накопителя. 50 - тестирование завершено, запускается нормальная работа по интерфейсу. 4F - тестирование провалено, автоматический выход в TMOS. Меняется по мере прохождения тестов иил принудительно устанавливается командой T>N. По команде ^T номер программы (Pgm) устанавливается в это число. Примечание: в селфскане тесты идут не по порядку номеров.
  • Type - тип накопителя (модель винчестера в семействе, от самой младшей до самой старшей); определяет число головок. Соответствие байта модели смотреть по справочным таблицам.
  • MxCyl - максимальный доступный (вводимый в команды) цилиндр.
  • MxHd - максимальная головка
  • MxSct - максимальный сектор (для первой зоны, остальные - меньше)
    Эти три параметра - физические.
  • BSz - объём ОЗУ в кб/Мб (шестнадцатеричный)
^T - запуск теста (Pgm) с уровня Age. В обычном состоянии винчестера (Age 50) это будет выход из диагностического монитора с перезапуском микрокода. Именно подачей этой команды запускается и перезапускается селфскан.

^Z - прерываение текущего теста и выход в диагностический монитор, про это я уже рассказал.

^U - печать в виде шестнадцатеричного дампа AT Stuff (паспорта диска). Работает только при незагруженном Cert code.

^L - версия микропрограммы, дата/время сборки и функционал накопителя (У коннергейтов - только технологическое имя и версия микропрограммы, то же, что и при при старте).

Код: Выделить всё

NHPLUS2HD - 1_Disk    3.AAC  08-09-07 11:00 AAA,NP_1D_2H_S,14 
Built for NHPLUS2HD,PITKIN,COPPERHEAD,TI1843 PreAmp,Agere7539 PreAmp,McKinleyDT,1Disk,220 Servos,7200RPM,8Pole,133MHz,RwFeat=0002,VBAR
Расшифровка некоторых пунктов:
  • NHPLUS2HD - имя семейства. Может отличаться от того, что в ПЗУ - так, у NIGHTHAWKPLUS в нём зашифровано, одноголовая или двухголовая (2HD) это версия прошивки.
  • 1_Disk - число дисков, поддерживаемое фирмварью. Фактическое может быть меньше.
  • Built for - кодовые имена основных компонентов, характеристик железа и опций.
    PITKIN - тип интерфейсного контроллера (данный применяется с PUMA по NHAWK PATA; у ALPINE/APLUS - GRAND2, у AVALANCHE - GRANDB, U5/Aspen/Snowmass - Saratogall и т.д.). От производителя чипсета (ST/Agere) не зависит.
    COPPERHEAD - канал чтения-записи (дискретный или встроенный в чипсет, например COPPERHEAD - встроенный в чипсет Agere)
    TI1843 PreAmp,Agere7539 PreAmp - поддерживаемые преампы (те, что в гермоблоке)
    McKinleyDT - тип крутилки (например у TONKA2: MCKINLEY_DT_ST - крутилка SMOOTH, MCKINLEY_DT_TI - SH6960)
    1Disk - число поддерживаемых дисков
    220 Servos - число сервометок (wedges)
    8Pole - число полюсов у ротора шпиндельного двигателя?
    133MHz - скорее всего тактовая частота процессора
    VBAR - адаптивное форматирование, индивидуальное для каждой головки (VBPI - общее для всех головок)
  • 3.AAC 08-09-07 11:00 - версия фирмвари (та, что на этикетке написана) и дата билда.
ПЗУ поддерживает несколько конфигураций железа сразу и таким образом к типу платы не привязано. В прошивке содержатся текстовые строки сразу для нескольких конфигураций, при работе выводится та, которая соответствует железу. Апп содержит свой текст сообщения, который несколько отличается от того, что выводит ПЗУ.

^A - выдать ревизию Cert (оверлейного кода селфскана), а начиная с Avalanche - и прочего подгружаемого кода:

Код: Выделить всё

Eng Rev = .05B
Compat/Hardware = .0Q9
NHPLUS2HD - 1_Disk    3.AAC  08-09-07 11:00 AAA,NP_1D_2H_S,14 
CERT Rev = .03G
NONE
Mask Rom Rev = S-1A  
Orig Code = AAZ140 NHAWK_NP_140.05B.03G
Eng Rev - ревизия App Code
Compat/Hardware - версия платы, для которой написана эта микропрограмма. Внимание! Прошивка для более новых ревизий железа может не работать на старых, причём ошибки и сбои могут быть самыми разнообразными и непредсказуемыми! Имейте это в виду при подборе комплекта поновее для селфскана.
CERT Rev - собственно, ревизия Cert Code
Mask Rom Rev - требуемая для комплекта версия прошивки ПЗУ. Возможна и более тонкая требовательность, вплоть до даты билда.
Orig Code - версия ATA Overlay
Естественно, всё это чем новее, тем лучше.

У коннергейтов - переключатель Display Servo / No Display Servo

^R - загрузить Cert overlay в память с диска. Без него некоторые команды не работают, выводя сообщение об ошибке:

Код: Выделить всё

Command Inactive - No VALID Cert Code Detected
Успешная загрузка в подтверждение выводит его версию:

Код: Выделить всё

Disk Code Revision # .08F CRC ==> D844
Если 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
У старых винтов - перезагрузка диагностического монитора

^C - сброс микропрограммы (перезапускает работу по интерфейсу, не полный сброс винта)

' (апостроф) - статус трансфера с блинов

Код: Выделить всё

Cmd    Cyl   Hd Sct  Cnt  Stbuf Segl Csct Cbuf Actv ErCd RWOp Rd Wr RWOp1 Flags
18  0E600312 00 0000 7FFF 1846  01FF 0000 3462   Y   00  00F7.28.40.0004  800
  • Cmd - код последней выполненной команды
  • Cyl - номер цилиндра
  • Hd - головка
  • Sct - сектор
  • Cnt - кол-во блоков
  • Stbuf - начальный буфер (подробнее о буферах ниже в разборе команды "вопрос")
  • Segl - количество буферов
  • Csct - текущий сектор
  • Activ - выполняется ли команда в данный момент
  • ErCd - код ошибки
^D или ^N - переключение отображения активности

Код: Выделить всё

e c r = 0 0 1
e c r = 0 1 0
и т.д. по кругу. По умолчанию - 0 0 0. Если отображение включено, выполнение винчестером внутренних команд сопровождается сообщениями вида:

Код: Выделить всё

 cmd  2A,  params  0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 
Назначение параметров то же, что и у вывода команды "апостроф" (статус трансфера)

? (знак вопроса) - показать карту буферов. Все операции чтения, записи и прочая производятся через буферы. Величины указана в секторах, чтобы узнать длину буфера, вычитаем его адрес из адреса следующего буфера (7200.10 пишет длину через двоеточие).

Код: Выделить всё

BT:0000
PC:0055
AP:0060
RL:0298
AL:029B
SL:02B3
MW:059C
AT:0646
TB:0D00:0020
SO:0D20:0038
FS:0D59:0070
RD:0480:0010
WR:0490:0010
FM:0666:0018
AD:0666:001C
BA:067E:0003
ST:0681:0001
AS:0682:007F
DP:0701:02A6
AC:0701:02A6
SC:09A7:02A7
IO:0C80:0080
CT:3B60
uP:3FC0
MZ:3FE0

logbps :0200
codebps:0200
Буферы:
  • RD - буфер чтения
  • WR - буфер записи
остальные нас мало интересуют. logbps и codebps - длина одного буфера (логов и данных сответственно) в байтах (0200 - 512 байт, один сектор, одинаково у всех семейств и моделей).

^ ("крышечка") - показать время, прошедшее со старта сертификационного теста или с последнего ^Z

Код: Выделить всё

Time = 00:11:10 Log Type = 00
` (гравис, обратный апостроф) - показать статистику чтения/записи

Код: Выделить всё

       Rbit  Hard  Firm  Soft   OTF   Raw  Rhdr    Wbit  Whrd  Wrty  Whdr
Limit  10.2  10.2   9.5   8.0   7.0   4.0   7.4     9.2   9.2   6.5   7.4  
Hd 0    0.0   0.0   0.0   0.0   0.0   0.0   0.0     0.0   0.0   0.0   0.0   
Hd 1    0.0   0.0   0.0   0.0   0.0   0.0   0.0     0.0   0.0   0.0   0.0   
У коннергейтов не было.

^W - вкл/выкл сбор статистики чтения/записи

Код: Выделить всё

Rd/Wr Stats On 

Rd/Wr Stats Off
У коннергейтов - прерывание программы (в последовательности ^Q ^W ^S):

Код: Выделить всё

BRK - Pc=171D A=05 B=B5 C=E0 X=0700 Y=09B0 Sp=07F6
^E - состояние интерфейса

Код: Выделить всё

CurrentCHS=ffff/10/3f  MltSiz=110  DMAMod=42
У коннергейтов не было

^F - Read Segment Record(S), выводит кучу малополезной инфы.

^G - очередь записи. У коннергейтов - то же, что и ~ (статус интерфейса).

^I - дамп регистров контроллера

^K - состояние чтения-записи Niwot

^P - (у коннергейтов) переключатель R/W Test Points Enabled/Disabled

^S - приостановить работу по интерфейсу и переключиться на диагностический монитор (Foreground Pause)

^Q - продолжить после ^S (Foreground resume)

^V - вкл/выкл эхо команд и отслеживания активности

Код: Выделить всё

EchoInterfaceCmds: On 
EchoInterfaceCmds: Off
^X - история команд Niwot и интерфейса

~ (тильда) - состояние команд интерфейса

Код: Выделить всё

ATA St 50 Er 00 Op 35 e,  06127f8,08 00 d8
Niwot:  00010000  a4  00010000.0.036 0000  10c9 0001 005c  ca9e1e
У коннергейтов не было

^Q - вкл/выкл показ отладки Cert (не работает на Age 50)

! (восклицательный знак) - показать текущие настройки канала чтения-записи (дамп регистров Read channel и Preamp)

% (знак процента) - показать статус Mux

Код: Выделить всё

:5000001803000001  AX`9RY2FMKH'  "000000000000"16BD3-16D14
SRAM Ovly = Diag
(в диагностическом мониторе)
Расшифровка, по порядку (описание пунктов см. выше):
  • 50 - Age
  • 00 - Pgm
  • 0018 - Health
  • 03 - Drive Type (модель накопителя)
  • 00 - байт флага ошибок, принимает несколько табличных значений
  • 00 - байт кода ошибок
  • 01 - максимальное число головок для этой модели
  • AX - тип интерфейса (AT с авто-трансляцией)
  • 9RY2FMKH - серйный номер винчестера (совпадает с тем, что на крышке). Второй и третий символы серийного номера определенным образом (смотреть по таблицам) соотносятся с типом.
  • 000000000000 - серийный номер платы
  • 16BD3-16D14 - адреса служебных цилиндров

Код: Выделить всё

:5000001803000001  AX`9RY2FMKH'  "000000000000"16BD3-16D14
SRAM Ovly = AT
(работа по интерфейсу)

Код: Выделить всё

:000000010000  AX'         '  "         "00016BD3-00016D14
(на уровне F)

< и > (знак больше и знак меньше) - уменьшить-увеличить положение синхроимпульса чтения-записи

Esc - прервать цикл, командный файл или скрипт SeaDex
Последний раз редактировалось KALDYH 21.08.2019,21:06, всего редактировалось 1 раз.

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 12.05.2017,23:35

Господа, вы уже можете доставать свои сигейты и начинать потихоньку экспериментировать - потому как писанины впереди будет ой как много... Я пока описываю безопасные для винта процедуры.

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 16.05.2017,22:05

После некоторого перерыва продолжу.
Вот основные команды, которые понадобятся при диагностике и ремонте Seagate:

Действуют на всех уровнях:
/x - сменить уровень на x
+x,y - считать байт из ОЗУ по адресу xxxxyyyy
=x,y,z - записать байт zz в ОЗУ по адресу xxxxyyyy
-x,y - считать слово из ОЗУ по адресу xxxxyyyy
остальные команды полезны только для скриптов (batch files).

Уровень T - самотестирование накопителя
A - разрешить/запретить приостановку вывода информации на экран при заполнения буфера терминала. По умолчанию приостанавливает.

a - переключает приостанов вывода при заполнении буфера сообщений / перезапись старого вывода в буфере новым.

Bx,y - установить битрейт x. Допустимые значения:
0 - значение по умолчанию (обычно 9600)
1 - вывести таблицу поддерживаемых значений
24, 48, 96... 921, 1228 - битрейты от 2400 до 1228000 бит/с. Разумеется, лучше использовать максимальное возможное.
y - задержка в миллисекундах. Если y введено, накопитель ждёт y миллисекунд прихода символа CR (0x13) в подтверждение того, что хост тоже переключил битрейт, и если подтверждение не поступило - устанавливает битрейт по умолчанию.

У коннергейтов - команда bx. Параметр - коэффициент, вводимый в рег. BAUD (0x2Bh) процессора, по умолчанию (для Maui2) - 0x24h, для Belize - 32
Структура регистра:
бит 7 6 5 4 3 2 1 0
TCLR 0 SCP1 SCP0 RCKB SCR2 SCR1 SCR0
SCR2..0 - делитель, от 1 до 128
SCP1..0 - предделитель:
00 - 1
01 - 3
10 - 4
11 - 13
Остальные биты оставлять равными нулю.
Таким образом, команды задания битрейтов для Belize:
b32 - 7200 (скорость по умолчанию)
b31 - 14400
b30 - 28800
Большие скорости задать не удалось, возможно, у применяемого микроконтроллера отличаются от стандартного коэффициенты предделителя.

C,,22 - сбросить селфскан. Сбрасывает здоровье (Health), выставляет возраст (Age) в 1.

Dx,y,z - печать логов селфскана начиная с теста x. Если x не введено - то вывести только логи проваленных тестов.
y - если введено, печатать только логи с кодом ошибки y
z=40 - быстрый неформатированный вывод лога для автоматизированного учёта
Для начала рекомендую смотреть сводный лог (последний) под номером 4E.

Ex,y,z - печать/редактирование одного лога x.

J - то же, что и E, но ожидает нажатия Enter после каждой строки (?)

F - ввод ключей паспорта (Stuff). Описание команды см. ниже, в руководстве по прохождению селфскана.
Внимание! Ни в коем случае не ошибитесь с регистром! Команда f (в нижнем регистре) затирает ПЗУ!

Gx - показ лога компонентов, страница x (может быть незаполнен)

Hx,,z - показать/сбросить биты Health.
x (введено произвольное значение) - текущие, (пустое) - аккумулированные.
z=22 - если введено, то сбросить биты.

I,y,22 - инициализация (калибровка, форматирование, поиск дефектов) системной области, подготавливает ее к записи служебки. Аналогично (вроде как) команде T2.
y - если введено, считать серийный номер

Nx,y,22 - установить возраст (Age) накопителя в x. Например, N2,,22 подготавливает к запуску селфскана с самого начала.
Внимание! Не запускайте селфскан, не изучив внимательно инструкцию по его прохождению - иначе, возможно, вам придётся ломать голову, где достать недостающие куски служебки!
Основные используемые значения:
0 - после рестарта всегда будет выходить в TMOS
2 - тест служебной и пользовательской областей, полный селфскан
4 (начиная с 7200.8 - 10) - тест только пользовательской области, "облегчённый" селфскан
50 (у совсем старых семейств 40) - принудительный вывод на интерфейс, перевод в нормальный режим
Ввод номеров остальных тестов используется для принудительного "проталкивания" селфскана при большом количестве нефатальных ошибок.

R - считать системный сектор в системную область ОЗУ. Системный сектор содержит серийный номер, тип накопителя и адаптивы служебной зоны. Для возможности записи в служебную зону этот сектор должен быть в памяти, иначе ошибка Code - 33

W,,22 - записать системное ОЗУ в системный сектор.

S - проверить Slip list на заполненность и упорядоченность

Tx - запустить одиночный тест x.
Внимание! Команда не требует ввода ключа подтверждения и начинает выполняться сразу же, не дожидаясь ^T !

Vx,y - печать дефект-листов.
x - битовая карта выбора листов:
1 - slip-list (то же, что и p-list) пользовательской области
2 - slip-list резервных дорожек
4 - alt-list (то же, что и g-list), ремапы.
y - если введено, выводить только по голове y
Примеры:

Код: Выделить всё

T>V1
User Slip Defect List
Num Entries = 0670    Checksum = BD3B
Hd 0        Span 
00000.0.000 000
01211.0.470 006
01212.0.470 006
01213.0.470 006
01214.0.470 006
01215.0.470 006
   --- дальнейший вывод обрезан ---
T>V2
Reserved Slip Defect List
Num Entries = 0000    Checksum = 02FE
T>V4
Alt Defect List
Num Entries = 0000    Checksum = E373
"Битовая карта" означает, что складывая, ключи объединяются. Так, например, T>V7 соответственно выведет сразу все три списка.

Yx,y - установить тип накопителя "x".
y - если введено, не пытаться читать/писать на диск (операция только в ОЗУ).
У старых накопителей это был единственно возможный способ отключения головок.

b,,22 - инициализировать область оверлеев в служебной области (проще говоря, затереть их)

с - записать на диск предварительно загруженные в память оверлеи ATA. Используется только после прохождения теста 2. Если оверлеи загружены в память до теста 2, в конце теста они будут записаны автоматически (?).

dx,y,z - загрузить данные в буфер по протоколу SDLD (Seagate DownLoaD).
x - номер буфера
y - размер блока передачи (0 - 512, 1 - 1024, 2 - 2048, 3 - 4096). Размер блока выбирается исходя из того, что общее их число не должно превышать FFh.
z=1 - не раскручивать диск после завершения команды.
Этой же командой грузится в память Cert code, x при этом не указывается.

ex,y - загрузить ATA оверлеи (на жаргоне - просто "оверлеи") в память по протоколу SDLD
x - номер оверлея (подробнее об их количестве - в разборе семейств)
y - если указано, передать управление оверлею немедленно

K - загрузить (по SDLD) файл Congen

j - загрузить (по SDLD) скрипт SeaDex

h - загрузка таблиц Cert (на жаргоне - "таблички") по протоколу SDLD

f - записать предварительно загруженные данные в последовательное флеш-ПЗУ (у новых семейств). Данные грузятся в буфер 400h командой d.
У семейств с параллельным ПЗУ (старые Durango/Vali/Aspen/Snowmass и др.) данные для записи отправляются после посылки команды по SDLD (см. работу с предыдущими командами).
Для записи параллельного ПЗУ у коннергейтов служит другая команда.

gx,y,z - вызов программной функции из оверлея.
x - ID функции
y - 16k сегмент для параметров оверлейной функции
z - смещение в сегменте для параметров оверлейной функции

ix,y,22 - инициализация (очистка) дефект-листов).
x - см. команду V
y - если введено, записать на диск (иначе только в памяти)
Внимание! Не путать с командой I (заглавная)!

kx,y,z - отключение головок. Есть у накопителей, начиная с 7200.7 (прошивка с цифрой "5" в середине) и более старших (все прошивки). У более ранних возможно только отключение верхних головок выбором младшей модели семейства (см. команду Y). Использование команды будет далее.

lx - инициализация и запись в память зонных буферов. x - битовая карта:
01 - копировать дефолтный зонник из оверлея в память
02 - пересоздать PBA
04 - установить в памяти адаптивы по зонам
08 - запустить калибровку VCO
10 - сохранить всё это на диск

m,,22 - дефектоскопия служебной зоны (Внимание! Затирает служебку!)

o - (у коннергейтов) нет сведений

p - нет сведений

r - перезагружает Cert code (на жаргоне "серт") с диска и выводит его версию.

sx,,22 - сохранить дефект-листы из памяти на диск
x - битовая карта:
1 - трек-лист пользовательской зоны
2 - трек-лист служебной зоны
4 - ???
7 - всё вместе

t - (у коннергейтов) нет сведений

v - (у коннергейтов) нет сведений

wx,y - записать оверлеи на диск.
x - битовая карта выбора оверлеев:
1 - Cert code (серт)
2 - Cert tables (таблички)
4 - Application code (апп)
8 - SeaDex script (в любительском ремонте не используется)
Если не введено - записать всё.
y - номер буфера, в котором оверлеи хранятся
У старых без-оверлейных винтов эта команда не имела параметров и сохраняла единственный подгружаемый код - Cert

xll,ss,nn - чтение файла лога ll через последовательный порт (в двоичной форме, без форматирования).
ss - начальный буфер
nn - число буферов

y - вывод карты служебной зоны. Появился в накопителях начиная с APLUS. Разбор вывода команды см. ниже в описании структуры служебной информации Seagate.

#,,22 - ввести серийный номер накопителя HDA (8 символов, написан на этикетке) и номер packwriter'а (ни на что не влияет, можно просто нажать Enter на его запрос. Обычно вводят строку с этикетки после серийника). Вводится в диалоговом режиме. Пример:

Код: Выделить всё

T>#,,22
Enter Drive S/N  4JV0A0WK
Enter Packwriter S/N 9W2003-371
$ - ввести серийный номер платы PCBA. Хранится на треке vendor.

[x,y - управление ASCII логированием. Ключ x:
9 - писать до конца строки, пока не нажат Enter
A - разрешить ASCII логирование
B - запретить ASCII логирование
С - писать в лог номер y
D - отобразить ASCII лог
E - дописывать к логу
F,1 - разрешить логирование горячих клавиш
F - запретить логирование горячих клавиш

geg
Advanced Member
Сообщения: 12303
Зарегистрирован: 21.11.2010,12:04

Сообщение geg » 17.05.2017,10:04

Вангую, всё это в скором вермени появится на руборде в профильных темах =^_^=

И ещё, можно как нить публиковать текст без поддержки скриптов в сообщениях, а то здесь
^ ("крышечка") - показать время, прошедшее со старта сертификационного теста или с последнего ^Z
уже какая-то рожа с мафоном зажигает.

KALDYH
Advanced Member
Сообщения: 2594
Зарегистрирован: 05.06.2009,16:37
Откуда: Кемерово

Вклад в сообщество

Сообщение KALDYH » 17.05.2017,10:07

Уроверь 1 - команды работы с памятью. (у коннергейтов - с памятью интерфейса: управляющий и интерфейсный микроконтроллеры имеют разные адресные пространства)

Bx,y - отобразить содержимое буфера

C - (у коннергейтов) сравнивает адреса 0x1000h-0xFFFFh внешнего ОЗУ с адресами
0x1000h-0xFFFFh ПЗУ. При несоответствии выдаст надпись, с указанием адреса и
содержимого.

Dx,y,z - печать 256 байт ОЗУ с адреса xxxxyyyy. Если введено z - подсветить байты, совпадающие с z
У коннергейтов формат Dx,y - печать 256 байт ОЗУ с адреса xxxx, подсветить байты, совпадающие с yy. Если y не введено - подсвечивается 00.

F - форсирование записи. Разрешить на свой страх и риск запись при незагруженных адаптивах (когда выскакивает ошибка Code - 33)

H - AT FIFO TEST

M - информация о микросхеме Flash ROM. В поздних семействах изъята.

Nx,y,z - управление SMART.
x - субкоманда:
00 - вкл/выкл SMART
01,04 - инициализация (обнуление) SMART
02 - обновление атрибутов
03 - установить/сбросить биты, сигнализирующие о предотказе накопителя (y - номер атрибута, z - булевое значение)
05 - печать атрибутов SMART
06 - ...допустимых значений SMART
07 - ...G-List
08 - ...лога критических событий
09 - ...списка ожидающих переназначения секторов
0B - запуск короткого внутреннего теста SMART после следующего ^T или включения питания
0С - ...продолжительного теста SMART
10 - печать внутреннего двухчасового лога.

P - печать информации о плате (из ПЗУ) (? проверить, как связано с T>$). В поздних семействах изъято.
На коннергейтах - перепрограмирование Cert/ATIF и Resident Code во флеш-ПЗУ. Внимание! Выполнение этой команды убивает винт, если код не был предварительно загружен в память!

R - (у барракуд) Ram Test (WinC 0,1,2,3....)

(у коннергейтов) копирование ПЗУ в буфер. При этом фирмварь (содержимое ПЗУ с 0x800h по 0xFFFFh, до этого адреса ПЗУ содержит 0xFF) кладется, начиная с адреса 0x400h буфера. Всегда в младшие 64K - бит 0x446.2 (старший бит адреса внешнего ОЗУ) не учитывается! Предположительно из этого же буфера производится запись.
У совсем старых, типа Lapaz - копирует содержимое ПЗУ из адресов 0x1000h-0xFFFFh во внешнее ОЗУ по тем же адресам.

V у коннергейтов - чтение системных переменных с диска

Код: Выделить всё

Reading System Variables -  No Error

System Variables Read from Disk     
У поздних барракуд изъято.

Y - преобразовать номер цилиндра в соответствующий код Грея сервометки (см. 3>G)

y - то же самое наоборот

Sx,y,z - редактирование байта в памяти в диалоговом режиме

Ux,y,z - то же самое в буфере

mx,y,z - то же самое для слова в памяти

cx,y,z - сравнение буфера x с буфером y, z - число буферов.

dx - очистка (стирание) оверлея на диске. Значения битов x - те же самые, что у команды T>w

e - нет сведений. Подача без параметров вызывает рестарт накопителя.

p - аналогично T>W

s - отправка информации о накопителе (?)

r, t, u - загрузить с диска Cert code, Cert tables и SeaDex script соответственно (последний обычно пуст).

E, G, H, I, T, V, W, g, j, z - есть в обработчике коннергейтов, не документированы

Уровень 2 - чтение/запись по физике (по физическим координатам CHS, без трансляции, но с возможным обходом дефектов)

Bx,y - печать 512 байт буфера x, подсветить байты y

Cx,y,z - скопировать буфер x в буфер y, z - число буферов

Ex,y,z - дублирует команду T>E

Hx - выбор головки x. Может быть использован для тестирования и поиска головок: физически отсутствующая головка не выбирается, при выборе совершенно нечитающей головки винт теряет серву, что заметно на слух.

Ux,y - раскрутка остановленного шпинделя. x - можно ввести этап, на котором будет остановлена распарковка.

Z - останов шпинделя.

sx,y,z - позиционирование на физическую дорожку x, головку y. Выполнять перед командами чтения/записи.
Внимание: у 7200.7 параметр z - смещение позиционирования, у 7200.9 (скорее всего, ещё с APLUS или PUMA пошло) - ключ подтверждения 22. Учитывайте это при составлении своих скриптов!
Появилась у барракуд, у более ранних отсутствует. Вместо неё у них использовать:

Sx,y,z - позиционирование на дорожку x, головку y. Если старший бит y равен единице - адресайия по физическим цилиндрам, иначе - по логическим. Параметр z - смещение позиционирования (16 бит со знаком), по умолчанию можно не писать.

rx,y,z,a - длинное (вместе с байтами ECC) чтение, а также чтение системной зоны. Чтение производится в буфер чтения.
Формат для чтения служебной зоны:
x - номер первого сектора
y - число секторов
z, a не вводятся.
Команда 2>Rx,y,z,a (обычное чтение) со служебной зоной не работает.

wx,y,z,a - длинная (с байтами ECC) запись, а также запись в служебную область. Запись ведётся из буфера записи.
Формат для записи служебной зоны:
x - номер первого сектора
y - число секторов
z, a не вводятся.
Внимание! Необдуманная запись в служебную зону может привести накопитель в нерабочее состояние!
Команда 2>Wx,y,z,a (обычная запись) со служебной зоной не работает.

x - показать границы зон и адреса служебных цилиндров, число секторов в зоне, а также скорость чтения на них в Кбит/с и общее число доступных пользователю секторов на диске. Одна из наиболее необходимых информационных команд.
Пример (для диска с адаптивным зонным распределением):

Код: Выделить всё

Head 00
Zone 00:  0000A - 01BCF  1466 (05BA) 699.792
Zone 01:  01BD0 - 03006  1430 (0596) 681.818
Zone 02:  03007 - 041C7  1393 (0571) 664.399
Zone 03:  041C8 - 05388  1364 (0554) 654.377
Zone 04:  05389 - 07B15  1320 (0528) 626.261
Zone 05:  07B16 - 09816  1246 (04DE) 593.984
Zone 06:  09817 - 0A97D  1210 (04BA) 575.660
Zone 07:  0A97E - 0BA8A  1173 (0495) 560.090
Zone 08:  0BA8B - 0C9A8  1144 (0478) 549.922
Zone 09:  0C9A9 - 0EAB4  1100 (044C) 522.166
Zone 0A:  0EAB5 - 0FDDD  1045 (0415) 501.930
Zone 0B:  0FDDE - 118EF   990 (03DE) 476.190
Zone 0C:  118F0 - 132F3   935 (03A7) 451.246
Zone 0D:  132F4 - 14F40   880 (0370) 420.890
Zone 0E:  14F41 - 16188   825 (0339) 400.656
Zone 0F:  16189 - 17862   770 (0302) 373.433

Head 01
Zone 00:  0000A - 01959  1496 (05D8) 716.190
Zone 01:  0195A - 02B74  1466 (05BA) 700.280
Zone 02:  02B75 - 03DE9  1430 (0596) 681.818
Zone 03:  03DEA - 05577  1393 (0571) 666.666
Zone 04:  05578 - 0662A  1375 (055F) 656.314
Zone 05:  0662B - 08682  1320 (0528) 626.261
Zone 06:  08683 - 0A275  1246 (04DE) 593.984
Zone 07:  0A276 - 0B571  1210 (04BA) 576.074
Zone 08:  0B572 - 0D623  1155 (0483) 552.754
Zone 09:  0D624 - 0F513  1100 (044C) 522.166
Zone 0A:  0F514 - 107E2  1045 (0415) 501.930
Zone 0B:  107E3 - 122C7   990 (03DE) 476.190
Zone 0C:  122C8 - 13B90   935 (03A7) 451.428
Zone 0D:  13B91 - 156CF   880 (0370) 421.052
Zone 0E:  156D0 - 16863   825 (0339) 400.793
Zone 0F:  16864 - 17862   770 (0302) 373.433

Head 02
Zone 00:  0000A - 018E5  1540 (0604) 729.559
Zone 01:  018E6 - 02D63  1485 (05CD) 709.956
Zone 02:  02D64 - 04D4D  1430 (0596) 682.215
Zone 03:  04D4E - 06552  1393 (0571) 666.666
Zone 04:  06553 - 06F3B  1375 (055F) 658.891
Zone 05:  06F3C - 08A9C  1320 (0528) 626.261
Zone 06:  08A9D - 0A6D4  1246 (04DE) 593.984
Zone 07:  0A6D5 - 0BAFC  1210 (04BA) 576.074
Zone 08:  0BAFD - 0D78A  1155 (0483) 552.754
Zone 09:  0D78B - 0F23F  1100 (044C) 522.448
Zone 0A:  0F240 - 10590  1045 (0415) 502.333
Zone 0B:  10591 - 11EED   990 (03DE) 476.190
Zone 0C:  11EEE - 13519   935 (03A7) 451.428
Zone 0D:  1351A - 14E76   880 (0370) 421.052
Zone 0E:  14E77 - 15E96   825 (0339) 401.001
Zone 0F:  15E97 - 167A8   792 (0318) 387.030
Reserve:  0F45C - 0F589   823 (0337) 408.424
Total KBAs = 13CC1411
Reserve - это и есть служебная зона. Видно, что во-первых расположена она в середине диска (кстати, это частично решает проблему с адаптивами записи служебной зоны - в середине азимутальное отклонение головки минимально), и во-вторых, что у неё пониженная по сравнению с соседними плотность записи.
Total KBAs - общее число секторов в пользовательской зоне, включая резервные.

Полный список команд: K, M, N, O, Q, 7, 9, C, c, D, d, e, f, G, g, h, I, i, j, k, l, m, p, q, T, t, V, X, x, y, z, B, E, F, H, J, P, R, S, U, W, Y, Z, r, s, w, x

Ответить