Терминал Seagate: поболтаем? или Краткий экскурс в терминальные команды накопителей Seagate
Прислано Stan Korb Январь 28 2010 16:54:14
Накопители Seagate обладают развитой и разветвленной системой терминальных команд и ответов, диагностических и ремонтных. Ниже я постараюсь осветить некоторые вопросы ремонта и диагностики накопителей Seagate с помощью терминала. Для начала вам потребуется либо изготовить переходник «СОМ-порт ПК – технологический разъем НЖМД», либо купить его (например, переделав USB переходник для сотового телефона – схем для переделывания такого переходника в Интернете великое множество). Затем – обзавестись любой программой, которая может работать с СОМ-терминалом. После этого можно начинать.

СОМ-терминальные программы


Программы, работающие с СОМ-портом ПК, встречаются довольно часто – связано это прежде всего с необходимостью подавать команды и просматривать ответы от модемов, подключенных к СОМ-портам ПК. Однако модемные терминалы не слишком удобны для работы с НЖМД, поэтому выбор программы-терминала имеет очень важное значение

Бесспорно, наиболее удобными для работы с НЖМД являются специализированные программы – продукты ACE Laboratory, BVG Group, Salvation Data и т.п. Однако у всех их есть один недостаток – цена. Для большинства терминальных команд, не связанных с отправкой файлов в накопитель или с приемом их из HDD, специализированных программ не требуется. Действия же с файлами требуют специализированного ПО в силу того, что НЖМД Seagate осуществляют обмен с СОМ-портом ПК по собственному протоколу, не известному обычным терминальным программам.

1. Программа Multy-threaded TTY Sample


Распространяется компанией Microsoft вместе с исходными кодами, скачать можно отсюда http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp. Очень удобная и небольшая (35 килобайт) программа, работающая под управлением любой MS Windows начиная с версии Windows 95.

Программа очень легко настраиваема, все настройки программы вынесены на ее переднюю панель (рис. 1).



Рис. 1. Программа MTTTY, подключена на СОМ1




Рис. 2. Программа MTTTY запущена для двух портов (СОМ1 и СОМ3)


Еще одно положительное качество программы – возможность ее запуска для каждого из портов отдельно (всего программа поддерживает 4 порта, от 1 до 4). На рис. 2 показано, как функционирует программа на двух портах одновременно (подключены два накопителя Seagate Barracuda ATA IV).

2. Windows Hyper Terminal




Рис. 3. Windows Hyper Terminal, подключен накопитель Seagate Barracuda ATA IV


Довольно удобная программа для наблюдения за терминальными сообщениями и подачи терминальных команд. Может запускаться для каждого порта отдельно. Явное неудобство – невозможность производить переконфигурирование подключения на ходу. Одно из основных положительных качеств – доступность программы, т.к. она входит в стандартную поставку MS Windows.

3. Term95 от Telemax


Программа входит в комплект утилит Нортона (Norton Utilities), доступна и удобна, ориентирована на пользователей DOS, однако прекрасно функционирует и под управлением MS Windows (рис. 4). Конечно, программа не так удобна, как GUI-приложения, ее сильная сторона в другом – в возможности использования там, где нельзя установить MS Windows (например, слабый компьютер).



Рис. 4. Окно программы Term95


Организация терминала


Терминал НЖМД Seagate имеет строгую организацию. Команды терминала объединены в уровни по общности выполняемых функций. Определить количество уровней терминала очень просто – для переключения между уровнями служит команда

/x

где х – требуемый уровень. Например, для перехода на уровень 1 с уровня Т нужно набрать в терминале

T>/1 [Enter]

Если все введено правильно, то должно появиться приглашение первого уровня

1>

Стоит сразу оговориться – современные диски Seagate делаются двух, абсолютно различных, форматов – формата U и формата Barracuda. Различия этих форматов – прежде всего в организации служебной области. Системная область U-подобных накопителей (U4, U6, U8, U10, Ux, Barracuda 5400.1) организована по стандартной модульной схеме, модули можно как записать в накопитель, так и считать из него. Барракудоподобные накопители Seagate (Seagate Barracuda, Barracuda II, Barracuda III, Barracuda IV, Barracuda V, Barracuda 7200.7, Barracuda 7200.8, Barracuda 7200.9, Momentus, U5, U7, U9) не имеют стандартной модульной структуры в явно выраженном виде, элементы служебной информации не могут быть вычитаны из системной области прямыми командами.

