Терминал
Как и у классических Seagate, у F3 есть терминал. Скорость 38400, 8N1, распиновка аналогична. Пример лога старта Seagate 7200.11
Как видим, приветствие стало очень куцым. Попробуем понажимать точку, точку с запятой - ничего не происходит: большинство онлайн-команд в обычном режиме более недоступны.
Режимов терминала стало три:
- ESLIP Mode - обычный режим работы по интерфейсу, переход - ^T (ранее - запуск теста)
- ASCII Diag mode - диагностический терминал, интерфейс отключается. Переход - ^Z (как и ранее)
- ASCII Online mode - онлайн-отладка, винт остаётся на интерфейсе, но реагирует на онлайн-команды. Переход - ^R (ранее - перезагрузка микропрограммы)
Переключение уровней, смена битрейта - это всё как ранее.
Перезагрузка накопителя осуществляется командой ^C
Код: Выделить всё
Spinning Down
Spin Down Complete
Elapsed Time 3.687 secs
Delaying 5000 msec
Jumping to Power On Reset▒
Rst 0x08M
(P) SATA Reset
Уровней терминала стало гораздо больше, но команд на них теперь меньше. Кратко по уровням:
T - основной диагностический уровень
1 - команды работы с памятью и SMART
2 - работа с буферами, запись, чтение и позиционирование по CHS
3 - управление позиционером
4 - низкоуровневое управление сервосистемой
5 - управление памятью и таблицами сервосистемы
6 - работа с пакетными файлами
7 - настройки канала чтения-записи
8 - дополнительные команды сервосистемы
A - чтение-запись-позиционирование по LBA
C - информационный уровень
E - чтение-запись клинами, тест головок
F - (команды дублируются на других уровнях)
G - работа с буфером коррекции ошибок
H - (команды дублируются на других уровнях)
L - работа с логами
Список команд и краткий хелп по их параметрам теперь может выдать сам винчестер по команде
C>Q, запрос по конкретной команде
y уровня
x - C>Qx,y (для онлайн-команд уровень пишется как ^). Имейте в виду, что список отличается у разных семейств и версий прошивки, хелп может являться неполным, и файл справки редко обновляется.
Примеры:
Moose, fw SD1A
Pharaon, fw JC4B
Как видно, выводятся уровень TMOS, символ команды, её ревизия, расположение кода команды (Flash или Overlay), описание одной фразой и список параметров.
Различные документы со командами Seagate F3:
ftp://atxlab.ddns.net/ftp/hdd/sea/man/f ... ostics.pdf (
копия)
Начиная с Rosewood, терминал у Seagate F3
заблокирован. Разблокировать его научились только в 2017 году:
https://www.acelaboratory.com/news/news ... itemid=208 Разблокируется он правкой ПЗУ:
http://blog.acelab.ru/pc-3000-for-hdd-s ... ewood.html , как это сделать в любительских условиях - я не изучал.
Селфскан
Первый же вопрос, которым задаются начинающие копатели: а как делать на нём селфскан? Так вот, селфскана на F3
нет. Говорят, у китайцев продаются скановые комплекты на 11 серию, но в деле их никто не видел и за 12 лет в интернете они так и не всплыли.
Информационные команды
^L - информация об оборудовании и микропрограмме.
Пример вывода с Moose (ST3500320AS):
Пример с Pharaon (ST31000524AS)
^A - информация о микропрограме. Является частью выдачи ^L, поэтому примеры не привожу.
. (точка) - статус активности
Код: Выделить всё
Current R/W User LBA 00000000 LLL CHS 000000.0.0000 PLP CHS 000000.0.0000
R/W Status 1 R/W Error 00000080 Ready
Команды "точка с запятой" у F3 нету.
? - инфо о буферах
Код: Выделить всё
Blks 000E24-000E24 (000001), BufAddr 001C4800-001C49FF, DBA 061C4800, BytesPerBlk 200 Online Cmd SDBP DFB
Blks 000E25-000E25 (000001), BufAddr 001C4A00-001C4BFF, DBA 061C4A00, BytesPerBlk 200 Cmd Input Buf
Blks 000E26-000E26 (000001), BufAddr 001C4C00-001C4DFF, DBA 061C4C00, BytesPerBlk 200 Diag Batch File
Blks 000E27-000E27 (000001), BufAddr 001C4E00-001C4FFF, DBA 061C4E00, BytesPerBlk 200
Blks 000E28-000E28 (000001), BufAddr 001C5000-001C51FF, DBA 061C5000, BytesPerBlk 200
Blks 000E29-000E29 (000001), BufAddr 001C5200-001C53FF, DBA 061C5200, BytesPerBlk 200
Blks 000E2A-000E2A (000001), BufAddr 001C5400-001C55FF, DBA 061C5400, BytesPerBlk 200
Blks 000E2B-000E2B (000001), BufAddr 001C5600-001C57FF, DBA 061C5600, BytesPerBlk 200
Blks 000E2C-000E2F (000004), BufAddr 001C5800-001C5FFF, DBA 061C5800, BytesPerBlk 200
Blks 000E30-000E33 (000004), BufAddr 001C6000-001C67FF, DBA 061C6000, BytesPerBlk 200
Blks 000E34-000E37 (000004), BufAddr 001C6800-001C6FFF, DBA 061C6800, BytesPerBlk 200
Blks 000E38-000E3B (000004), BufAddr 001C7000-001C77FF, DBA 061C7000, BytesPerBlk 200
Blks 000E3C-000E5B (000020), BufAddr 001C7800-001CB7FF, DBA 061C7800, BytesPerBlk 200 Diag Mode Cmd SDBP DFB
Blks 000E5C-000E7B (000020), BufAddr 001CB800-001CF7FF, DBA 061CB800, BytesPerBlk 200 Ext Test Service SDBP DSB
Blks 000E7C-000E9B (000020), BufAddr 001CF800-001D37FF, DBA 061CF800, BytesPerBlk 200
Blks 000E9C-000EBB (000020), BufAddr 001D3800-001D77FF, DBA 061D3800, BytesPerBlk 200
Blks 000EBC-000F15 (00005A), BufAddr 001D7800-001E2BFF, DBA 061D7800, BytesPerBlk 200
Blks 000F16-000F6F (00005A), BufAddr 001E2C00-001EDFFF, DBA 061E2C00, BytesPerBlk 200
! - дамп регистров канала чтения-записи
^B - показания термодатчика
Код: Выделить всё
Ref voltage 0000 Thermistor voltage FFFFF500 Thermistor temp in degrees C 0023, 35d
^E - конфигурация интерфейса
^F - информация о работе кэширования чтения (длиннющий дамп)
^I - информация о регистрах контроллера (также в начале - значения перемычек):
Код: Выделить всё
TetonST Rev: 639D; CurSpd: 1.5Gb; SpdLimit: No; SSC: No; LED: No; StagSpinByp: Yes;
. . .
Выводятся дампы (напр. у Moose):
AT Registers
SATA Core Registers
SATA SSIP / Phy Registers
SATA Vis Mux Registers
SATA Test Mux Registers
VBM Cache Search Registers
Traverser Regs
Host Data Manager Regs Bank 0
Disc Data Manager Registers Bank 0
PBM Memory Controller Registers
Hardware Phy Event Counters
^K,
^Y - статус задания
Код: Выделить всё
Total process 100% complete
Current operation is NOT aborted.
Current status 0
^U - отобразить Congen - файл настроек накопителя
(изучение не завершено). Выводится сначала дамп, а ниже расшифровка отдельных байт:
Код: Выделить всё
DriveNativeInfo Mode Page
DriveNativeInfo Group
Byte:0186: PartNumber = 30 32 37 4A 4A 30 44 54 58
'027JJ0DTX'
Byte:018F: PartNumberWhitespacePad = 20 20 20 20 20 20 20 20
' '
Byte:0197: PartNumberPad = 00
Byte:0198: ProcessControlVersion = 00 00
Byte:019A: CongenConfigurationState = 01
Byte:019B: WrittenCount = 00
Byte:019C: InternalSeagateModelNumber =
53 54 33 35 30 30 33 32 30 41 53 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20
'ST3500320AS '
Byte:01C4: BuildFlags = 00 00
Byte:01C4: Bit:0, QNR_SUPPORTED = 0
Byte:01C6: RealTimeUpdatedFlags = 08 00
Byte:01C6: Bit:3, CONGEN_READ_FROM_MEDIA = 1
^X - история команд интерфейса и подсистемы чтения-записи
Такие команды, как `или $ выдают ошибку DiagError 00008000
2>x - показать зонное распределение.
Пример для Moose:
Код: Выделить всё
User Partition
LBAs 00000000 - 3A38602F
PBAs 00000000 - 3A52DE0B
HdSkew 0028, CylSkew 0028
ZonesPerHd 11
Head 0, PhyCyls 00000000 - 00025C46, LogCyls 00000000 - 00025A89
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00000000 07BC 0EDF 000F7F38 1293.750
01 00002FA8 0814 0F9E 00104850 1359.375
02 0000604A 07D6 0F27 000FCD98 1319.062
03 000093DA 0780 0E7C 000F1D40 1261.875
04 0000C47C 0749 0E13 000EB0F8 1226.250
05 0000E132 0703 0D82 000E1B70 1177.500
06 000106B2 0699 0CB7 000D4910 1109.062
07 00012A70 064A 0C18 000CA518 1055.625
08 00015248 060A 0B9D 000C2640 1014.375
09 0001705C 05CD 0B20 000BA450 972.187
0A 00018E3E 0591 0AAE 000B2EC0 933.750
0B 0001AAF4 0528 09C6 000A3D70 855.000
0C 0001CEE4 04E6 0960 0009D338 820.312
0D 0001E942 0491 08C0 00092F40 766.875
0E 0002097C 044C 083D 0008A828 722.812
0F 000227F4 0420 07C6 00082C68 682.500
10 00024414 03DE 075F 0007C230 647.812
Head 1, PhyCyls 00000000 - 00023804, LogCyls 00000000 - 00023662
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00000000 0858 1022 0010D070 1403.437
01 00002CCC 0825 0FC7 00107190 1372.500
02 00005A83 07FE 0F6F 001018E0 1343.437
03 00008AFB 07A1 0EB9 000F5C28 1282.500
04 0000B8B2 076C 0E53 000EF2F8 1247.812
05 0000D3AF 071D 0DC4 000E5F80 1200.000
06 0000F6EF 06E0 0D39 000DD028 1153.125
07 00011888 0688 0C91 000D22E8 1096.875
08 00013DFC 0648 0C14 000CA200 1054.687
09 00015A42 0604 0B8E 000C17D0 1009.687
0A 00017659 05C6 0B12 000B96E8 967.500
0B 00019156 053E 0A12 000A8DE0 881.250
0C 0001B31E 0507 09A3 000A1B68 843.750
0D 0001CBE7 04D8 094B 0009BFA0 813.750
0E 0001EA32 0491 08C2 00093258 767.812
0F 000206D6 0420 07C4 00082A58 681.562
10 00022146 03E5 0770 0007D2B0 653.437
Head 2, PhyCyls 00000000 - 00025030, LogCyls 00000000 - 00024E7C
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00000000 080B 0F85 00102C78 1350.000
01 00002EB4 0825 0FC7 00107190 1372.500
02 00005E5D 07FE 0F6F 001018E0 1343.437
03 000090E5 07A1 0EB9 000F5C28 1282.500
04 0000C08E 0738 0DC6 000E5F80 1200.000
05 0000DCB1 06E0 0D37 000DCD10 1152.187
06 00010171 06E0 0D39 000DD028 1153.125
07 00012478 0688 0C91 000D22E8 1096.875
08 00014B84 0630 0BC1 000C4B60 1026.562
09 000168FE 05CD 0B20 000BA450 972.187
0A 00018647 0591 0AAE 000B2EC0 933.750
0B 0001A26A 055C 0A49 000AC590 899.062
0C 0001C5A2 0528 09C3 000A3B60 854.062
0D 0001DF79 04D8 094B 0009BFA0 813.750
0E 0001FF0E 0491 08C2 00093258 767.812
0F 00021CEA 0438 081B 00088620 711.562
10 0002387A 0402 07A9 00080F88 673.125
Head 3, PhyCyls 00000000 - 00022BEE, LogCyls 00000000 - 00022A72
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00000000 080B 0F85 00102C78 1350.000
01 00002BD8 0825 0FC7 00107190 1372.500
02 00005896 07FE 0F6F 001018E0 1343.437
03 00008806 07A1 0EB9 000F5C28 1282.500
04 0000B4C4 076C 0E53 000EF2F8 1247.812
05 0000CF2E 071D 0DC4 000E5F80 1200.000
06 0000F1AE 06E0 0D39 000DD028 1153.125
07 00011290 0688 0C91 000D22E8 1096.875
08 00013738 0648 0C14 000CA200 1054.687
09 000152E4 0604 0B8E 000C17D0 1009.687
0A 00016E62 05C6 0B12 000B96E8 967.500
0B 000188CC 0573 0A79 000AF920 915.937
0C 0001A9DC 0528 09C3 000A3B60 854.062
0D 0001C21E 04D8 094B 0009BFA0 813.750
0E 0001DFC4 0491 08C2 00093258 767.812
0F 0001FBCC 0478 088C 0008FBB0 750.000
10 000215AC 043A 081F 00088B48 713.437
System Partition
LBAs 00000000 - 0010211F
PBAs 00000000 - 00103DFF
HdSkew 0028, CylSkew 0018
ZonesPerHd 02
Head 0, PhyCyls 00025C47 - 00025D72, LogCyls 00000000 - 0000012A
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00025C47 039C 06E6 00074148 605.625
01 00025CDD 039C 06E6 00074148 605.625
Head 1, PhyCyls 00023805 - 0002391E, LogCyls 00000000 - 00000118
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00023805 039C 06E6 00074148 605.625
01 00023892 039C 06E6 00074148 605.625
Head 2, PhyCyls 00025031 - 00025156, LogCyls 00000000 - 00000124
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00025031 039C 06E6 00074148 605.625
01 000250C4 039C 06E6 00074148 605.625
Head 3, PhyCyls 00022BEF - 00022D02, LogCyls 00000000 - 00000112
First Sec Sym Sym
Zn Cyl Track Wedge Track MHz
00 00022BEF 039C 06E6 00074148 605.625
01 00022C79 039C 06E6 00074148 605.625
2>I(параметры) - отобразить/редактировать адаптивные параметры (к ним относятся и серийные номера). Без параметров:
Код: Выделить всё
(P1=00) CAP:
Validation Key: FFFFFFFF
HDA Serial Number: 6QM0MVQT
PCBA Serial Number: 0000M921AX37
PCBA Part Number: Invalid
Head Count: 04
Node Name Validation Key: 01
Node Name: 50 00 C5 00 11 78 BC 8C
Product Family ID: 27
Product Family Member ID: 01
PCBA Build Code: Invalid
ASIC Info:
00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
01: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
02: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
03: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF
Firmware Key: FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Firmware Key Checksum: FFFF
Date of Manufacture: 11292008
Destroked Buf Size Index: FF
Final Mfg Op: Invalid
Final Mfg Erc: Undefined
System Area Prep State: FF
Checksum: FFFF
Разбор параметров не привожу.
2>Ex - показать лог x (у меня не работает, DiagError 00008000)
Работа со SMART:
1>N[SubCmd],[SubCmdParm0],[SubCmdParm1]
[SubCmd] – субкоманда, [SubCmdParm0], [SubCmdParm1] - параметры для неё (необязательны)
00: вкл/выкл SMART
01, 04: сброс SMART, если указан SubCmdParm0 - также инициализировать Fast Flush и Media Cache
02: обновить атрибуты
03: сбросить (Parm1=0) / установить(Parm1=1) бит предотказа у атрибута SubCmdParm0
05: дамп атрибутов SMART
06: дамп предельных значений SMART
07: дамп G-List (у меня на Moose не работает)
08: лог критических событий.
09: список пендингов (ожидающих релокейта) (у меня не работает)
0B: запуск короткого самотеста (со следующего перезапуска или Ctrl-T)
0C: запуск долгого самотеста.
10: двухчасовой лог (у меня на Moose не работает)
23: CLEAR_PERSISTENT_INFO - clears persistent information.
FF: NO_COMMAND
Также
7>D,x – отобразить температуру накопителя
Код: Выделить всё
Ref voltage 0000 Thermistor voltage FFFFF800 Thermistor temp in degrees C 0023, 35d
x - выбор устройства (2 - преамп... )
7>m - информация об оффлайн-сканировании
Код: Выделить всё
OughtToScanThreshold: 2000
NeedToScanThreshold: 4000
Writes since last save: 0
Ought to save threshold: 7D0
Need to save threshold: FA0
Подробнее см. документацию.
Работа с дефектами и дефект-листами
Структура дефект-листов была существенно расширена по сравнению со старой архитектурой. Изучим её на примере разбора следующей команды:
T>V[DefectListSelect],[Hd],[StartCyl],[NumCyls],[DisplaySummaryOpt] – отобразить дефект-листы
- [DefectListSelect] – битовый номер дефект-листа:
V1 | User-Slip table | По сути, это транслятор |
V2 | System-Slip table |
V4 | Reassigned sector table | список ремапов (Alt-list и пендинги), те, что в SMART видны |
V8 | servo-flaw list | список дефектных по серве треков |
V10 | P-LIST | сырые координаты дефектов в SFI |
V20 | Primary-servo flaw list |
V40 | NRG (NON-Resident G-LIST) | частенько пуст. |
V80 | Resident G-LIST |
V100 | Primary DST(drive self test) LIST | V10, переформатированный в виде PBA |
Можно объединять показ нескольких листов. 15 бит – сортировать не по CHS, а по порядку вхождения.
- [Hd] – номер головы
- [StartCyl] – первый элемент
- [NumCyls] – число элементов
- [DisplaySummaryOpt]=99 – отображать итого (для V4), например
Код: Выделить всё
F3 T>V4,,,,99
Total Alt Entries: 1
Total Alts of Alts: 0
Total Alts: 1
Total Pendings: 4
Total Entries: 5
Total Alt Removals: 0
Примеры вывода (с сокращениями) с одного и того же Moose, в SMART 1 дефект и 4 пендинга:
Код: Выделить всё
F3 T>V1
User Slip Defect List
log log log phys phys
LBA span cumm cyl hd sctr zn cyl sctr SFI PBA
0 0 0 0 0 0 0 0 0 3 0
610 1F 1F 0 0 610 0 0 62F C63D1 62F
1EDA1A2 6 25 FE5 0 1F7 0 FE5 1FD 8CBFB 1EDA1C7
366AAEF 5 2A 1A78 1 17C 0 1A78 181 8A283 366AB19
3966BD3 5 2F 1BFF 1 7E5 0 1BFF 7EA 2726 3966C02
. . .
38A2F580 1 4DB4 21214 3 308 F 21214 309 110B9 38A34334
397AE113 5 4DB9 24E18 0 1AA 10 24E18 1AF 7AAF4 397B2ECC
Head 0: entries 3F slips 29AD
Head 1: entries 8E slips 1A21
Head 2: entries 73 slips 9A
Head 3: entries 3E slips 951
Total Entries 17E Total Slips 4DB9
В в таблице помимо знакомых LBA и физической адресации цилиндр-головка-сектор встречаются непонятные PBA и логические цилиндр-головка-сектор. Что же это такое?
PBA - Physical Block Address - по сути то же, что и LBA адресация, но без учёта slip-ов (пропусков)
LCHS - физическая адресация с учётом пропусков. Не путать с CHS адресацией интерфейса!
По всему диску, во всех его областях, действует сквозная адресация, вернее даже четыре - по физическим координатам и LBA, как с пропусками, так и без. По сути, эта таблица и есть транслятор.
Ещё:
span - число пропущенных секторов
SFI - Symbols From Index - отсчёт, вероятнее всего, битов модуляции (точная величина "символа" мне неизвестна) от начала оборота диска.
Код: Выделить всё
T>V2
System Slip Defect List
log log log phys phys
LBA span cumm cyl hd sctr zn cyl sctr SFI
0 0 0 0 0 0 0 25C47 0 FFFFFFFF 0
219CC 39C 39C 0 1 0 1 23805 0 FFFFFFFF 21D68
4131C 39C 738 0 2 0 2 25031 0 FFFFFFFF 41A54
62214 39C AD4 0 3 0 3 22BEF 0 FFFFFFFF 62CE8
81090 39C E70 96 0 0 4 25CDD 0 FFFFFFFF 81F00
A2A5C 39C 120C 8D 1 0 5 23892 0 FFFFFFFF A3C68
C23AC 39C 15A8 93 2 0 6 250C4 0 FFFFFFFF C3954
E32A4 39C 1944 8A 3 0 7 22C79 0 FFFFFFFF E4BE8
Head 0: entries 2 slips 39C
Head 1: entries 2 slips 738
Head 2: entries 2 slips 738
Head 3: entries 2 slips 738
Total Entries 8 Total Slips 1944
Cистемные области выделяются в виде пропусков трансляции в обычных зонах, подобно пропускам при дефектах. Пропуски выделяются в адресации LCHS с нулевого сектора, 8 областей по 39C секторов, чередуясь по всем 4-м головкам в первых 8 зонах (см. пример
2>x выше).
Код: Выделить всё
F3 T>V4
Reassigned Sectors List
Original New log log log phy phy
LBA PBA cyl hd sctr zn cyl sctr SFI hours msec
20C248 3A38ADE9 ----- - ----- 10 22A72 267 D 303CA ALT
AA4BE3 AA4C02 552 1 67E 0 552 67E 5F30C E 80FDF BBM
AAA64F AAA66E 547 1 522 0 547 522 E6B66 E AB1EC BBM
AAF13B AAF15A 53E 1 4F6 0 53E 4F6 35F56 E D718C BBM
1D5BDEEC 1D5BF320 E7F2 3 33 5 E7F2 33 A339C E 15A801 BBM
Alt Pending Total Alted Total
Entries Entries Entries Alts Alts
Head 0 0
Head 1 3
Head 2 0
Head 3 1
Total 1 4 5 0 1
Total Alt Removals: 0
Checksum = 8289
Видны один ремап (ALT, alternated) и четыре пендинга (BBM, Bad Block Mark). Для пендингов адресу LBA ещё соответствует "старый" PBA, для ремапа уже указан новый из резерва. msec - по-видимому, время чтения. В конце приводится таблица статистики.
Код: Выделить всё
F3 T>V8
Servo Flaws List
log log phy
head cyl cyl wedge status
0 0 0 D1 primary + deallocd
1 D611 D611 E2 primary + deallocd
1 D612 D612 E2 primary + deallocd
1 D613 D613 E2 primary + deallocd
1 D614 D614 E2 primary + deallocd
. . .
1 D629 D629 E2 primary + deallocd
1 D62A D62A E2 primary + deallocd
Log head 0: entries 1
Log head 1: entries 1A
Log head 2: entries 0
Log head 3: entries 0
Total Entries 1B
Дефект-лист серворазметки, составляется на этапах тестов сервометок. Адресация в физических цилиндре, головке и т.н. клине (wedge) - отрезке дорожки, адресуемом одной сервометкой. При дефекте сервометки из работы исключается весь клин.
Код: Выделить всё
F3 T>V10
P List
log log phy length
head cyl cyl in symb SFI flags
0 0 0 801 C40D5 80 scr fill
0 FE5 FE5 801 8C20E 80 scr fill
1 1A78 1A78 801 898AF 80 scr fill
1 1BFF 1BFF 801 1E77 80 scr fill
0 1F42 1F42 8 B3DA1 80 scr fill
0 1F43 1F43 8 B3DA1 80 scr fill
. . .
3 2123B 2123B 4 10EE3 80 scr fill
3 2123C 2123C 4 10EE2 80 scr fill
0 238EC 238EC 801 4A4E 80 scr fill
0 24E18 24E18 801 7A243 80 scr fill
Head 0 Entries: 3E
Head 1 Entries: 7C
Head 2 Entries: 73
Head 3 Entries: 3D
Total Entries: 16A
Список дефектов, найденных на этапах до низкоуровневого форматирования и разбивки на сектора, поэтому адресация вдоль дорожки тут не в секторах, а в символах.
Код: Выделить всё
F3 T>V20
Primary Servo Flaws List
log log phy
head cyl cyl wedge
0 0 0 D1
0 1FC9F 1FC9F 108
0 1FCA0 1FCA0 108
0 1FCA1 1FCA1 108
0 1FCA2 1FCA2 108
0 1FCA3 1FCA3 108
. . .
3 21228 21228 108
3 21241 21241 108
Head 0 Entries: A
Head 1 Entries: 1D
Head 2 Entries: 0
Head 3 Entries: 2
Total Entries: 29
Чем он отличается от V8 - неясно.
Код: Выделить всё
F3 T>V40
Nonresident GList 0 entries returned
Total entries available: 0
PBA Len Flags Phy Cyl Hd PhySctr SFI
V40 - нерезидентный G-лист. Используется при пост процессах (проверке диска). Сразу влияет на транслятор без его пересчета.
(уточнить инфу) Практически всегда пуст.
Код: Выделить всё
F3 T>V80
Resident GList 1 entries returned
Total entries available: 1
PBA Len Flags Phy Cyl Hd PhySctr SFI
20C267 1 2 100 2 42C 591C6
Адрес, по которому находился уже скрытый бэд.
Код: Выделить всё
F3 T>V100
Primary DST List 64 entries returned
Total entries available: 17D
PBA Len Flags Phy Cyl Hd PhySctr SFI
610 1F 0 0 0 62F C63D1
1EDA1C1 6 0 FE5 0 21C 90A39
366AB14 5 0 1A78 1 1A6 8ED3C
3966BFD 5 0 1BFF 1 814 7BAF
3C46BDC 1 0 1F42 0 374 B9D4B
. . .
DST - Drive Self-Test. На одном из этапов селфскана дефекты из V10 получают адресацию в PBA и в таком виде хранятся в этой таблице.
Порядок тестов и обхода дефектов вырисовывается примерно такой (по аналогии с тестами Fujitsu), на каком этапе какая таблица строится, опираясь на предыдущие:
- тест сервометок > V20
- исключение дефектных клинов > V8
- тест поверхности > V10
- расчёт PBA трансляции > V100
- низкоуровневое форматирование > V1
|сдача в эксплуатацию|
- поиск дефектов в ходе самотестирования SMART > V4
- ремап дефектов > V80
Лист V2, похоже, является статическим для данного числа головок. Низкоуровневое форматирование системных областей, на которое он указывает, проводится отдельно примерно на том же этапе, что и для пользовательской зоны. Это объясняет, почему нам недоступен код селфскана на диске - микропрограмма записывается туда на слишком поздних этапах тестирования.
После низкоуровневого форматирования у Pharaon и позднее включаются этапы пост-тестирования, которые добавляют ещё дефекты в V1.
T>ix,y,22 – сброс дефект-листа
x=4 – User alt list (V4)
x=1 – User slip list (V1)
Сброс других дефект-листов крайне не рекомендуется!
y=0 – затереть в ОЗУ
y=1 – затереть в ОЗУ и записать на диск
y=2 – считать из диска в ОЗУ
Очистка листов действенна не всегда – винт может восстановить их из внутренних логов малоизученным путём.
2>F – редактирование дефект-листа V4
2>o – создать логический дефектный сектор по заданному LBA
A>P – перенести дефекты из alt-list в slip-list. Конкретно (по инфе с руборда) – из V80 в V10.