16 281
правка
м (→Формат файла обновления: Поправил текст) |
м (→Схема разделов microSD/eMMC: Поправил текст) |
||
Строка 23: | Строка 23: | ||
=== Схема разделов microSD/eMMC === | === Схема разделов microSD/eMMC === | ||
* /dev/mmcblk0p1 | * <code>/dev/mmcblk0p1</code> 16 Мб, содержит загрузчик u-boot. | ||
* /dev/mmcblk0p2 | * <code>/dev/mmcblk0p2</code> 1024 Мб, первая rootfs. | ||
* /dev/mmcblk0p3 | * <code>/dev/mmcblk0p3</code> 1024 Мб, вторая rootfs. | ||
* /dev/mmcblk0p4 | * <code>/dev/mmcblk0p4</code> расширенный раздел FAT, напрямую не используется. | ||
* /dev/mmcblk0p5 | * <code>/dev/mmcblk0p5</code> 256 Мб, swap. | ||
* /dev/mmcblk0p6 | * <code>/dev/mmcblk0p6</code> остальное место — общие для обоих rootfs данные: конфиги, логи и т.п., монтируется в <code>/mnt/data</code>. | ||
Наличие двух независимых экземпляров rootfs позволяет | Наличие двух независимых экземпляров rootfs позволяет при многократной неудачной загрузке с одного из них переключиться на другой. Это может быть полезным при неудачном обновлении или порче файловой системы. Отдельный раздел <code>/mnt/data</code> позволяет сохранить пользовательские настройки. | ||
Отдельный | Отдельный раздел <code>/mnt/data</code> является общим для двух rootfs, что позволяет иметь некоторые части системной конфигурации одинаковыми: настройки сети и параметры авторизации. Так же на этом разделе хранятся логи, база данных MQTT, кэш apt и директория закачек веб-сервера. Такой подход позволяет уменьшить размер каждой из rootfs. | ||
Образ SD-карты, создаваемый скриптом | Образ SD-карты, создаваемый скриптом <code>image/create_image.sh</code> содержит только uboot и первую rootfs. Остальные разделы создаются при первой загрузке. | ||
При первой загрузке rootfs некоторые файлы переносятся в /mnt/data с сохранением бэкапов в rootfs и заменой оригиналов симлинками. Это происходит в скрипте /etc/rc.local, выполняющимся последним при загрузке. Если нужный файл уже существует в /mnt/data, то он используется без замены | При первой загрузке rootfs некоторые файлы переносятся в <code>/mnt/data</code> с сохранением бэкапов в rootfs и заменой оригиналов симлинками. Это происходит в скрипте <code>/etc/rc.local</code>, выполняющимся последним при загрузке. Если нужный файл уже существует в <code>/mnt/data</code>, то он используется без замены — это необходимо для использования имеющейся конфигурации при загрузке «свежей» rootfs после обновления прошивки. Также этот раздел можно очистить, при этом после перезагрузки будет восстановлена стандартная конфигурация. | ||
=== Переключение rootfs при ошибках загрузки === | === Переключение rootfs при ошибках загрузки === |