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.COMIO.SYSMSDOS.SYSDRV<чеготоам>.BINAWDFLASH.EXE8HMX5413.BINAUTOEXEC.BAT
Заветная строка в autoexec.bat:
AWDFLASH 8HMX5413.BIN /py /Sb /sn /cc /cp /cd /R
Загрузился с дискеты и через пару минут услышал сигнал. Комп
перезагрузился и я увидел новый BIOS, в котором нормально
детектилось железо.
Ура!