Обновление OpenWrt
Процесс обновления прошивки на платформе x86 кардинально отличается от обновления на большинстве встраиваемых (embedded) устройств. На x86 система устанавливается на один из стандартных разделов диска (например, /dev/sda1
, /dev/sda2
и т.д.), а не на отдельный чип flash-памяти. Загрузчик (GRUB, syslinux и др.) просто загружает ядро и указывает на корневой раздел.
По сути, “прошивка” — это просто набор файлов на стандартном разделе ext4. Это означает, что для обновления можно использовать либо полный образ диска (disk image), либо стандартный системный пакетный менеджер (opkg
).
Метод 1: Использование полного образа (Disk Image)
Этот метод рекомендуется, если вы хотите получить чистую систему или если ваша текущая установка сильно изменена и вы хотите начать с нуля.
- Скачайте последний образ для x86 (
combined-ext4.img.gz
) с официального сайта OpenWrt. - Распакуйте архив, чтобы получить файл
.img
. - Скопируйте образ на устройство с OpenWrt (например, с помощью
scp
). - Важно: Определите, на каком разделе установлена ваша текущая система, командой:
mount | grep -E '(/boot|/)'
Чаще всего это/dev/sda1
,/dev/sda2
или/dev/sda3
. - Запишите новый образ на целевой раздел с помощью утилиты
dd
. ВНИМАНИЕ: Убедитесь, что вы указываете правильный раздел! Неправильное использованиеdd
может привести к полной потере данных. Пример для раздела /dev/sda2:dd if=openwrt-xxxx-combined-ext4.img of=/dev/sda2 bs=2M conv=fsync
if=
– это ваш входной файл образа.of=
– это целевой раздел диска. - После успешной записи перезагрузите систему:
reboot
Метод 2: Обновление через пакетный менеджер (opkg)
Этот метод похож на обновление любого дистрибутива Linux. Он позволяет обновить все установленные пакеты, включая ядро и базовую систему, без перезаписи всего раздела.
- Обновите списки пакетов:
opkg update
- Обновите все установленные пакеты до последних версий:
opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
Или, если у вас установленbash
:opkg upgrade $(opkg list-upgradable | awk '{print $1}')
- Этот процесс обновит ядро (
kernel
) и все модули ядра (kmod-*
). - После завершения обновления обязательно перезагрузите систему, чтобы новое ядро и все обновленные модули загрузились корректно:
reboot
Важные примечания
- Резервное копирование конфигураций: Перед любым обновлением обязательно создайте резервную копию важных файлов конфигурации (из директории
/etc/
). Для этого можно использовать встроенный скриптsysupgrade
или скопировать файлы вручную. - Совместимость: При обновлении с очень старой версии OpenWrt рекомендуется использовать метод с полным образом, чтобы избежать потенциальных проблем с совместимостью пакетов и конфигураций.
- Конфигурация загрузчика: Оба метода не изменяют конфигурацию загрузчика (GRUB). Если в новой версии изменилось имя файла ядра или параметры загрузки, вам может потребоваться вручную отредактировать конфиг загрузчика (например,
/boot/grub/grub.cfg
).
Официальная документация (на английском): OpenWrt x86 Installation Guide