Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Hardware » Магнитные носители информации » Ремонт накопителей Seagate. Часть 8

Модерирует : Akam1, Dr_StandBy, vertex4

Akam1 (29-01-2017 17:40): http://forum.ru-board.com/topic.cgi?forum=84&topic=5249  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

E123



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Большей частью взято отсюда, спасибо SW2004 за ссылку:
http://www.hddoracle.com/viewtopic.php?f=59&t=1468
 
I. Лоадеры
 
В общем случае содержит набор оверлеев, каждый из которых предваряется заголовком. Заголовок, в свою очередь состоит из 3 частей.  
Последовательность оверлеев следующая:
1. оверлей 20D (если есть)- часть системного файла FC00E20D.rpm, либо оверлей 06 (если есть) - системный файл FC3xx19F.rpm
2. оверлей 04 - системный файл FC3xx103.rpm
3. оверлей 05 - системный файл FC3xx104.rpm
4. оверлей 01 - системный файл FC3xx101.rpm, он же модуль ~001Е.rpm
5. оверлей 00 - системный файл FC3xx100.rpm, он же модуль ~001D.rpm
Последовательность желательно соблюдать, хотя
четвертый можно менять с пятым, нулевой с первым (на фараонах - точно)
Пример лоадера для Pharaoh
 
Адреса          Размер          Описание
---------------------------------------------------------------------------------
00000 - 0003F   00040           заголовок - определяет размер лоадера
00040 - 001C0   00180           нули
001C0 - 001FF   00040           заголовок с сигнатурой "qx7"  - идентификаторы модуля, размер и т.д.
00200 - 301FF   30000           оверлей 04
 
30200 - 3023F   00040           заголовок - определяет размер (следующий модуль + заголовок)                                
30240 - 303BF   00180           нули                                                                
303C0 - 303FF   00040           заголовок с сигнатурой "qx7"  - идентификаторы модуля, размер и т.д.
30400 - 503FF   20000           оверлей 05                                                          
                                                                                     
50400 - 5043F   00040           заголовок - определяет размер (следующий модуль + заголовок)        
50440 - 505BF   00180           нули                                                                
505C0 - 505FF   00040           заголовок с сигнатурой "qx7"  - идентификаторы модуля, размер и т.д.
50600 - 605FF   10000           оверлей 01                                                          
 
60600 - 6063F   00040           заголовок - определяет размер (следующий модуль + заголовок)        
60640 - 607BF   00180           нули                                                                
607C0 - 607FF   00040           заголовок с сигнатурой "qx7"  - идентификаторы модуля, размер и т.д.
60800 - 707FF   10000           оверлей 00                                                          
 
Состав лоадеров для некторых семейств:
51 Anak                 04+05+01+00 = 460800
4F Bogart               20D(0x0C0028)+04+05+01+00 = 1247744
2D Brinks        04+05+01+00 = 460800
42 Desaru        06+04+05+01+00 = 526848
58 Grenada              20D(0x0E0028)+04+05+01+00 = 1378816
40 Hepburn        20D(0x090028)+04+05+01+00 = 1051136
3E Holiday        04+05+01+00 = 460800
54 JULIUS1        06+04+05+01+00 = 592384
72 Kahuna_5400        04+05+01+00 = 460800
5D Yarra1D              06+04+05+01+00 = 592384
75 Yarra_5400        20D(0x0C0028)+04+05+01+00 = 1247744
27 Moose        04+05+01+00 = 460800
63 Megalodon            20D(0x0E0028)+04+05+01+00 = 1378816  
65 MuskiePlus        20D(0x0A0028)+04+05+01+00 = 1116672
3F Pharaoh        04+05+01+00 = 460800
56 Sapta        06+04+05+01+00 = 592384
55 Sentosa        20D(0xOB9C28)+04+05+01+00 = 1222144
67 Tambora         04+05+01+00 = 460800
3C Wyatt        04+05+01+00 = 460800
 
II. Формат заголовков.
Первый заголовок 40h
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 
00000000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00
00000010  80 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000020  00 00 00 00 00 08 07 00 00 00 00 00 00 00 00 00
00000030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 72 F6
 
0x0E    0x07 - сигнатура заголовка
0x10    0x0180 размер следующего за 40h нулевого сегмента, нули нужны для выравнивания сегментов по длине кратной 512 байт
    в сегменте с оверлеем 20D, длина которого не кратна 512, размер этого сегмента 0x158.
0x24     размер файла LOD - 0x70800 - есть лоадеры общим размером больше этого числа, скорее всего всё что свыше - игнорируется
0x3E     16-bit little-endian checksum. Он рассчитывается таким образом,
    чтобы сумма всех слов в заголовке, в том числе контрольной суммы слова, является 0x0000.
 
Второй заголовок 40h
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 
000607C0  71 78 37 07 00 00 00 00 00 3F 00 01 00 00 4A 00  qx7
000607D0  00 00 01 00 0E 60 01 00 11 06 08 14 06 11 10 20
000607E0  00 00 00 00 40 00 01 00 00 00 00 00 00 00 00 00
000607F0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 8E 94
 
    Offset    Описание
    -------------------------------------------------------------------------------------
    00 - 03     0x07377871 - "qx7" сигнатура для оверлеев 00-06
        0x13030617 - сигнатура для основного оверлея (20D) и др.
    04 - 07   хз, 00 у оверлеев 00-06
    08        хз, 00 у оверлеев 00-06, 80 у 20D
    09        код семейства,скорее всего задает способ загрузки для оверлеев, для неоверлеев - нули
    0A        хз, 00
    0B        вариант загрузки
        00 20D
        01 оверлеи 00-06 с записью на блины
        02 оверлеи 00-06 только в память (на 20D не работает)
    0C - 0D   ID оверлея (0x0004, 0x0005, 0x0001, 0x0000) Overlay ID = 00,01,02, 2800 для 20D
    0E - 0F   тип данных (бутлоадер, оверлей и т.д.)
        004A у оверлеев 00-06
        0426 у оверлея 20D  
    14 - 17   хз, похоже на ID оборудования, собравшего лоадер
    18 - 1B   время компиляции в ascii-hex: hhmmMMDD
    1C - 1F   дата компиляции в ascii-hex: YYYYDDMM
        Время / дата компиляции для вышеуказанных модулей в примере 14:08 11 июня 2010 г.
    20 - 23   хз, 00
    24 - 27   размер секции (заголовок 40h + данные) в байтах
    28 - 3D   служебное текстовое поле для комментария
    3E - 3F   контрольная сумма, сумма всех слов в заголовке, включая эту КС, должна быть равна 0.
 
Обновлено 12.12.2016:
 
Консольный парсер для *.lod файлов (лоадеры, обновлялки):
 
sgf3_lod_parser
 
Разбирает, выводит инфу, проверяет КС.
Комментарии и пожелания приветствуются.
Моя особая благодарность тем, кто уже поделился и еще поделится интересными лоадерами.
 
Добавлено 20.01.2017:
 
Собрал GUI, как обещал. Увлекся, поэтому функционал получился чуть больше, чем у "консольки".
По той же причине пока не всё доделал. Подробности в ридми.
https://yadi.sk/d/ps0J3Kns3A3KY9
 

Всего записей: 1030 | Зарегистр. 18-03-2008 | Отправлено: 11:08 30-10-2016 | Исправлено: E123, 20:27 20-01-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Hardware » Магнитные носители информации » Ремонт накопителей Seagate. Часть 8
Akam1 (29-01-2017 17:40): http://forum.ru-board.com/topic.cgi?forum=84&topic=5249


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru