Методика восстановления BIOS на платах Intel при помощи программатора без необходимости склеивать BIOS целиком

...или сказЪ о том, как я скормил D845GVAD2 BIOS. Повествование в двух действиях.

Итак, исходная позиция. Есть Intel Desktop Board D845GVAD2 на i845 чипсете, BIOS серьезно поврежден. Требуется его прошить. Идея - прошить только бутблок, "собрать" который куда проще, чем весь образ BIOS. Остальное можно прошить с флоппика или CD/DVD. Идея не нова.

Действие первое, в котором надо записать в ЧИСТУЮ флэшку bootblock, по описанной ниже причине советую это действие не пропускать, даже если бутблок жив. Идем на Intel.com, находим страничку с bios-ами для этой платы. В моем случае это downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=6652&ProdId=898&la... .

Видим два файла:


English: LY84510A.86A.0043.P17.EB.EXE - Windows версия
English: LY84510A.86A.0043.P17.IB.exe - DOS версия

Нас интересует именно DOS версия. Скачиваем. Получаем файл LY84510A.86A.0043.P17.IB.exe . Это архив, распаковываем его. Внутри следующие файлы:

DESC.TXT
DISKIMG.EXE
LICENSE.TXT
P17-0043.ITK
README.TXT
RUN.BAT
SW.EXE

Нас интересуют два архива - SW.EXE и DISKIMG.EXE - собственно разобранный по файлам BIOS с прошивальщиком и образ голой загрузочной дискеты соответственно.

Распаковываем SW.EXE, получаем такие файлы:
AUTOEXEC.BAT
BEEP.COM
BIOS.REC
execute.bat
IFLASH.EXE
LOGODATA.USR
P17-0043.BI1
P17-0043.BI2
P17-0043.BI3
P17-0043.BI4
P17-0043.BI5
P17-0043.BI6
P17-0043.BIO
P17-0043.ITK
P17-0043.SIG
TOKEN

Далее, бутблок моей платы занимает 64Кб. В моем случае первая половинка - последние 32Кб P17-0043.bi5 и вторая половинка - последние 32Кб P17-0043.bi6. Просто посмотрите как выглядит конец P17-0043.bi6, в случае с другими Intel BIOS основанными на AMI будет похожая картина. Здесь можно кое-что дополнительное почерпнуть на эту тему: rom.by/forum/FAK_Intelovskie_BIOSy

Вырезаем последние 32Кб с этих файлов и склеиваем (я использую Total Commander для этих операций). Должен получиться файл размером ровно 65536 байт = 64Кб.

Далее берем нашу плату, по маркировке флэшки определяем ее объем (в моем случае это 512Кб=524288 байт). Бутблок должен располагаться в конце флэшки. Далее есть два пути.

1) Создать файл размером, равным размеру флэшки, состоящий из байт со значением 0xFF (или 0FFh, кому как удобнее). В последние 64Кб записать бутблок наш.

После этого записать этот файл во флэшку программатором.

2) Обязательно стереть флэшку, удостовериться что она чистая (все байты имеют значение 0xFF), после этого просто записать наш бутблок в ее конец.

После этого вставляем флэшку в матплату. Поскольку у нас кроме бутблока ничего нет, джампер BIOS CONFIG можно оставить в положении Normal. Включаем плату. Признак того что все сделано правильно - бегущие посткоды. Код E9 - инициализация FDD, его наличие - показатель попытки восстановить BIOS.

Действие второе, в котором надо скормить BIOS с дискеты или CD/DVD диска.

1) Для дискеты.

Распаковываем файл DISKIMG.EXE, получаем такие файлы:

AUTOEXEC.BAT
CONFIG.SYS
DISK.IMG
ERR_LEV.BAT
FDXXMS.SYS
FINDRAMD.EXE
RAWRITE.EXE
TDSK.EXE

Нас интересует файл DISK.IMG. Записываем его на дискету (можно использовать программу WinImage либо Diskimg.exe, полученный при распаковке LY84510A.86A.0043.P17.IB.exe).

Далее копируем все файлы, полученные при распаковке SW.EXE на дискету. Переходим на дискетку, просматриваем *.bat файлы на предмет команды запуска прошивальщика. В моем случае в файле execute.bat есть две строчки:

IF EXIST IFLASH.EXE Iflash /f /p P17-0043.BIO
IF EXIST IFLASH2.EXE Iflash2 /f /p P17-0043.BIO

Сохраняем эти строчки где-либо. После этого удаляем с дискеты autoexec.bat и config.sys . Создаем чистый autoexec.bat и вставляем туда сохраненные ранее строчки. Затем создаем пустой файл config.sys .

