PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

BIOS: базовая система ввода-вывода

Создание резервной копии BIOS

Перед обновлением BIOS рекомендуется создать резервную копию текущего содержимого ПЗУ. Дело в том, что многие производители материнских плат помещают на своих сайтах только последние версии BIOS, которые иногда могут вызывать проблемы или не соответствовать вашим потребностям. Имея резервную копию, всегда можно вернуться к ранее существовавшей на компьютере версии BIOS. Для создания резервной копии запустите программу обновления BIOS своей материнской платы и посмотрите, предлагает ли она резервное копирование. Если не предлагает, посмотрите на сайте производителя материнской платы, какие версии BIOS на нем доступны для загрузки и есть ли среди них та, которая установлена в текущий момент на вашем компьютере. Если возможности создать резервную копию нет и на сайте отсутствует текущая версия BIOS вашего компьютера, придется использовать альтернативные методы.

Одним из достоинств программатора EPROM является то, что его можно использовать в качестве устройства резервного копирования съемных ПЗУ на случай, если они впоследствии выйдут из строя. В то же время большинство выпускаемых сегодня материнских плат содержит припаянные микросхемы ПЗУ. В данном случае единственный выход — воспользоваться программой DEBUG для чтения содержимого ПЗУ и его сохранения в файле на диске. Хранимая в файле резервная копия содержимого ПЗУ может пригодиться и для других целей. К примеру, в ней можно найти выводимые на экран информационные строки; также можно дизассемблировать программный код и выяснить, как он работает.

Код ПЗУ обычно занимает 128 Кбайт ОЗУ в виде двух сегментов по 64 Кбайт: E0000– EFFFF и F0000–FFFFF. BIOS видеоадаптеров или других плат хранятся по адресам C0000– CFFFF и D0000–DFFFF. В связи с особенностями программы DEBUG каждый сегмент объемом 64 Кбайт необходимо сохранять отдельно.

Чтобы воспользоваться программой DEBUG для сохранения сегментов E000 и F000, введите ряд команд.

C:\>DEBUG ; Запуск программы DEBUG

-R BX ; Изменение регистра BX (размер файла высокого по-рядка)

BX 0000 ; Со значения 0

:1 ; На значение 1 (указывает на файл объемом 64 Кбайт)

-N SEG-E.ROM ; Название файла

-M E000:0 FFFF CS:0 ; Перемещение 64 Кбайт данных из BIOS в текущий сегмент кода

-W 0 ; Запись файла со смещением 0 в сегмент кода

Запись 10000 байт ; 10000h = 64K

-N SEG-F.ROM ; Имя файла

-M F000:0 FFFF CS:0 ; Перемещение 64 Кбайт данных из BIOS в текущий сегмент кода

-W 0 ; Запись файла со смещением 0 в сегмент кода

Запись 10000 байт ; 10000h = 64K

-Q ; Завершение работы DEBUG

Результат работы этой совокупности команд в Windows XP представлен на рисунке ниже.

Приведенные выше инструкции позволяют сохранить сегменты объемом 64 Кбайт по адресам E0000–EFFFF и F0000–FFFFF в файлах. Для этого вначале указывается размер файла, затем — его имя, после чего код BIOS копируется в выделенный сегмент. После этого данные можно записать на диск.

Если вы решили сохранить содержимое ПЗУ, в том числе BIOS видеоадаптера и ПЗУ других адаптеров, повторите описанные выше действия, однако при запуске программы DEBUG необходимо указать начальные адреса C000:0 и D000:0. Не забудьте указывать различные имена файлов. Следует заметить, что BIOS видеоадаптера может занимать не весь сегмент C0000 и, кроме того, некоторые адаптеры могут использовать сегменты C0000 и D0000 не полностью. В данном случае Windows может использовать соответствующие участки памяти для хранения других данных.

Обратите внимание, что приведенные выше команды необходимо выполнять в строго определенном порядке. Например, команда Name всегда должна предшествовать команде Move; в противном случае часть данных в начале текущего сегмента кода будет удалена.