Итак, немного поэкспериментировав с командой /x, легко узнать, что U-подобные накопители имеют 10 уровней, а барракудоподобные – 14. Различия прежде всего наблюдаются в том, что у барракудоподобных НЖМД имеются уровни, которые предназначены для отладки микропрограммы и восстановления накопителя при разрушенной системной информации (уровни Е и F).

Самый важный уровень любых Seagate – уровень Т (от английского слова Test) – так называемый тестовый, или диагностический, уровень. Как правило. На этом уровне можно записывать и считывать служебную информацию, производить процедуры тестирования HDD и т.п. Переход на уровень Т осуществляется командой

Ctrl + z [Формат записи команды – Ctrl + z означает, что клавиши Ctrl и z для выполнения команды должны быть нажаты одновременно]

Общие команды


Имеется определенное множество общих команд, на которые накопитель должен ответить, находясь на любом уровне, вне зависимости от выполняемых в текущий момент операций. Эти команды необходимы для мониторинга состояния HDD и для перевода его в специализированные режимы функционирования.

Описанная выше команда Ctrl + z переключает накопитель в режим диагностического монитора – режим, когда накопитель может принимать и отрабатывать команды того уровня, на котором находится.

Команда точка с запятой ( ; ). Эта команда покажет машинный статус накопителя. Ответ команды будет выглядеть примерно так:

Age=aa Type=bb MxCyl=cccc MxHd=d MxSct=eee Bsz=ffff TCode=gggg

где

Age – Текущая отрабатываемая накопителем программа
Type – Текущий тип накопителя (тип – это условное понятие корпорации Seagate, обозначающее количество физических головок, представленных в нем)
MxCyl – Максимальное количество цилиндров для этого типа (HEX)
MxHd – Максимальное количество головок для этого типа (НЕХ)
MxSct – Максимальный сектор для этого типа (НЕХ)
BSz – Размер буфера (НЕХ)
Tcode – Код текущего теста

Команда точка ( . ). Показать активный статус накопителя. Накопитель в ответ на подачу команды выдаст следующуб строку данных:

Pgm=aa Trk=bbbb(cccc).d.eee Zn=f Err=gg ErCt=hhhh Hlth=iiii Chlth=jjjj Ready

Pgm – Активный режим. 00 показывает, что включен диагностический монитор. 50 обозначает работу по интерфейсу. Остальные цифры – текущий тест программы самотестирования (селфскана).
Trk=bbbb(cccc).d.eee - Текущие (на которые спозиционировался накопитель во время подачи команды) трек, головка и сектор.
Zn – Зона, в которой находится головка накопителя, в момент подачи команды
Err – Код ошибки текущей операции
ErCt – Число ошибок со времени последней перезагрузки НЖМД или последней команды перезапуска журнала ошибок
Hlth – Накопленные байты здоровья винта – 4 символа
CHlth – Текущие байты здоровья винта – 4 символа
Ready Статус винта. Может быть Ready или Ntrdy (Готов или Не готов)

Наконец, еще одна важная общая команда Seagate - команда знак процента ( % ) – показать статический статус накопителя. Ответ будет примерно таким:

aabbccccddeeffgg AX'iiiiiiii ' “jjjjjjjjjjjj’

aa – Текущее состояние (age)
bb – Программа (уровень селфскана)
cccc – Суммарное состояние «здоровья» НЖМД (байты аккумулированного здоровья)
dd – Тип HDD
ee – Значение тестового регистра
ff – Байт кода ошибки
gg –Максимальное количество головок для этого типа HDD
iiiiiiii – Серийный номер НЖМД
jjjjjjjjjjjj – Серийный номер платы электроники

Обзор главных команд



Внимание! Использование указанных в этом разделе текущей статьи терминальных команд Вы осуществляете на свой страх и риск, неправильный ввод команд (изменение регистра, параметров и т.п.) может привести к выводу (часто – необратимому) накопителя из строя! Категорически не рекомендуется экспериментировать с не описанными здесь командами – скорее всего, они не перечислены тут потому, что имеют деструктивное для данных или даже НЖМД свойство.

