WB Firmware Update Details: различия между версиями

м
м (→‎Формат файла обновления: Поправил текст)
м (→‎Схема разделов microSD/eMMC: Поправил текст)
Строка 23: Строка 23:
=== Схема разделов microSD/eMMC ===
=== Схема разделов microSD/eMMC ===


* /dev/mmcblk0p1 (16M): содержит загрузчик u-boot
* <code>/dev/mmcblk0p1</code> 16 Мб, содержит загрузчик u-boot.
* /dev/mmcblk0p2 (1024M): первая rootfs
* <code>/dev/mmcblk0p2</code> 1024 Мб, первая rootfs.
* /dev/mmcblk0p3 (1024M): вторая rootfs
* <code>/dev/mmcblk0p3</code> 1024 Мб, вторая rootfs.
* /dev/mmcblk0p4: расширенный раздел FAT, напрямую не используется
* <code>/dev/mmcblk0p4</code> расширенный раздел FAT, напрямую не используется.
* /dev/mmcblk0p5 (256M): swap
* <code>/dev/mmcblk0p5</code> 256 Мб, swap.
* /dev/mmcblk0p6 (остальное место): общие для обоих rootfs данные (конфиги, логи, ...), монтируется в /mnt/data
* <code>/dev/mmcblk0p6</code> остальное место общие для обоих rootfs данные: конфиги, логи и т.п., монтируется в <code>/mnt/data</code>.


Наличие двух независимых экземпляров rootfs позволяет в случае многократной неудачной загрузки с одной из них переключиться на другой экземпляр (например, при неудачном обновлении или порче файловой системы), а отдельный раздел /mnt/data позволяет при этом сохранить пользовательские настройки.
Наличие двух независимых экземпляров rootfs позволяет при многократной неудачной загрузке с одного из них переключиться на другой. Это может быть полезным при неудачном обновлении или порче файловой системы. Отдельный раздел <code>/mnt/data</code> позволяет сохранить пользовательские настройки.


Отдельный общий для двух rootfs раздел /mnt/data позволяет иметь некоторые части системной конфигурации одинаковыми. Например, это важно для настроек сети и авторизации. Так же на этом разделе хранятся логи, база данных MQTT, кэш apt и директория закачек веб-сервера (чтоб не занимать место на rootfs).
Отдельный раздел <code>/mnt/data</code> является общим для двух rootfs, что позволяет иметь некоторые части системной конфигурации одинаковыми: настройки сети и параметры авторизации. Так же на этом разделе хранятся логи, база данных MQTT, кэш apt и директория закачек веб-сервера. Такой подход позволяет уменьшить размер каждой из rootfs.


Образ SD-карты, создаваемый скриптом ''image/create_image.sh'' содержит только uboot и первую rootfs. Остальные разделы создаются при необходимости при первой загрузке.
Образ SD-карты, создаваемый скриптом <code>image/create_image.sh</code> содержит только uboot и первую rootfs. Остальные разделы создаются при первой загрузке.


При первой загрузке rootfs некоторые файлы переносятся в /mnt/data с сохранением бэкапов в rootfs и заменой оригиналов симлинками. Это происходит в скрипте /etc/rc.local, выполняющимся последним при загрузке. Если нужный файл уже существует в /mnt/data, то он используется без замены - это необходимо для использования имеющейся конфигурации при загрузке "свежей" rootfs после обновления прошивки. Также этот раздел можно очистить, при этом после перезагрузки будет восстановлена стандартная конфигурация.
При первой загрузке rootfs некоторые файлы переносятся в <code>/mnt/data</code> с сохранением бэкапов в rootfs и заменой оригиналов симлинками. Это происходит в скрипте <code>/etc/rc.local</code>, выполняющимся последним при загрузке. Если нужный файл уже существует в <code>/mnt/data</code>, то он используется без замены это необходимо для использования имеющейся конфигурации при загрузке «свежей» rootfs после обновления прошивки. Также этот раздел можно очистить, при этом после перезагрузки будет восстановлена стандартная конфигурация.


=== Переключение rootfs при ошибках загрузки ===
=== Переключение rootfs при ошибках загрузки ===