Добрый день!
Объём eMMC и RAM зависит от исполнения: до 4 ГБ LPDDR4 RAM и до 64 ГБ eMMC. Rootfs на WB8 фиксирована на 2 ГБ вне зависимости от объёма eMMC — вся дополнительная ёмкость уходит в /mnt/data. Именно поэтому устанавливать тяжёлые пакеты в rootfs через apt опасно даже на топовом исполнении с 64 ГБ: лимит rootfs не меняется.
| Раздел |
Размер |
Точка монтирования |
| p1 |
~16 МБ |
u-boot (загрузчик) |
| p2 |
2 ГБ |
/ (rootfs) |
| p5 |
~256 МБ |
swap |
| p6 |
~11 ГБ / ~59 ГБ |
/mnt/data (16 ГБ / 64 ГБ eMMC) |
Что хранится где
Пользователю важно знать два раздела: / (rootfs) — корневой раздел с файлами операционной системы, ссылками на системные настройки, установленным сторонним ПО и его файлами конфигурации; /mnt/data — большой раздел с системными настройками и любыми пользовательскими файлами.
На разделе /mnt/data хранятся логи, база данных MQTT, кеш apt и директория загрузок веб-сервера.
Почему apt install ставит всё в / (rootfs)
Стандартный Debian ничего не знает про /mnt/data — это специфика WB. Пакетный менеджер распаковывает файлы по стандартным путям: /usr/bin/, /etc/, /var/lib/ — всё в rootfs. Это штатное поведение Linux, не особенность контроллера.
Для Grafana (~200 МБ бинарников + зависимости) или SCADA это критично: apt install grafana сразу съест значительную часть 2 ГБ rootfs.
Grafana, SCADA, БД — правильная установка на WB8
Рекомендованный путь — Docker с хранением в /mnt/data.
Docker настраивается через wb-docker-manager.sh так, чтобы образы и volumes хранились в /mnt/data/, а не в rootfs. Типичный стек для Grafana на WB8:
Датчики → MQTT → wb-rules/telegraf → InfluxDB (volume в /mnt/data) → Grafana
Реальный пример: после установки Docker и Home Assistant данные контейнеров (/mnt/data/var/lib/containerd) заняли более 2 ГБ, а вся папка /mnt/data — 6.9 ГБ. При этом rootfs оставалась свободной на 60%.
Правило: всё тяжёлое (Grafana, InfluxDB, Node-RED, SCADA) — только через Docker с хранением в /mnt/data. Прямой apt install допустим только для небольших пакетов из wirenboard-репозитория.
База данных контроллера — wb-mqtt-db
Это встроенная история значений всех MQTT-контролов (показания датчиков, состояния реле и т.д.). Физически данные лежат в /mnt/data/var/lib/wirenboard/ — в разделе данных, не в rootfs. На реальном устройстве wb-mqtt-db занимает около 14 МБ — размер невелик, поскольку встроена автоматическая ротация старых записей. Веб-интерфейс контроллера строит графики именно из этой БД.
Собственная БД для Grafana — это отдельный InfluxDB в Docker, который пишет данные независимо и без ограничений по сроку хранения. Его volume физически находится в /mnt/data/ и rootfs не затрагивает.
Можно ли расширить rootfs?
Нет — размер раздела rootfs (2 ГБ) задан при сборке прошивки и не меняется в рабочем режиме.
Переполнение rootfs — причины, последствия, решение
Несмотря на большой eMMC, rootfs по-прежнему 2 ГБ. Переполнить её вполне реально.
Типичные причины:
-
apt install тяжёлых пакетов напрямую (Node.js, Python-окружения, Grafana)
-
Docker, установленный не через wb-docker-manager.sh — тогда /var/lib/docker растёт в rootfs
-
Накопленный системный журнал в /var/log/journal
-
Кеш apt в /var/cache/apt/archives/
Последствия при заполнении > 95%:
-
apt перестаёт работать — не может распаковать пакеты во временную директорию
-
Сервисы падают без возможности записать лог диагностики
-
wb-rules может зависать или не стартовать
-
Веб-интерфейс может стать недоступен
Итоговая схема: что куда на WB8
/ (rootfs, 2 ГБ — не трогать для тяжёлых программ)
├── ОС Debian, бинарники /usr, /lib
├── /etc → симлинки на /mnt/data/etc
└── Маленькие apt-пакеты (mosquitto-clients, jq и т.п.)
/mnt/data (~11 ГБ на 16 ГБ eMMC / ~59 ГБ на 64 ГБ eMMC)
├── etc/ ← реальные конфиги (сеть, авторизация, правила)
├── var/lib/wirenboard/ ← история MQTT-контролов (wb-mqtt-db, ~14 МБ)
├── var/log/ ← системные логи
├── var/lib/containerd/ ← данные контейнеров Docker (могут занять >2 ГБ)
├── .docker/ ← образы Docker
├── .docker-compose/grafana/ ← Grafana + compose
├── .docker-compose/influxdb/ ← БД для долгосрочного хранения
└── .docker-compose/homeassistant/