Home Assistant не хватает места на устройстве

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


По скриншоту видно, что Home Assistant ставите в Docker (docker compose pull homeassistant) на Wiren Board 8.4.4, и Docker ругается:

no space left on device
write /var/lib/containerd/…

То есть закончилось место не на /mnt/data, а в системном разделе, где лежит /var/lib/containerd (обычно /).

1. Посмотреть реальную картину по разделам

Выполните, пожалуйста, под root:

df -h
du -sh /var/lib/docker /var/lib/containerd /mnt/data 2>/dev/null

И пришлите вывод в ответ на это сообщение. Это нужно инженерам, чтобы понять, что именно забило систему.

2. Временная очистка

Пока можно попробовать освободить место в системном разделе:

# Очистить пакетный кэш
apt clean

# Удалить старые логи journalctl
journalctl --vacuum-time=7d

# Посмотреть самые большие каталоги в /
du -xh / | sort -h | tail -40

Скорее всего, больше всего места занимают:

  • старые контейнеры/образы;
  • логи.

Если Docker уже что‑то наскачивал, можно подчистить:

docker system df
docker system prune -a

Важно: docker system prune -a удалит все неиспользуемые контейнеры/образы. Если у вас там что‑то ещё крутится — сначала уточните.

3. Где лучше хранить Docker для HA

Рекомендуемый вариант — унести Docker‑данные в /mnt/data или на карту/USB, а не в корневой раздел:

  1. Остановить Docker:

    systemctl stop docker containerd
    
  2. Перенести каталог:

    mkdir -p /mnt/data/docker
    rsync -aHX /var/lib/docker/ /mnt/data/docker/
    
  3. Создать override для Docker, чтобы он использовал новый путь:

    mkdir -p /etc/systemd/system/docker.service.d
    cat >/etc/systemd/system/docker.service.d/override.conf <<'EOF'
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -g /mnt/data/docker -H fd://
    EOF
    
    systemctl daemon-reload
    systemctl restart docker
    
  4. Аналогично можно перенести /var/lib/containerd:

    mkdir -p /mnt/data/containerd
    rsync -aHX /var/lib/containerd/ /mnt/data/containerd/
    

    И прописать в /etc/containerd/config.toml путь root = "/mnt/data/containerd" (если файла нет — его создадут инженеры, подскажем отдельно).

После переноса и перезапуска Docker/Containerd корневой раздел освободится, и docker compose pull homeassistant должен отработать без ошибок.


Пришлите, пожалуйста:

  1. вывод df -h;
  2. вывод du -sh /var/lib/docker /var/lib/containerd /mnt/data;
  3. если получится — топ самых больших каталогов из du -xh / | sort -h | tail -40.

По ним инженеры уже в рабочее время дадут точную схему, как лучше перенести Docker на /mnt/data именно в вашей конфигурации.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.

Добрый день.
Покажите пожалуйста как сконфигурировно расположение containerd.
Судя по выводу - вы пропустили расположение указанное в документации.
Поэтому - опишите как он сконфигурировано сейчас и сколько места в указанном разделе.

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнительное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Сейчас модератор верно отметил, что проблема, скорее всего, в том, что containerd остаётся на корневом разделе, а не вынесен в /mnt/data по инструкции[1]. Чтобы инженеры поняли текущую конфигурацию, прошу выполнить несколько команд и выслать вывод.

1. Как сейчас сконфигурирован containerd

Под root выполните:

grep -n 'root =' /etc/containerd/config.toml 2>/dev/null || echo "root not set in config.toml"
grep -n 'state =' /etc/containerd/config.toml 2>/dev/null || echo "state not set in config.toml"
cat /etc/systemd/system/containerd.service.d/override.conf 2>/dev/null || echo "no override for containerd.service"

И пришлите сюда весь вывод.

Если файла /etc/containerd/config.toml нет, тоже напишите об этом.

2. Сколько места в разделе, где лежит containerd

Нужен вывод:

df -h /
du -sh /var/lib/containerd /var/lib/docker 2>/dev/null

Это покажет:

  • размер корневого раздела /;
  • сколько именно занимают containerd и Docker.

3. Сравнить с документацией

Согласно документации Wiren Board для Docker[1:1]:

  • каталог данных Docker и containerd рекомендуется выносить на /mnt/data (или другой большой раздел),
  • в конфиге containerd должен быть установлен путь вида:
root = "/mnt/data/containerd"
state = "/run/containerd"

и/или соответствующий override для сервиса.

Пока ничего не меняйте — просто пришлите вывод команд выше. По результатам инженеры подскажут:

  • нужно ли переносить уже существующие данные;
  • как корректно поправить config.toml и override, чтобы не потерять образы Home Assistant.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. Установка Docker на контроллер Wiren Board — Wiren Board ↩︎ ↩︎

Добрый день.
Прикладываю скрин по результатам команд

Понедельник, 6 апреля 2026, 14:25 +03:00 от Weekend Engineer через Wiren Board Support <info@wirenboard.com>:

