recover broken BIOS
Расскажу как я умудрился запороть :) и героически восстановить BIOS
на старой материнке EPOX 8HMMI-A
2005 года выпуска.
Недавно понадобилось настроить очередной слабонагруженный сервер.
Всё бы хорошо, но при вставке USB
флэшки BIOS
решительно
отказвался видеть съёмный носитель. Если отключить питание от винтов и
CDROM
, то flash
появлялась в списке заргузочных устройств.
Немного полистав интернеты и чейнджлоги к прошивкам BIOS
я понял,
что этот баг зафиксили в новых прошивках.
Я взял livecd
от systemrescuecd
, пакет sys-fs/dosfstools
и
добавил в список еще один образ MS-DOS
с новой прошивкой.
Загрузился с этого образа и попробовал обновить BIOS
: запустил
AWDFLASH
, указал в меню пустое имя прошивки и нажал <Enter>
.
На экране ничего не происходило, а должны были квадратики бежать. Ну,
думаю, зависла прога. Нажал на reset
и жду, когда что-нибудь
появится на мониторе. А там - ничего. Только комп пищит при загрузке (1
длинный, 2 коротких).
Я понял, что запорол BIOS
. Попробовал перегрузить еще пару раз -
не помогло.
Меня всегда интересовало, как же восстанавливаться из таких случаев?
Погуглив нашел следующие варианты:
- найти такой-же компьютер, “на горячую” воткнуть в него запоротый
BIOS
и перепрошить. - найти программатор
bumblebee
и записатьBIOS
- загрузиться с
FDD
Оказывается, что полностью запороть AWARD
и AMI
BIOS
ы не так
просто: в них присутствует так называемый boot
block. Это
область памяти в 4KB
, которая первой получает управление при
загрузке компа. Она сичтает контрольную сумму остального BIOS
и
передает ему управление, если контрольная сумма в порядке; иначе
инициализирцет ISA
видеокарку и пробует загрузиться с FDD
.
Программами обновления BIOS
эта область обычно не затрагивается
(но в AWARD
и ее можно запороть задав /wb
ключ).
Так что, чтобы восстановиться мне всего-то понадобилось найти:
- флоповод
- дискету
- машину с
Windows 98
Отформатил дискету как системную. Получилось это только, правда, с 10 раза: дискета постоянно размагничивалась, не читалась, и не поддавалась записи.
В итоге на диске лежали:
COMMAND.COM
IO.SYS
MSDOS.SYS
DRV<чеготоам>.BIN
AWDFLASH.EXE
8HMX5413.BIN
AUTOEXEC.BAT
Заветная строка в autoexec.bat
:
AWDFLASH 8HMX5413.BIN /py /Sb /sn /cc /cp /cd /R
Загрузился с дискеты и через пару минут услышал сигнал. Комп
перезагрузился и я увидел новый BIOS
, в котором нормально
детектилось железо.
Ура!