10
февраль
2026
Как в Linux обновить прошивку компьютера BIOS/EFI/firmware
15:11

Как в Linux обновить прошивку компьютера BIOS/EFI/firmware

10 февраль 2026 15:11

Как прошить BIOS из Linux? Инструкция по обновлению прошивки BIOS/EFI/firmware персонального компьютера из Linux.

Введение

Обновление BIOS компьютера нужно для поддержки новых моделей процессоров. Например, обновление BIOS нужно производить перед установкой более современного, производительного процессора, которую не поддерживает первоначальная версия BIOS.

Иногда новые версии BIOS фирма-разработчик выкладывает для устранения ошибок или добавления новых функций (например, возможность "разгона" процессора).

Обновление всегда доступно на сайте производителя материнской платы в сети Интернет в виде файла самораспаковывающегося архива (EXE), в котором запакована утилита (исполнимый EXE-файл) для прошивки, сама прошивка (бинарный файл) и autoexec.bat (командный файл).

Привычный способ обновления BIOS с загрузочным диском DOS в настоящее время стал не удобен, так как долгий:

  • вначале нужно купить флешку,
  • скачать FreeDOS,
  • записать IMG-файл FreeDOS с помощью Rufus на USB носитель,
  • затем извлечь из архива с прошивкой BIOS на загрузочную флешку EXE-файл утилиты и файл прошивки,
  • загрузиться с USB флешки с прошивкой, при этом EXE-утилита автоматически прошьет ПЗУ компьютера.

Если на ПК установлена ОС LInux, существует способ прошивки в ПЗУ компьютера новой версии BIOS из окна Терминала, который экономит время.

1. Подготовка

1.1 Узнать модель материнской платы

Узнать модель материнской платы можно двумя способами:
1) аппаратный. Открыть корпус компьютера, найти на материнской плате и прочесть надпись - производитель и модель материнской платы,
2) программный - установим пакет lshw и запустим одноименную утилиту с ключом "-C system".

sudo apt install lshw
sudo lshw -C system | head -7

Где "head -7" ограничивает вывод первыми 7 строками.

sudo lshw -C system | head -7
green-pro
   описание: Настольный компьютер
   продукт: H55M-S2H
   производитель: Gigabyte Technology Co., Ltd.
   разрядность: 64 bits
   возможности: smbios-2.4 dmi-2.4 smp vsyscall32
   конфигурация: boot=normal chassis=desktop uuid=...

В моём случае продукт - H55M-S2H производителя Gigabyte Technology Co., Ltd..

1.1 Узнать номер версии прошивки BIOS

Утилита dmidecode с ключом -t bios показывает версию прошивки BIOS.

sudo apt install dmidecode
sudo dmidecode -t bios | head -12

before_flashing

1.2 Скачать версию прошивки с сайта производителя

В Интернет заходим на сайт производителя своей материнской платы - раздел Support, ввести или найти свою модель - скачать обновление BIOS.
Естественно, что нужно скачать самую последнюю версию прошивки BIOS.

gigabyte

1.2 Извлечь из архива обновления бинарный файл прошивки

Правой кнопкой по EXE-файлу - Извлечь сюда.
unzip1
Переходим в папку
unzip2
Замечаем файл прошивки. Его имя можно скопировать в буфер обмена. С помощью правой кнопки мыши - "Переименовать" - выделить имя файла - копировать в буфер обмена.
unzip3

1.3 Установка утилиты для прошивки

Нужно установить пакет flashrom.

sudo apt install flashrom

Описание приложения flashrom:

Идентификация, чтение, запись, стирание и проверка микросхем BIOS/ROM/флэш-памяти.
flashrom — это инструмент для идентификации, чтения, записи, проверки и стирания микросхем флэш-памяти.
Он часто используется для прошивки образов BIOS/EFI/coreboot/firmware/optionROM в системе с использованием поддерживаемой материнской платы, но также поддерживает прошивку сетевых карт (NIC), контроллеров SATA и других внешних устройств, которые могут программировать микросхемы флэш-памяти.

Он поддерживает широкий спектр микросхем DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32/40/48 и BGA, использующих различные протоколы, такие как LPC, FWH, параллельную флэш-память или SPI.

Инструмент может использоваться, например, для прошивки образов BIOS/firmware — будь то проприетарные образы BIOS или образы coreboot (ранее известные как LinuxBIOS).

Его также можно использовать для чтения текущей существующей BIOS/прошивки с микросхемы флэш-памяти.

Домашняя страница: http://www.flashrom.org.

2. Прошивка BIOS/EFI/firmware

2.1 Чтение из ПЗУ и сохранение на диск старой версии прошивки BIOS/EFI/firmware

ПЗУ - постоянное запоминающее устройство или флеш-память компьютера. Читаю старую версию прошивки при помощи утилиты flashrom:

cd Загрузки
sudo flashrom -p internal -r h55ms2h.f1

где h55ms2h.f1 - имя файла прошивки первой версии в данном случае "F1" (для простоты, можно использовать имя файла "bios.old").

read

2.2 Запись в ПЗУ новой версии прошивки BIOS/EFI/firmware

В моём случае прошивка версии F7 имеет имя файла h55ms2h.f7

Перед записью прошивки в ПЗУ удостоверьтесь, что файл прошивки соответствует модели материнской платы.

Если ПК с небольшим размером ОЗУ, закройте все лишние программы, кроме Терминала, чтобы не произошёл swapping, т.е. выгрузка содержимого памяти на жесткий диск в файл swap.

Запуск прошивки с помощью утилиты flashrom:

sudo flashrom -p internal -w h55ms2h.f7

Во время прошивки ни в коем случает не отключем компьютер! Ждем появления надписей "Erase/write done" и "Verifying flash... VERIFIED".
write

3. Перезагружаем ПК

sudo reboot

или

sudo shutdown -r now

4. Проверяем версию прошивки BIOS/EFI/firmware

sudo dmidecode -t bios | head -12

Результат:
after_flashing

5. Проблемы и решения

5.1 Ошибка flashrom: mmap "Operation not permitted"

В зависимости чипа памяти с BIOS при выполнеи чтения ПЗУ командой чтения
sudo flashrom -p internal -r bios.old
может возникнуть ошибка "mmap failed: Operation not permitted".

Found chipset "Intel ICH7/ICH7R".
Enabling flash write... Error accessing ICH RCRB, 0x4000 bytes at 0x00000000fed1c000
/dev/mem mmap failed: Operation not permitted
FAILED!
FATAL ERROR!
Error: Programmer initialization failed.

Решение:

Добавьте параметр ядра

iomem=relaxed

Для этого, после сообщения на экране "Grub loading." и "Welcom to Grub",
в меню Grub2 нажмите "e" и допишите параметр ядра в linux:

linux /boot/vmlinuz-x.xx.xx ... ro quiet iomem=relaxed

И нажмите F10 для продолжения загрузки Linux.

5.2 Если BIOS имеет два чипа, как прошить обе микросхемы

Для "теневой" shadow-BIOS используются две микросхемы ПЗУ.
Об этом сообщит утилита flashrom -p при вызове без параметра -c.
Для чтения или записи нужно указать дополнительный ключ -c "имя микросхемы".
Я прошил обе микросхемы.

Пример:

sudo flashrom -p internal -w 1394.ROM -c "Pm25LD040(C)"
sudo flashrom -p internal -w 1394.ROM -c "Pm25LV040"

Бесплатная иллюстрация: publicdomainvectors.org.