Прежде всего, следует настроить скорость порта HDD для максимально комфортной работы – если требуется передать в накопитель или принять от него большие массивы данных, чем выше скорость, тем быстрее данные будут переданы и тем меньше риск того, что порт НЖМД «захлебнется» данными. Настройка скорости порта HDD производится командой Bxxx, в которой ххх – это требуемая скорость работы порта. Скорость порта кодируется так, как указано в таблице ниже.

Значения ххх команды Bxxx (работает на всех уровнях)

Значение ххх Скорость порта
1228 1,228,000
921 921,000
625 625,000
460 460,000
230 230,000
115 115,000
576 57,600
192 19,200
96 9,600
48 4,800
24 2,400

Накопители Seagate Barracuda, начиная с семейства Barracuda 7200.7, могут сами показывать поддерживаемые ими скорости порта – для этого достаточно подать команду В1. На эту команду накопитель ответит следующим образом:

T>B1
=1228
=0921
=0625
=0614
=0460
=0230
=0115
=0576
=0192
=0096
T>

Очень важная команда уровней Т и 2 – команда Е – показать логи сертификационных тестов. Просмотр этих логов может помочь найти тест селфскана, из-за которого он не прошел, или обнаружить необходимые настройки. После буквы Е необходимо ввести номер лога, который вы хотите просмотреть (например, я хочу просмотреть лог седьмого теста селфскана – нужно ввести команду Е07):

T>E07

;Log 07 - Health 0000 - Cert Rev = 3.10 - Rom Rev = 3.10 - Time = 00:00:01 Log Type = 01
HEAD 1x WEIGHTS 2x WEIGHTS
00 -004A 001F -0001 0000
01 -002A 0037 0024 0001
The AFC 1x sum of squares weight limit is HEX 00402EA6
The AFC 2x sum of squares weight limit is HEX 0006CB97

Temp Diode 6B8C
( 22 C )

Temp Diode 8C8C
T>

В некоторых случаях требуется сбросить байты здоровья к нулю. Для этого на уровне Т существует команда Н,,22.

Наиболее часто используемая команда уровня Т – это команда N. Эта команда устанавливает age накопителя в требуемый уровень. Если у вас U-подобный накопитель – после буквы N достаточно поставить номер требуемого уровня самотестирования, нажать <ввод>, и либо после перезапуска питания, либо после подачи команды Ctrl + t накопитель начнет проходить селфскан с указанного Вами теста. У барракудоподобных накопителей после команды N и выбранного уровня самотестирования необходимо ввести ключ 22 – только после этого текущий статус age будет изменен (например, для запуска селфскана на U-подобных накопителях требуется подать следующую последовательность команд:

Ctrl + z
T>N4
T>Ctrl + t

если же у Вас барракудоподобный накопитель, необходимо ввести команды так:

Ctrl + z
T>N2,,22
T>Ctrl + t

если команды введены правильно, накопитель начнет процедуру самотестирования.


Внимание! Запуск селфскана неизбежно приведет к разрушению пользовательских данных, часто – с первых секунд работы селфскана! Внимание! Запуск селфскана может привести к неработоспособности накопителя!

Альтернатива команде N – команда Т уровня Т. При этом команда Т не требует подтверждения запуска (ключ 22) на барракудоподобных Seagate – после ввода Тхх, где хх – номер теста, и нажатия <ввод>, накопитель немедленно приступит к выполнению выбранного теста.

Внимание! Запуск команды Т неизбежно приведет к разрушению пользовательских данных, часто – с первых секунд работы теста! Внимание! Запуск команды Т может привести к неработоспособности накопителя!

В некоторых случаях может потребоваться отключить верхнюю головку в пакете магнитных головок – как правило, из-за близости верхней крышки, верхняя головка пакета может выйти из строя. Отключение головок по очереди производится посредством команды Y, после которой необходимо указать новый тип накопителя. Текущий тип можно узнать по ответу на команду точка с запятой. Тип накопителя нужно ввести правильный – если Вы введете некорректный тип, накопитель может уйти в бесконечную перезагрузку, начать стучать ограничителем актуатора об упор позиционера, и т.п. самый правильный способ – просмотр типа накопителя у младшей модели. К примеру, мы имеем Seagate Barracuda IV емкостью 40 гигабайт. Ответ на команду точка с запятой:

Age=50 Type=A1 MxCyl=DC91 MxHd=0 MxSct=068 BSz=0800 TCode=0000

Для отключения верхней головки необходимо ввести тип от накопителя емкостью 20 гигабайт (тип А0):

Ctrl + z
T>YA0 [Enter]

T>

После ввода этой команды барракудоподобные накопители просто примут изменения и при следующей перезагрузке потребуют правки паспорта (выдадут диагностическое сообщение Stuff Was Unreadable). U-подобные накопители сначала выдадут измененную зонную таблицу для новой модели – закрепить изменения потребуется командой W (записать данные с системную область).

Внимание! Команда W деструктивна для данных! Внимание! Изменение типа накопителя приведет к немедленной потере данных пользователя!

Для U-подобных накопителей имеется возможность чтения и записи служебной информации прямыми командами на уровне Т. Для чтения модулей из служебной зоны служит команда

uxx

где хх – идентификатор модуля в служебной зоне. Если хх = 0, будет производиться чтение содержимого микросхемы ПЗУ. Для записи модулей в служебную зону U-подобных накопителей Seagate служит команда

dxx

где хх – идентификатор модуля для записи. Если требуется перепрограммировать микросхему ПЗУ, для U-подобных накопителей нужно ввести команду

f0000,eeee
Внимание! Команды записи служебной информации могут быть деструктивными для данных пользователя, либо могут привести к необратимой порче накопителя. Использование этих команд должно быть крайне осторожным.

Для работы со служебной зоной барракудоподобных накопителей требуется специализированное ПО и высокоскоростной терминальный адаптер. Запись служебной области производится из заранее считанных треков. Процедура считывания очень сложна, и состоит из цикла команд s (позиционирование на треке), R (считать сектор с текущего трека в буфер чтения) и B (показать буфер) на уровне 2. Команды s и R подаются с координатами в виде хххх,у,zzz, где хххх – трек, уу – головка, а zzz – сектор. Ручное чтение системного трека выглядело бы следующим образом:

Переключение накопителя в диагностический режим
Переход на уровень 2
Позиционирование на искомый трек
Чтение сектора командой R
Просмотр буфера, содержащего считанный сектор, и сохранение его из терминала в файл

Как видим, вручную это слишком сложно. К примеру, если даже представить, что действия оператора доведены до автоматизма, на сохранение одного сектора служебной зоны вручную потребуется 10 – 12 секунд; сохранение целого трека, например, для накопителя Seagate Barracuda IV (647 секторов), потребует приблизительно 2 часов времени – это если учесть, что оператор за все время выполнения операции не допустил ни одной ошибки.

Запись системных треков – процесс еще более трудоемкий, так как запись производится в накопитель по одному байту – методом изменения буфера записи с последующей записью его в необходимый сектор. При этом используется команда U, после заполнения буфера – команды s и W с описанными выше координатами. Если даже действия оператора полностью автоматизированы, для занесения в один сектор необходимых данных (512 байт) по одному байту (1 байт вручную заносится примерно 6 секунд) потребуется около 50 минут; для записи одного трека таким образом потребуется примерно 22 дня!!!

Еще одна команда уровня Т – команда хаш ( # ) – изменения серийного номера накопителя.

Просмотреть буфера накопителя можно посредством команды B уровня 1. К примеру, для просмотра буфера 1 НЖМД следует подать команды

Ctrl + z
T>/1
1>B1

Если все выполнено успешно, вы получите в терминал дамп этого буфера:

/1
1>B1

buffer 0001 comparing to 0001 RD:0200:10:00 WR:0210:10:00
Addr 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 1 2 3 4 5 6 7 8 9 A B C D E F
000200 7AE60A00 ECF90A00 DEF90A00 77F20100 E6F2C201 D1104A88 67B9BE88 9AC9FE70
000220 7EC9F6F2 B42BF7F2 A02B9AC9 FE70F3F3 A02B4A67 889BDB00 9AC9FE70 DB00FB88
000240 E6F3D308 7931D110 4A8867B9 BE889AC9 FE707EC9 F6F3B42B F7F3A02B 9AC9FE70
000260 F3F4A12B F3F5A02B 4A67889B DB00E6F3 530867F3 FE00D110 4A8867B9 BE889AC9
000280 FE707EC9 F6F3B42B F7F3A22B F7F4A12B F7F5A02B 4A67889B DB00E6F3 D3087931
0002A0 D1104A88 67B9BE88 9AC9FE70 7EC9F6F3 B42BF7F3 A02B9AC9 FE70F3F4 A12BF3F5
0002C0 A02B4A67 889BDB00 F78EA2D1 F78EA3D1 E608B6F9 F60852F6 E6F30800 E6F25C5D
0002E0 E001E6F0 A68BF6F0 54F6E6F0 54F6E609 7CFAF20B 7AF6F20A 7CF6E608 00F6E688
000300 0068E6F0 A68DFA08 52424825 0800DAC0 3CBDFAC0 4EBDDAC0 3CBDFAC0 6ABDDAC0
000320 3CBDFAC0 86BDDAC0 3CBDFAC0 A6BD6EB7 E052DA08 78FCE092 DA0878FC E032E6F1
000340 0002F6F1 3E81E011 F6F14281 F68E4681 DA0878FC E062DA08 78FCDA08 86036FB7
000360 E0A2DA08 78FC218B E6FEFF00 60ECF01E 7C8CF02C F03D0126 0142C04C 5C8CC02D
000380 70CDF04C DB008890 88808870 8860E6F8 0002E009 E0060E60 9A6D06A0 E6FC0600
0003A0 DA08CE63 8A6DFEA0 6EB7E052 DA0878FC E042E6F1 0002F6F1 3E81E021 F6F14281
0003C0 F68E4681 DA0878FC E062DA08 78FCE6FC 0008F0D8 F0E9DA08 6407F1E8 F0C6C0ED
0003E0 DA086803 F0640881 1890F078 F0C926F7 FEFF38C0 8DECE6FC 0008E6FD FEFFE00E
000400 DA083607 F0C46FB7 40C6EA21 2004E6FC 872BE6FD 2100DA08 7A180F60 8A60FE00

1>

Если Вам нужно сравнить содержимое двух буферов, для этого нужно ввести команду В в виде Вх,у, где х – сравниваемый буфер, а у – буфер для сравнения.

Очень интересна команда F на уровнях Т и 1. На уровне Т команда F служит для правки паспорта накопителя. Seagate называет паспорт накопителя термином stuff (штучка), сам stuff состоит из ключей (keys). Паспорт содержит все необходимые для функционирования накопителя ключи в явном виде. Для правки ключей паспорта необходимо ввести на уровне Т команду F, накопитель выдаст приглашение:

T>F
Set Stuff>

Теперь можно править ключи. К примеру, для того, чтобы изменить имя модели накопителя, необходимо ввести в приглашении паспорта строку с именем модели. Все ключи вводятся в шестнадцатеричном виде. Пример: я хочу поменять название накопителя на This is myself hard drive. В строке приглашения правки паспорта вводим:

ASCI1B54686973206973206D7973656C6620686172642064726976650D0A 20202020202020202020202020

На уровне 1 U-подобных накопителей команда F возвращает данные об установленных перемычках (00 – slave, 01 – Master with ATA slave or single drive, 02 – Cable Select, 03 – Master with non-ATA slave), а у барракудоподобных это активация записи бита данных игнорируя адаптивы.

Команда N на уровне 1 производит операции со SMART накопителя. Наиболее востребована функция сброса SMART (создания нового сектора SMART) – это команда N1.

Тестирование головок (на предмет наличия/отсутствия, а также на предмет исправности) производитсяч на уровне 2, командой H. При подаче команды H с параметром, обозначающим головку, накопитель скажет, какая эта голова реально. Например, одноголовый накопитель будет отвечать так:

2>H1

Head 0
2>H2

Head 0
2>H3

Head 0
2>H4

Head 0
2>

Что однозначно указывает, что у него всего лишь 1 физическая голова, причем она реально – нулевая, то есть нижняя в пакете.

Команда L в формате Lxx,zz,yyyy – производит настройки выполнения повторов тестовых команд (например, команд O уровня 2 – тест позиционирования, Q уровня 2 – тест чтения/записи, и т.п.)

Bit 7 6 5 4 3 2 1 0
. . . . . . . +------ 1 = Продолжать при ошибке, 0 = Остановиться
. . . . . . +-------- 1 = Остановиться если ошибок нет
. . . . . +---------- 1 = Остановить шпиндель при ошибке, 0 = наоборот
. . . . +------------ 1 = Зарезервировано
. . . +-------------- 1 = Показать сообщение об ошибке при ошибке
. . +---------------- 1 = Остановиться при коде ошибки=yyyy, 0 = повтор
. +------------------ 1 = Начать заново все.
+-------------------- 1 = Начать с активной команды


Значение хх кодирует поведение петли (см. выше расшифровку), yyyy - кодирует код ошибки останова или повтора команды, а zz есть старший байт повторяемой команды. К примеру, если мы хотим, чтобы пущенная после команды L команда не останавливалась при ошибке, и команда отработалась 90h раз, команда L должна быть подана в следующем виде:

L1,90

На уровне 2 также отрабатываются команды управления шпиндельным двигателем, необходимые для процедур хот-свопа. Это команды Z (остановить шпиндельный двигатель) и u (запустить шпиндельный двигатель). Также с уровня 2 подается команда просмотра таблицы зон накопителя (команда х):

2>x

Zone 0: 0015 - 17AF 833 552.156
Zone 1: 17B0 - 2FE0 833 552.156
Zone 2: 2FE1 - 40F0 833 552.156
Zone 3: 40F1 - 5700 784 510.588
Zone 4: 5701 - 696B 784 510.588
Zone 5: 696C - 7D00 718 477.647
Zone 6: 7D01 - 8B8B 686 454.117
Zone 7: 8B8C - 9B24 653 435.294
Zone 8: 9B25 - A9D6 616 414.117
Zone 9: A9D7 - BA00 588 385.882
Zone A: BA01 - C4BA 548 371.092
Zone B: C4BB - D105 522 352.941
Zone C: D106 - DC91 490 330.756
Sys= 7000-7028 02B9 SPTK on sys trks
Total LBAs = 0263190A

2>

Уровни 3 и 4 содержат команды, мало пригодные для целей ремонта. Уровень 5 закрыт производителем. Очень интересен уровень 6 – это уровень работы с батч-файлами. Батч файл – это своеобразный скрипт, описывающий какую-то процедуру, которая должна производиться в автоматическом режиме, например, циклическая операция чтения – записи – позиционирования с целью разогрева НЖМД. Команда Вх уровня 6 запускает батч-файл с номером х. По команде Dx на уровне 6 можно посмотреть листинг батч-файла х, а команда Ех позволяет редактировать батч-файл х.

Уровень 7 предназначен для работы с адаптивами – любые команды на этом уровне, кроме общих, очень опасны! Запуск команд с этого уровня может привести к стуку накопителя, и даже к выходу из строя его электроники.

Уровень 8 предназначен для исполнения пакетных команд записи и многочисленных тестов сервосистемы и БМГ. К примеру, группа команд С, в зависимости от параметров, производит различные калибровки и подстройки сервосистемы (например, С08,х – произвести операцию случайного позиционирования по головке х; С0D,хххх,уууу – операция позиционирования от головки к головке, на одном и том же цилиндре, здесь хххх – первая головка, уууу – следующая головка, между которыми производится позиционирование).

U-подобные накопители имеют весьма полезный уровень 9 – уровень, предназначенный для работы с дефектами. Команды R и W запускают тесты чтения и записи соответственно – при этом подаются они в одинаковом формате:

Rxx,yy; Wxx,yy; Rxx,yy,1; Wxx,yy,1

Здесь – хх – это стартовый цилиндр, уу – количество секторов для тестирования (если этот параметр пропущен – работа идет со всем цилиндром), ключ 1 включает автореассигн найденных сбойных секторов.

Ключевая команда уровня 9 U-подобных накопителей – команда F, которая позволяет управлять дефектами:

Fxx,A - Вставить реассигн для сектора xx.
Fxx,B - Вставить сектор xx в P-List
F0,C - Удалить все реассигны.
Fxx,F - Удалить дефект на секторе xx.

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

Следующие уровни (А, В, С, D, E, F) – доступны только для барракудоподобных накопителей. Уровни с А по D мы пропустим, так как на них нет интересных с точки зрения ремонта команд.

На уровне Е сосредоточены команды для работы с форматом и зонной таблицей накопителя. Изменение зонной таблицы возможно с использованием команды а, ответ на которую будет выглядеть примерно так:

1. Zone: 0009 9
2. Start Cyl: 0000cc89 52361
3. End Cyl: 0000de3b 56891
4. NRZ Freq: 00069646 431686
5. Secs Per Trk: 02a4 676
6. Write Split Pos: 0230 560
7. Read Split Pos: 0216 534
8. Sec Freq: 086e 2158
9. Base Ctr: 0003 3
10. Read ID Pos: 0148 328
11. Write ID Pos: 0162 354
12. Wedge Sec Sze: 07fc 2044
13. Sec Info Tbl Add: b460 46176
14. Phase Off: 02 2
15. PLO Offset: 02 2
16. NReg: 0e 14
17. MReg: ab 171
18. DRReg: 61 97
19. PLO Len: 0a 10
18. DRReg: 61 97
19. PLO Len: 0a 10
20. Write Off Delay: 1d 29
21. Byte/SPHSConvNum: 3a 58

Параметры, перечисленные в этой таблице, можно редактировать в формате ах,у, где х – параметр, который мы желаем изменить, а у – новое его значение.

Наименее приятен для пользователя уровень F – это тот уровень, на который накопитель вываливается сам в случае фатальных разрушений рабочей системной области (аналог альтернативной системной области накопителей Maxtor). Если накопитель попал на этот уровень – как правило, требуется серьезное хирургическое (замена БМГ) или программное (перезапись микропрограммы НЖМД) вмешательство, однако кое-что можно все таки попытаться сделать.

Во-первых, на уровне F работают команды позиционирования (s) и чтения сектора (r), естественно, команда просмотра буфера (В) – также доступна. Используя связку из этих команд, можно оценить степень разрушения системной области или степень разрушения головок (читают они или нет информацию). Если системная область все-таки читается, можно попытаться загрузить недостающую ее часть в память НЖМД и попытаться перейти на уровень Т для выхода на интерфейс и считывания данных. Для этого служит команда R – считать системный сектор в ОЗУ накопителя. При этом если после R поставить индекс 1 – накопитель будет пытаться считать Reserve track defect list, если 2 – будут считываться адаптивы загрузки, а если 4 – будет производиться попытка считывания всей СА. Если использование команды R не дало результата – хирургия неминуема.

Можно попытаться остановить (Z) и раскрутить (U) шпиндельный двигатель с последующей попыткой чтения системной области. Теоретически это может способствовать кратковременной очистке головок от грязи и корректной инициализации накопителя. Однако в любом случае, даже если это и помогло – то все равно не надолго, и без оперативного вмешательства не обойтись.

Коды ошибок


Накопитель временами выдает весьма любопытные сообщения, содержащие коды ошибок, которые могут оказаться как нельзя кстати для локализации и последующего устранения неисправности. Например

AutoRd Err 47 at 00fe80.00.0000
AutoRd Err 43 at 00fe80.00.01ae

Видно, что это ошибки чтения, и указаны их координаты (00fe80.00.0000 – трек, головка, сектор), однако сама ошибка закодирована (47, 43 – это ошибки). Наиболее часто встречаются следующие коды ошибок:

03 – Рассчитанная контрольная сумма не соответствует полученному значению
14 – Ошибка записи
16 – Таумаут позиционирования
33 – Не загружены адаптивы
43 – Ошибка данных ЕСС-коррекции
47 – Бит синхронизации данных утерян
4В – Переполнение лога ошибок
65 – Ошибка сенсора удара (зафиксирован удар)
70 – Сертификационный оверлей на диске не валиден
А0 – Ошибка передачи сигнала в коммутатор-предусилитель
А6 – Прошивка несовместима
FB – Пропущен критический параметр