| Weekend_Engineer_bot
06 Апрель |

  • | - |

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнительное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Сейчас модератор верно отметил, что проблема, скорее всего, в том, что containerd остаётся на корневом разделе, а не вынесен в /mnt/data по инструкции[1]. Чтобы инженеры поняли текущую конфигурацию, прошу выполнить несколько команд и выслать вывод.

1. Как сейчас сконфигурирован containerd

Под root выполните:

grep -n 'root =' /etc/containerd/config.toml 2>/dev/null || echo "root not set in config.toml"
grep -n 'state =' /etc/containerd/config.toml 2>/dev/null || echo "state not set in config.toml"
cat /etc/systemd/system/containerd.service.d/override.conf 2>/dev/null || echo "no override for containerd.service"

И пришлите сюда весь вывод.

Если файла /etc/containerd/config.toml нет, тоже напишите об этом.

2. Сколько места в разделе, где лежит containerd

Нужен вывод:

df -h /
du -sh /var/lib/containerd /var/lib/docker 2>/dev/null

Это покажет:

  • размер корневого раздела /;
  • сколько именно занимают containerd и Docker.

3. Сравнить с документацией

Согласно документации Wiren Board для Docker[1:1]:

  • каталог данных Docker и containerd рекомендуется выносить на /mnt/data (или другой большой раздел),
  • в конфиге containerd должен быть установлен путь вида:
root = "/mnt/data/containerd"
state = "/run/containerd"

и/или соответствующий override для сервиса.

Пока ничего не меняйте — просто пришлите вывод команд выше. По результатам инженеры подскажут:

  • нужно ли переносить уже существующие данные;
  • как корректно поправить config.toml и override, чтобы не потерять образы Home Assistant.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. Установка Docker на контроллер Wiren Board — Wiren Board :right_arrow_curving_left: :right_arrow_curving_left:

Для ответа посетите эту тему или ответьте на это письмо.

Нажмите сюда, чтобы отписаться от таких писем.

С уважением,
Владислав Гальянов

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнительное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


По скриншоту видно:

  1. В /etc/containerd/config.toml сейчас:

    root = "/mnt/sdcard/containerd"
    #root = "/var/lib/containerd"
    #state = "/run/containerd"
    

    Т.е. данные containerd должны лежать на /mnt/sdcard, а не в корне.

  2. Корневой раздел (/dev/root) — 2 ГБ, занято 62 %.

  3. Сам каталог /var/lib/containerd занимает всего ~796 КБ, т.е. основная масса данных там не хранится (это хорошо).

С учётом исходной ошибки no space left on device при загрузке образа Home Assistant ситуация сейчас такая:

  • Места в корне формально ещё достаточно (≈700 МБ свободно),
  • но Docker/containerd тянут очень большой образ HA (400–600+ МБ), и при распаковке нужно больше временного места;
  • возможно, часть слоёв всё ещё идёт через /var/lib/containerd или другой каталог в корне.

Чтобы двигаться дальше, я бы предложил:

1. Проверить, реально ли используются каталоги на /mnt/sdcard

Под root выполните:

mount | grep sdcard
ls -lh /mnt/sdcard
du -sh /mnt/sdcard/containerd 2>/dev/null
du -sh /mnt/sdcard/docker 2>/dev/null

И приложите вывод. Нужно понять:

  • правда ли SD‑карта (или раздел) смонтирована как /mnt/sdcard;
  • сколько места там свободно и используется ли каталог containerd.

2. Проверить, нет ли старых/битых слоёв Home Assistant

docker system df
docker images | grep -i home
docker ps -a

Если там видно много «висящих» образов/слоёв, инженеры, скорее всего, порекомендуют:

docker system prune -a

(но это удалит все неиспользуемые контейнеры/образы, так что сначала важно увидеть текущий вывод).

3. При необходимости полностью перенастроить по документации

Согласно инструкции по Docker для Wiren Board[1], рекомендуемая схема:

  • containerd.root указывать на раздел с большим объёмом (/mnt/data или /mnt/sdcard);
  • по возможности туда же унести каталог Docker (/var/lib/docker/mnt/data/docker или /mnt/sdcard/docker).

У вас containerd.root уже указывает на /mnt/sdcard/containerd, но:

  • мы пока не знаем, сколько там физически места;
  • неизвестно, куда смотрит сам Docker (по умолчанию — в /var/lib/docker в корне).

Пожалуйста, пришлите:

  1. вывод команд из п.1 (про /mnt/sdcard),
  2. вывод docker system df,
  3. вывод du -sh /mnt/data /mnt/sdcard /var/lib/docker.

По этим данным инженеры смогут:

  • подтвердить, достаточно ли места на SD//mnt/data для Home Assistant;
  • при необходимости дать точный набор команд для переноса Docker‑данных и очистки старых слоёв, чтобы docker compose pull homeassistant прошёл без ошибки.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. Установка Docker на контроллер Wiren Board — Wiren Board ↩︎

Спасибо за помощь. После сброса к заводским настройкам и повторной загрузки команд в SHH, всё получилось. Home Assistant установил на карту sdcard.

Ну отлично.