Вставляем дискету, включаем плату, ждем окончания прошивки (в моем случае коды 46->EE, если ничего не путаю). Выключаем плату, ставим если необходимо джампер в положение "Normal", снова включаем. если плата не стартовала, значит либо что-то сделано не так, либо в чем-то еще проблема.

2) Для CD/DVD диска.

Здесь идея в том, чтобы сделать загрузочный диск с образом дискеты. Все то же самое, только все описанные выше манипуляции производим с образом дискеты в программе WinImage, затем сохраняем образ с расширением IMA, запускаем NERO Burning ROM, выбираем тип проекта CD (загрузочный) или DVD (загрузочный), выбираем использование файла-образа, указываем наш файл *.IMA, устанавливаем эмуляцию дискеты 1.44Мб, записываем, вставляем в привод, запускаем плату, ждем окончания прошивки.

Возможно, что бутблок другой платы не умеет грузиться с CD/DVD, Тогда остается только дискета.

Почему же необходимо очищать флэшку перед записью бутблока? Когда я восстанавливал BIOS, вначале я "склеил" 8 бутблоков и получил файл размером 512Кб. Процедура далее прошла нормально, плата стартовала, проходила POST, но вместо некоторых надписей выводилась абракадабра - флэшер явно что-то недочищал. Для желающих разобраться прилагаю два файла - нормальный образ (LY84510A.86A.rar) и "с абракадаброй" (Vnimanie_Fajl_povrezhden_Ne_vshivat_Warning_File_is_damaged_Do_not_flash.rar). Интересно, что флэшер недочистил...

Ну и до кучи опции флэшера - где-то спрашивал кто-то, а флэшер их отдает только в DOS режиме и/или только на подходящей плате:

Intel Flash Memory Update Utility Part 643643-046

GUI-mode options:
/m - Monochrome display /b - Use BIOS video calls
/t - Use EGA/VGA line count /n - Do not use pointer device
Command-line mode options:
/h - Help (this text)
/q - Quiet mode; errors only, and no prompts
/qb - Quiet mode; No beeps
Standard options:
/r - Force reboot after update /@ - Use override file
/f - Force CMOS defaults next POST /d - Verbose debugging output
/c - Clear ESCD (Extended System Configuration Data) next POST
/p pathname - Program FLASH device with contents of 'pathname'.
/pu pathname - Program User Binary area with contents of 'pathname'.
/v pathname - Verify current FLASH with contents of 'pathname'.
/sX pathname - Save resident FLASH area to 'pathname' (or 'vvvv'BIOS),
X = { 'B'IOS, 'L'anguage, 'U'ser, or 'R'ecovery } area.
/x pathname - eXamine FLASH header of 'pathname'.
Special Operations:
/v pathname - Verify current flash with contents of 'pathname.'
/x pathname - eXamine flash header of 'pathname'.
/sX pathname - Save resident flash area to 'pathname' (or 'vvvv'BIOS)
X = { 'B'IOS, 'L'anguage, 'U'ser, 'R'ecovery } area.
/ae - Erase OEM CMOS Defaults.
/ac - Copy Custom CMOS Defaults into the OEM CMOS Defaults.
/af - Force OEM CMOS Defaults next POST.
/ag pathname - Get OEM CMOS Defaults to 'pathname'.
/as pathname - Set OEM CMOS Defaults with contents of 'pathname'.
/ew pathname - Write BMI settings with contents of 'pathname'.
/er pathname - Retrieve BMI settings to 'pathname'.

ВложениеРазмер
LY84510A.86A.rar350.34 КБ
Vnimanie_Fajl_povrezhden_Ne_vshivat_Warning_File_is_damaged_Do_not_flash.rar350.13 КБ
Если данная информация оказалась полезной/интересной - плюсаните, пожалуйста:

Спасибо огромное за ваш труд, у неня все получилось благодаря вам на intel d845gbv

Аватар пользователя Highlander

Рад что пригодилось! Успехов!

wiki.rom.by - здесь специально собраны ответы на большинство вопросов!

Когда другие уже закончили, процессоры Intel (R) Pentium (R) продолжают работать, работать и работать...

Аватар пользователя Monster3D

Спасибо за полезную и нужную информацию. Удалось восстановить несколько Intel-овских мат. плат на 845 чипсетах.

А как быть если фаил .BIO единственный?

Зависит от модели.
Для более старых - пример.


Для зверушек с EFI - в соответствующий раздел.

Аватар пользователя Highlander

начать с размера в байтах.

wiki.rom.by - здесь специально собраны ответы на большинство вопросов!

Когда другие уже закончили, процессоры Intel (R) Pentium (R) продолжают работать, работать и работать...

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей